Асинхронный код для отправки уведомления по электронной почте иногда не может отправить электронное письмо - PullRequest
0 голосов
/ 18 июня 2020

Мое рабочее веб-приложение иногда не отправляет уведомление о заказе по электронной почте. Я никогда не сталкивался с этой проблемой в тестовой среде.

Я не понимаю, почему он так себя ведет. Не могли бы вы рассказать мне, что вызывает проблему?

Ниже мой код:

public async Task SendEmail(int alertID, string body, string subject, List<string> ccemailToUserList)
        {
            try
            {

                using (var dbcontext = new MyDbContext())
                {

                    List<string> emailRecipients = new List<string>();

                    Alert emailAlert = new Alert();
                    emailAlert = dbcontext.Alerts.FirstOrDefault(x => x.ID == alertID);


                    body = body.Replace("[[ordertype]]", emailAlert.Description);

                    MailMessage mail = new MailMessage();
                    var mailFrom = ConfigurationManager.AppSettings["SMTPFrom"].ToString();
                    mail.From = new MailAddress(mailFrom);
                    mail.To.Add(emailAlert.Recipients);
                    foreach (var ccEmail in ccemailToUserList)
                    {
                        mail.CC.Add(ccEmail);
                    }

                    SmtpClient client = new SmtpClient();
                    client.Port = 25;
                    client.DeliveryMethod = SmtpDeliveryMethod.Network;
                    client.UseDefaultCredentials = false;
                    client.Host = ConfigurationManager.AppSettings["SMTP"].ToString();
                    mail.Subject = emailAlert.Description+ " - " + subject;
                    mail.Body = body;



                    mail.IsBodyHtml = true;

                    await client.SendMailAsync(mail);
                }
            }
            catch (Exception ex)
            {
                ErrorService.LogError(ex, "Email Error");
            }
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...