如何在System.Net.Mail SMTP

时间:2018-08-22 22:51:32

标签: c# asp.net ssl smtp system.net.mail

我已经看到很多隐式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 个答案:

答案 0 :(得分: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服务器,可以很好地工作。