Как использовать явный SSL с System.Net.Mail SMTP

Я видел много примеров неявного SSL (для использования с устаревшим System.Web.Mail) но я пользуюсь System.Net.Mail и хотел бы получить пример кода для отправки электронной почты SMTP через явный SSL.

Мой текущий sendEmail код ниже - обратите внимание, что если я установлю EnableSsl = true, сервер возвращает ошибку 500 и электронное письмо никогда не отправляется. Я предполагаю, потому что это неявный SSL, который System.Net.Mail не поддерживается:

using System.Net.Mail;
...

    public static void SendEmail(string emailbody)
    {

        MailMessage mailMessage = new MailMessage("myDomain@me.com", "yourDomain@me.com");

        mailMessage.IsBodyHtml = true;

        mailMessage.Body = emailbody;

        mailMessage.Subject = "My email";

        SmtpClient smtpClient = new SmtpClient("smtp.me.com", 25);

        // if false, email sends. If true, email does not send, server returns 500 error
        smtpClient.EnableSsl = false;

        smtpClient.Send(mailMessage);
    }

1 ответ

Ты не можешь

https://support.microsoft.com/en-us/help/950260/you-cannot-use-system-net-mail-smtpclient-to-send-an-e-mail-message-wi

Можно предположительно использовать cdo.sys, но он действительно старый, и я не верю, что он больше поддерживается. Я также не уверен, что он доступен или пригоден для использования, так как он шел с Windows 2000.

Лучше всего было бы настроить реальный почтовый сервер для обработки разговоров с внешним миром и общаться с ним через незашифрованное соединение через порт 25. Если у вас есть небольшая коробка для выделения, Postfix - это бесплатный, очень легкий и очень надежный SMTP-сервер, который будет хорошо работать.

Другие вопросы по тегам