Пример #1
0
        public void Start()
        {
            try
            {
                logger.Info("Iniciando Email Manager...");
                if (ConfigurationManager.AppSettings.AllKeys.Contains("SmtpServer"))
                {
                    _server = ConfigurationManager.AppSettings["SmtpServer"].ToString();
                }
                else
                {
                    throw new Exception("Parametro SmtpServer nao encontrado!!!");
                }

                if (ConfigurationManager.AppSettings.AllKeys.Contains("SmtpPort"))
                {
                    _port = Convert.ToInt32(ConfigurationManager.AppSettings["SmtpPort"].ToString());
                }
                else
                {
                    throw new Exception("Parametro SmtpPort nao encontrado!!!");
                }

                if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailFrom"))
                {
                    _emailFrom = ConfigurationManager.AppSettings["EmailFrom"].ToString();
                }
                if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailAlert"))
                {
                    _emailAlert = ConfigurationManager.AppSettings["EmailAlert"].ToString();
                }
                if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailTo"))
                {
                    _emailTo = ConfigurationManager.AppSettings["EmailTo"].ToString();
                }
                if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailCc"))
                {
                    _emailCc = ConfigurationManager.AppSettings["EmailCc"].ToString();
                }
                if (ConfigurationManager.AppSettings.AllKeys.Contains("EmailCco"))
                {
                    _emailCco = ConfigurationManager.AppSettings["EmailCco"].ToString();
                }


                _db           = new DbEmail();
                _cfg          = new ConfigMailInfo();
                _cfg.SmtpHost = _server;
                _cfg.SmtpPort = _port.ToString();
                _cqEmail      = new ConcurrentQueue <TOEmail>();
                _thEmail      = new Thread(new ThreadStart(this._queueEmail));
                _thEmail.Start();

                _isRunning = true;
            }
            catch (Exception ex)
            {
                logger.Error("Problemas no start do Email Manager: " + ex.Message, ex);
            }
        }
Пример #2
0
        public static bool SendEmail(ConfigMailInfo cfg, MessageMailInfo msg)
        {
            try
            {
                char[]      sep  = { ';' };
                MailMessage mail = new MailMessage();
                mail.IsBodyHtml = true;

                mail.From = new MailAddress(msg.From);

                // TO composition
                if (!string.IsNullOrEmpty(msg.To))
                {
                    string[] to = msg.To.Split(sep);
                    for (int i = 0; i < to.Length; i++)
                    {
                        mail.To.Add(new MailAddress(to[i]));
                    }
                }

                if (!string.IsNullOrEmpty(msg.Cc))
                {
                    string[] cc = msg.Cc.Split(sep);
                    for (int i = 0; i < cc.Length; i++)
                    {
                        mail.CC.Add(new MailAddress(cc[i]));
                    }
                }
                if (!string.IsNullOrEmpty(msg.Cco))
                {
                    string[] cco = msg.Cco.Split(sep);
                    for (int i = 0; i < cco.Length; i++)
                    {
                        mail.Bcc.Add(new MailAddress(cco[i]));
                    }
                }
                mail.Subject = msg.Subject;
                mail.Body    = msg.Body;

                if (!string.IsNullOrEmpty(msg.FileAttach))
                {
                    string[] files = msg.FileAttach.Split(sep);
                    for (int i = 0; i < files.Length; i++)
                    {
                        mail.Attachments.Add(new Attachment(files[i]));
                    }
                }

                SmtpClient smtp = null;
                if (!string.IsNullOrEmpty(cfg.SmtpPort))
                {
                    smtp = new SmtpClient(cfg.SmtpHost, Convert.ToInt32(cfg.SmtpPort));
                }
                else
                {
                    smtp = new SmtpClient(cfg.SmtpHost);
                }

                smtp.Send(mail);

                mail.Dispose();
                mail = null;
                smtp.Dispose();
                smtp = null;
            }
            catch (Exception ex)
            {
                logger.Error("SendMail(): Exception " + ex.Message, ex);
                return(false);
            }
            return(true);
        }