我已经浏览了许多关于 SMTP 连接的示例代码。在那些中,大多数人 SmtpServer.EnableSsl=true ;
只使用 gmail(我的观察)。此代码的范围或用途是什么?
3 回答
从MSDN中查看SmtpClient.EnableSsl
;
指定 SmtpClient 是否使用安全套接字层 (SSL) 来加密连接。
如果 SmtpClient 使用 SSL,则为 true;否则为假。默认值为假。EnableSsl 属性指定是否使用 SSL 访问指定的 SMTP 邮件服务器。
来自 MSDN 上的SmtpClient
类,EnableSSl
属性:
- 指定 SmtpClient 是否使用安全套接字层 (SSL) 来加密连接。
此属性的默认值也可以在机器或应用程序配置文件中设置。对 EnableSsl 属性所做的任何更改都会覆盖配置文件设置。
SmtpClient 类仅支持 RFC 3207 中定义的基于传输层安全的安全 SMTP 的 SMTP 服务扩展。在这种模式下,SMTP 会话在未加密的通道上开始,然后客户端向服务器发出 STARTTLS 命令以切换到使用 SSL 进行安全通信。有关详细信息,请参阅 Internet 工程任务组 (IETF) 发布的 RFC 3207。
另一种连接方法是在发送任何协议命令之前预先建立 SSL 会话。此连接方法有时称为 SMTP/SSL、SMTP over SSL 或 SMTPS,默认情况下使用端口 465。当前不支持使用 SSL 的这种替代连接方法。
您可以使用 ClientCertificates 指定应使用哪些客户端证书来建立 SSL 连接。ServerCertificateValidationCallback 允许您拒绝 SMTP 服务器提供的证书。SecurityProtocol 属性允许您指定要使用的 SSL 协议的版本。
笔记:
如果 EnableSsl 属性设置为 true,并且 SMTP 邮件服务器未在对 EHLO 命令的响应中通告 STARTTLS,则对 Send 或 SendAsync 方法的调用将引发 SmtpException。