Невозможно отправить электронную почту в другие домены, используя System.Net.Mail.SmtpClient - PullRequest
0 голосов
/ 12 июля 2011

Пожалуйста, посмотрите на следующий код:

client.Credentials = new NetworkCredential(SMTP_SERVER_USERNAME, SMTP_SERVER_PASSWORD);
client.EnableSsl = false;
client.Host = SMTP_SERVER_HOSTNAME;
client.Port = 587;
client.UseDefaultCredentials = false;
client.Timeout = 4000;

MailMessage message = new MailMessage();
message.Body = "Test";
message.From = new MailAddress(MY_OWN_ADDRESS);
message.ReplyToList.Add(message.From);
message.Sender = message.From;
message.Subject = SUBJECT_LINE;
message.To.Add(RECIPIENT_ADDRESS);

В настоящее время я не могу использовать его для отправки электронных писем.Код находится в приложении ASP.NET MVC 3, использующем старый механизм ASPX.Он работает на сервере IIS7 с ASP.NET 4.0 в режиме интегрированного конвейера.

При выполнении этого кода происходит одно из двух:

  • Если RECIPIENT_ADDRESS равен MY_OWN_ADDRESS,или другой адрес электронной почты в моем домене, электронное письмо отправляется, и все в порядке.
  • Однако, если RECIPIENT_ADDRESS - это какой-либо адрес электронной почты, работающий или иным образом, на другом сервере, например gmail, во время SmtpClient возникает исключение:

Почтовый ящик недоступен.Ответ сервера: Аутентификация требуется для ретранслятора

Описание : Произошло необработанное исключение во время выполнения текущего веб-запроса.Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Сведения об исключении : System.Net.Mail.SmtpFailedRecipientException: почтовый ящик недоступен.Ответ сервера: аутентификация для реле

1 Ответ

2 голосов
/ 12 июля 2011

Я заметил, что ваш message.To.Add(RECIPIENT_ADDRESS) мог быть строкой. У меня были проблемы с этим в прошлом. Оберните его в MailAddress объект, и он должен работать.

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