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); } }
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); }