如何将显式SSL与System.Net.Mail SMTP一起使用



我已经看到了很多隐式SSL的例子(用于已弃用的System.Web.Mail(,但我正在使用System.Net.Mail,并且想要一个有关如何通过显式SSL发送SMTP电子邮件的代码示例。

我当前的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);
}

你不能。

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服务器,可以很好地工作。

最新更新