Exemple #1
0
        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);
            }
        }
Exemple #2
0
        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}");
            }
        }