C# · 12月 22, 2021

c# – 让SmtpClient使用自签名SSL证书

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

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

解决方法 您可以查看 ServerCertificateValidationCallback酒店: ServicePointManager.ServerCertificateValidationCallback = (sender,certificate,chain,sslPolicyErrors) => true;

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