首页 文章

让SmtpClient使用自签名SSL证书

提问于
浏览
7

我正在尝试使用System.Net.Mail.SmtpClient类通过我公司的电子邮件服务器中继电子邮件 . 与邮件服务器的所有SMTP连接都必须是SSL,并且它使用自签名证书 . 对于Outlook来说这很好,你可以在警告对话框上单击确定,但有没有人知道让SmtpClient接受自签名证书的方法?

我打算在Windows Azure平台上使用此应用程序,因此我无法将自签名证书安装为受信任的根 .

2 回答

  • 9

    您可以查看ServerCertificateValidationCallback属性:

    ServicePointManager.ServerCertificateValidationCallback = 
        (sender, certificate, chain, sslPolicyErrors) => true;
    

    它表示运行时在尝试验证SSL证书时调用的回调 . 通过返回 true ,你基本上说你不在乎证书是否有效 - >你总是接受它 . 当然,在 生产环境 环境中拥有自签名证书并不是一个好主意 .

  • 3

    我的问题最终是.Net SmtpClient类显然不支持使用端口465进行SMTP SSL连接 . 使用带有自签名SSL证书的端口25可以正常工作 .

    MSDN System.Net论坛问题Can SmtpClient be configured to work with a self signed certificate? .

相关问题