ASP.NET MVC 5 - Ошибка отправки почты - Удаленный сервер возвратил ошибку: (403) Запрещено - PullRequest
0 голосов
/ 01 июня 2019

Я отправляю электронное письмо с smtp.office365.com в течение полугода, оно отлично работает, но со вчерашнего дня я получаю сообщение об ошибке

«System.Net.WebException: удаленный сервер возвратил ошибку:(403) Запрещено ».

Со вчерашнего дня я пытался найти решение, но мне не удалось, и мне нужна помощь.: / Я должен отметить, что электронная почта, которую я использовал для отправки почты, является частной электронной почтой в Office365, и бывают дни, когда мне нужно отправить много электронной почты (минимум 100 электронных писем).Все электронные письма также отправляются мне, установив меня в cc.

Так что я гуглю свою проблему и обнаружил:

  • Измените учетные данные в smtp, перейдя по этой ссылке
  • Посмотрел настройки Smtp в моем онлайн-Outlook и использовал те же настройки.
  • Проверьте имя DNS, перейдя по этой ссылке .
SmtpClient smtp = new SmtpClient
                {
                    Host = smtp.office365.com,
                    Port = 587,
                    EnableSsl = true,
                    DeliveryMethod = SmtpDeliveryMethod.Network,
                    UseDefaultCredentials = false,
                    Credentials = new NetworkCredential(username, password)
                };

                    for (int i = 0; i < 3; i++)
                    {
                        try
                        {
                            using (message = new MailMessage(fromAddress, toAddress)
                            {
                                Subject = ...,
                                IsBodyHtml = true,
                            })
                            {
                                body = ...;
                                message.AlternateViews.Add(AlternateView.CreateAlternateViewFromString(body, new ContentType("text/html")));
                                await smtp.SendMailAsync(message);
                            }

                            break;
                        }
                        catch (Exception e)
                        {
                            if (i == 2)
                            {
                                log.Error($"Exception.", e);
                            }
                            else
                            {
                                Thread.Sleep(1000);
                            }
                        }
                    }
...