Почему System.Net.Mail получает «сбой аутентификации», а System.Web.Mail - нет? - PullRequest
3 голосов
/ 17 января 2011

Я отправляю электронное письмо из приложения asp.net через сторонний SMTP-сервер. Этот сервер требует аутентификации. Обычно для этого я бы использовал System.Net.Mail в сочетании с System.Net.NetworkCredential.

В этом конкретном случае я продолжаю получать сообщение «сбой аутентификации». Я знаю, что имя хоста, имя пользователя и пароль верны; Я успешно отправил сообщения через Outlook.

Я наконец прибег к использованию System.Web.Mail для отправки сообщения и использовал System.Web.Mail.MailMessage.Fields.Add для указания учетных данных.

Глядя на передачи в Wireshark, я заметил небольшую разницу в начальной команде AUTH. Outlook и System.Web.Mail отправляют сообщение «AUTH LOGIN», а System.Net.Mail отправляет сообщение «AUTH LOGIN bWFpba ==».

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

1 Ответ

1 голос
/ 18 января 2011

Похоже, что версия System.Net.Mail отправляет хэш или вызов какого-либо типа, а версия System.Web.Mail - нет.Есть ли параметр, который вы используете в одном, который вы не используете в другом?В качестве альтернативы может быть так, что настройка NetworkCredential предполагает, что вы хотите использовать механизм связи с хешированием или шифрованием, в то время как сервер, на который вы отправляете, может не поддерживать это.

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