Как получить / согласовать поддерживаемые методы безопасности и методы аутентификации SMTP-сервера - PullRequest
0 голосов
/ 07 сентября 2011

Я использую C # (.NET 4.0) и класс System.Net.Mail.SmtpClient для отправки EMail на SMTP-сервер.На данный момент я могу отправить EMail на SMTP-сервер и сразу же увидеть его в моей папке входящих сообщений Thunderbird.

В этом тесте не указывались ни методы аутентификации, ни методы безопасности.Но обычно SMTP-сервер требует какой-то аутентификации, я полагаю.

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

  • Без аутентификации
  • Пароль, открытый текст
  • Пароль, зашифрованный
  • Kerberos
  • NTLM

Соответственно для метода безопасности соединения:

  • Нет безопасности соединения
  • STARTTLS
  • SSL / TLS

Есть ли способ программно получить поддерживаемые методы с SMTP-сервера?

1 Ответ

0 голосов
/ 07 сентября 2011

Можно, но не через класс .NET; скорее вам нужно будет использовать соединение на уровне сокета, чтобы отправить соответствующий запрос EHLO на сервер, а затем проанализировать ответ.

Подробная информация о программировании сокетов вам нужна здесь: Как проверить SMTP-сервер

Вы захотите проанализировать ответ с сервера. Запись в Википедии по SMTP AUTH содержит полезный пример диалога: http://en.wikipedia.org/wiki/SMTP_Authentication

Утилиты типа Wireshark (http://www.wireshark.org/) могут быть полезны для отладки такого рода работы.

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