在连接到服务器之前,您需要为该属性分配一个启用 SSL 的TIdIOHandler
组件,例如TIdSSLIOHandlerSocketOpenSSL
,TIdSMTP.IOHandler
并将该TIdSMTP.UseEHLO
属性设置为 True。然后,您有两种选择来配置 TLS 设置:
将TIdSMTP.UseTLS
属性设置为utUseExplicitTLS
,然后将TIdSMTP.Port
属性设置为 25、587 或 2587(SES 上的所有三个端口都支持utUseExplicitTLS
)。
将TIdSMTP.UseTLS
属性设置为utUseImplicitTLS
,然后将TIdSMTP.Port
属性设置为 465 或 2465(SES 上的两个端口都支持utUseImplicitTLS
)。
这些UseTLS
值之间的区别在于,utUseExplicitTLS
它将连接到最初未加密的服务器,然后在需要时向服务器发送 SMTPSTARTTLS
命令以启用加密,而utUseImplicitTLS
将连接到服务器并在任何与 SMTP 相关的数据可以交换之前立即启用加密。
亚马逊建议验证服务器的 TLS 证书以验证连接的完整性。您可以在属性中启用sslvrfPeer
和sslvrfFailIfNoPeerCert
标志TIdSSLIOHandlerSocketOpenSSL.SSLOptions.VerifyMode
,然后TIdSSLIOHandlerSocketOpenSSL.OnVerifyPeer
根据需要使用该事件来验证证书详细信息。