Как мне SMTP с C # 4 / .NET 4 для порта 465 / SSL (в настоящее время не поддерживается) ... нужны идеи - PullRequest
0 голосов
/ 05 декабря 2011

Во-первых, я обнаружил методом проб и ошибок, что c # 4 / .NET 4 имеет некоторые серьезные ограничения, которые мне необъяснимы.

Microsoft не поддерживает SSL через порт 465 в c # 4 / .NET 4.

Microsoft только поддерживает SSL на 587 до "STARTTLS" .

мне нужно использовать 465 / SSL , потому что мой почтовый сервер hMailServer не поддерживает "STARTTLS".

Я надеялся использовать c # 4 / .NET 4 из коробки ... я не хочу покупать сторонние решения.

я хотел бы создать собственное решение для SMTP с использованием SSL на порту 465 .

Я предполагаю, что мне, возможно, придется использовать неуправляемый код c #, чтобы это произошло.

есть идеи? , пожалуйста и спасибо. Rgds / Gerry

Ссылки

"настройка путаницы SSL ..." , ветка форума hMailServer.

MSDN: «Свойство SmtpClient.EnableSsl» :
«Альтернативный метод подключения заключается в том, что сеанс SSL устанавливается перед отправкой любых протокольных команд. Этот метод подключения иногда называется SMTP / SSL, SMTP через SSL или SMTPS и по умолчанию использует порт 465. Этот альтернативный метод подключения использует SSL в настоящее время не поддерживается. "

P.S .: Я искал SO и Google и не могу найти ничего подходящего.

Ответы [ 3 ]

0 голосов
/ 05 декабря 2011

Если вы можете, и если он все еще работает ( «Этот API устарел» * ), вы сможете использовать SMTPS (SMTP с открытым SSL / TLS), используя System.Web.Mail.MailMessage:

System.Web.Mail.MailMessage mailMsg = new System.Web.Mail.MailMessage();
// ...
mailMsg.Fields.Add
            ("http://schemas.microsoft.com/cdo/configuration/smtpusessl",
                 true);

Конечно, тот факт, что этот API устарел в .Net 4, не идеален.Это, вероятно, все еще работает на практике.

В противном случае вам, возможно, придется полагаться на библиотеки из 3-х частей или что-то вроде stunnel .

0 голосов
/ 24 сентября 2014

Вы можете установить ssl TCP / IP-соединение с вашим сервером smtp, сгенерировать правильные команды и заголовки и отправить их.Однако это было бы слишком запутанным.Я сделал это уже в [Aegis Implicit Mail (AIM)] (https://sourceforge.net/projects/netimplicitssl/) проект. Попробуйте скачать его исходный код и посмотрите.

Вы можете найти ответ на все ваши проблемы здесь

0 голосов
/ 05 декабря 2011

Как вы уже обнаружили, MS ясно говорит, что то, что вы хотите, НЕ поддерживается "из коробки".
И вы не хотите использовать какую-либо стороннюю библиотеку.

Возможности размещения обоих:

  • Вы можете самостоятельно реализовать необходимый протокол (SMTPS) (не рекомендуется!) ИЛИ
  • использовать некоторый механизм туннелирования TCP / прокси (что, в свою очередь, снова означает стороннюю библиотеку) ИЛИ
  • вы можете переключиться с вашего текущего SMTP-сервера (hMailServer) на тот, который поддерживает STARTTLS

РЕДАКТИРОВАТЬ - согласно комментариям некоторые библиотеки, поддерживающие «SMTP с implicitc SSL»:

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