public void SendMessage(MailMessage mailMessage) { Log.Information($"Email Host: {_emailSettings.Host}"); var message = new System.Net.Mail.MailMessage { From = new MailAddress("*****@*****.**", "Anlab") }; if (mailMessage.SendTo != "*****@*****.**") //TODO: Remove when we want to start actually emailing people. { throw new Exception("The testing email was not used."); } var sendToEmails = mailMessage.SendTo.Split(';'); foreach (var sendToEmail in sendToEmails) { message.To.Add(sendToEmail); } var bcc = _emailSettings.AnlabAddress; if (!string.IsNullOrWhiteSpace(bcc)) { message.Bcc.Add(bcc); } message.Subject = mailMessage.Subject; message.IsBodyHtml = false; message.Body = mailMessage.Body; var mimeType = new System.Net.Mime.ContentType("text/html"); var alternate = AlternateView.CreateAlternateViewFromString(mailMessage.Body, mimeType); message.AlternateViews.Add(alternate); using (var client = new SmtpClient(_emailSettings.Host)) { client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(_emailSettings.UserName, _emailSettings.Password); client.Port = _emailSettings.Port; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.Send(message); } }
public void SendFailureNotification(int orderId, string failureReason) { try { var message = new System.Net.Mail.MailMessage { From = new MailAddress("*****@*****.**", "Anlab") }; message.To.Add(_emailSettings.AnlabAddress); message.Bcc.Add("*****@*****.**"); message.Bcc.Add("*****@*****.**"); var body = $"<p>Order Id {orderId}: https://anlab.ucdavis.edu/Lab/Details/{orderId} failed email.</p><p>Failure Reason: {failureReason}</p>"; message.Subject = $"T.O.P.S. Email Failure. Order Id {orderId}"; message.IsBodyHtml = false; message.Body = body; var mimeType = new System.Net.Mime.ContentType("text/html"); var alternate = AlternateView.CreateAlternateViewFromString(body, mimeType); message.AlternateViews.Add(alternate); using (var client = new SmtpClient(_emailSettings.Host)) { client.UseDefaultCredentials = false; client.Credentials = new NetworkCredential(_emailSettings.UserName, _emailSettings.Password); client.Port = _emailSettings.Port; client.DeliveryMethod = SmtpDeliveryMethod.Network; client.EnableSsl = true; client.Send(message); } } catch (Exception ex) { Log.Error($"Error sending email for Failure reason. OrderId {orderId} Exception {ex.Message}"); } }