System.Net.Mail не работает на производственном сервере - PullRequest
0 голосов
/ 29 июня 2019

Я знаю, что этот вопрос задавался несколько раз, но моя ситуация совершенно иная.У меня есть проект веб-API, в котором есть метод действия, используемый для отправки электронных писем пользователям для подтверждения их регистрации.Код работает хорошо на моей локальной машине и на всех других локальных машинах.После первого развертывания функция отправки электронной почты работала нормально, но когда-нибудь она внезапно перестала работать. В коде нет исключений после присоединения кода Web API к производственному серверу IIS, в файлах журналов исключений не обнаружено, и все выглядит хорошо.Я дважды проверил, что функция SMTP включена на производственном сервере.

Дальнейшее устранение неполадок:

  1. Я отключил брандмауэр (безуспешно).
  2. В попытке изолировать проблему я создал простую консоль на C #приложение, которое отправляет фиктивную почту, используя те же конфигурации, но безуспешно (локально, но безуспешно, на рабочем сервере).
  3. Я попробовал предложенные решения здесь но безуспешно.

Вот пример кода, который я использую:

            MailMessage mail = new MailMessage();
            mail.From = new System.Net.Mail.MailAddress(fromMail);

            // The important part -- configuring the SMTP client
            SmtpClient smtp = new SmtpClient();
            smtp.Port = 587;   // [1] You can try with 465 also, I always used 587 and got success
            smtp.EnableSsl = true;
            smtp.DeliveryMethod = SmtpDeliveryMethod.Network; // [2] Added this
            smtp.UseDefaultCredentials = false; // [3] Changed this
            smtp.Credentials = new NetworkCredential(fromMail, fromPassword);  // [4] Added this. Note, first parameter is NOT string.
            smtp.Host = SMTPServer;


            //recipient address
            mail.To.Add(new MailAddress(toMail));

            //Formatted mail body
            mail.IsBodyHtml = true;


            mail.Body = body;
            mail.Subject = subject;
            smtp.Send(mail);
            return true;

Я использую smtp.office365.com в качестве клиента SMTP-сервера.

У меня последний вопрос:

Ограничивает ли System.Net.Mail количество отправляемых писем в день / месяц / год?или есть ли шанс, что сервер был заблокирован от отправки электронной почты?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...