Посмотрите на следующий код:
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.Send возникает исключение:
Почтовый ящик недоступен. Ответ сервера: для ретрансляции требуется аутентификация
Описание: во время выполнения текущего веб-запроса возникло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.
Сведения об исключении: System.Net.Mail.SmtpFailedRecipientException: почтовый ящик недоступен. Ответ сервера был: Аутентификация требуется для ретрансляции.
message.From
иmessage.Sender
разные? - person Joe   schedule 12.07.2011