public async Task SendEmail(ConnectionData connectionData, MailData mailData) { using (var message = new MailMessage(FromAddress(mailData), ToAddress(mailData))) { if (!string.IsNullOrEmpty(mailData.Cc)) { var cc = new MailAddress(mailData.Cc); message.CC.Add(cc); } if (!string.IsNullOrEmpty(mailData.Bcc)) { var bcc = new MailAddress(mailData.Bcc); message.Bcc.Add(bcc); } if (!string.IsNullOrEmpty(mailData.SubjectLine)) { message.Subject = mailData.SubjectLine; } if (!string.IsNullOrEmpty(mailData.Body)) { message.Body = mailData.Body; } using (var client = new System.Net.Mail.SmtpClient()) { client.Host = connectionData.ServerName; client.Port = connectionData.PortNumber; client.EnableSsl = connectionData.EnableTls; if (connectionData.AuthenticationRequired) { client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(connectionData.UserName, connectionData.Password); } else { client.UseDefaultCredentials = true; } await client.SendMailAsync(message); } } }
protected static MailAddress ToAddress(MailData mail) { return(!string.IsNullOrEmpty(mail.ToDisplayName) ? new MailAddress(mail.To, mail.ToDisplayName) : new MailAddress(mail.To)); }
protected static MailAddress FromAddress(MailData mail) { return(!string.IsNullOrEmpty(mail.FromDisplayName) ? new MailAddress(mail.From, mail.FromDisplayName) : new MailAddress(mail.From)); }