Как использовать явный 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 ответ
Ты не можешь
Можно предположительно использовать cdo.sys, но он действительно старый, и я не верю, что он больше поддерживается. Я также не уверен, что он доступен или пригоден для использования, так как он шел с Windows 2000.
Лучше всего было бы настроить реальный почтовый сервер для обработки разговоров с внешним миром и общаться с ним через незашифрованное соединение через порт 25. Если у вас есть небольшая коробка для выделения, Postfix - это бесплатный, очень легкий и очень надежный SMTP-сервер, который будет хорошо работать.