我正在尝试将当前的电子邮件代理转换为使用TLS发送电子邮件。我们使用C#,我只是使用了以下更改。
SmtpClient sclient = new SmtpClient();
sclient.EnableSsl = true;
以及验证服务器证书的回调方法。
On测试邮件已成功发送/接收,但我和接收端都无法100%确定电子邮件是否已加密接收。 (我试图使用Fiddler,但它没有捕获电子邮件)
基于此http://luxsci.com/blog/how-you-can-tell-if-an-email-was-sent-using-tls-encryption.html,标题如下
ESMTP id s7JKErN9002462 (version = TLSv1 / SSLv3 cipher = RC4-MD5 bits = 128 verify = NO);
我们可以安全地假设邮件通信确实是加密的吗?或者我是否应该更改任何其他代码,以便确保收到电子邮件或失败? (我认为这不能确定,因为它取决于smtp主机)?
答案 0 :(得分:1)
您可以放心地假设,如果您能够连接并发送,那么您发送邮件的隧道是安全的。
SmtpClient代码是可靠的,你可以相信它。如果在你提出要求之后它无法安全连接,它会抛出异常,所以你会知道某些东西不像你期望的那样。
答案 1 :(得分:1)
最后,您始终可以使用WireShark等网络嗅探器软件检查TLS连接。
当然,如果您只是将连接打开到服务器的SSL端口,并且您收到了服务器证书,那么您可以确定邮件不会出现在蓝天中。