public static void SendMailSmtp(string subject, string body, bool isBodyHtml, MailAddress[] mailTo, MailAddress[] hiddenMailTo, AttachmentFile file, bool isTest) { if (!mailTo.Any() && (hiddenMailTo == null || !hiddenMailTo.Any())) { throw new Exception("Не указаны получатели письма!"); } var mail = new MailMessage(); string host = ConfigurationManager.AppSettings["SmtpHost"]; int port = String.IsNullOrEmpty(ConfigurationManager.AppSettings["Host"]) ? 587 :Convert.ToInt32(ConfigurationManager.AppSettings["Host"]); string login = ConfigurationManager.AppSettings["SmtpLogin"]; string pass = ConfigurationManager.AppSettings["SmtpPass"]; string mailFrom = ConfigurationManager.AppSettings["SmtpMailFrom"]; var client = new SmtpClient(host, port); client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.Credentials = new NetworkCredential(login, pass); mail.From = new MailAddress(mailFrom, string.Empty, System.Text.Encoding.UTF8); //client.EnableSsl = false; if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["Environment"]) && !isTest) { if (mailTo != null) { foreach (var mailAddress in mailTo) { if (string.IsNullOrEmpty(mailAddress.Address)) { continue; } mail.To.Add(mailAddress); } } if (hiddenMailTo != null) { foreach (var mailAddress in hiddenMailTo) { if (string.IsNullOrEmpty(mailAddress.Address)) { continue; } mail.CC.Add(mailAddress); } } } else { var testMails = ConfigurationManager.AppSettings["Emails4Test"]?.Split('|'); foreach (var email in testMails) { if (string.IsNullOrEmpty(email)) { continue; } mail.To.Add(email); } body += "\r\n"; if (mailTo != null) { foreach (var mailAddress in mailTo) { body += "\r\n" + mailAddress.Address; } } //Hidden recipients if (hiddenMailTo != null) { foreach (var mailAddress in hiddenMailTo) { body += "\r\n" + mailAddress.Address; } } } mail.Subject = subject; mail.Body = body; mail.IsBodyHtml = isBodyHtml; //client.SendCompleted += new SendCompletedEventHandler(SendCompletedCallback); //client.SendCompleted += (s, e) => { // SendCompletedCallback(s, e); // client.Dispose(); // mail.Dispose(); //}; if (file != null && file.Data.Length > 0) { var stream = new MemoryStream(file.Data); var attachment = new Attachment(stream, file.FileName, file.DataMimeType); mail.Attachments.Add(attachment); } try { client.Send(mail); } catch (Exception ex) { throw new Exception($"Сообщение не было отправлено. Текст ошибки - {ex.Message}"); } }
public static void SendMailSmtp(string subject, string body, bool isBodyHtml, string mailTo, string hiddenMailTo = null, AttachmentFile file = null) { SendMailSmtp(subject, body, isBodyHtml, new[] { mailTo }, new[] { hiddenMailTo }, file); }
public static void SendMailSmtp(string subject, string body, bool isBodyHtml, MailAddress[] mailTo, MailAddress[] hiddenMailTo = null, AttachmentFile file = null) { Task.Run(() => { SendMailSmtp(subject, body, isBodyHtml, mailTo.ToArray(), hiddenMailTo?.ToArray(), file, false); }); }
public static void SendMailSmtp(string subject, string body, bool isBodyHtml, IEnumerable <string> mailTo, IEnumerable <string> hiddenMailTo = null, AttachmentFile file = null) { var recipients = new List <MailAddress>(); if (mailTo != null) { foreach (var email in mailTo) { if (string.IsNullOrEmpty(email)) { continue; } recipients.Add(new MailAddress(email)); } } var recHidden = new List <MailAddress>(); if (hiddenMailTo != null) { foreach (var email in hiddenMailTo) { if (string.IsNullOrEmpty(email)) { continue; } recHidden.Add(new MailAddress(email)); } } Task.Run(() => { SendMailSmtp(subject, body, isBodyHtml, recipients.ToArray(), recHidden.ToArray(), file); }); }