【问题标题】:When connection with Mailkit, does `SecureSocketOptions.StartTlsWhenAvailable` cover TLS verification?与 Mailkit 连接时,`SecureSocketOptions.StartTlsWhenAvailable` 是否涵盖 TLS 验证?
【发布时间】:2019-02-26 22:18:14
【问题描述】:
我注意到Mailkit.SMTPCLient 可以连接各种 TLS 选项以及包含ServerCertificateValidationCallback——这个回调是否意味着需要采取额外的步骤来验证 TLS 证书?或者如果我将其中一个作为最后一个参数传递给.Connect,SecureSocketOptions.StartTls 和SecureSocketOptions.StartTlsWhenAvailable 会在没有回调的情况下处理证书工作吗?
【问题讨论】:
标签:
.net-core
mailkit
mimekit
【解决方案1】:
ServerCertificateValidationCallback 被传递给底层的SslStream,如果/当SslStream 启动 SSL 握手时将被调用。
除None 和可能的StartTlsWhenAvailable 之外,所有SecureSocketOptions 枚举值都将触发SSL 握手。
StartTlsWhenAvailable 检测 SMTP、IMAP 或 POP3 服务器是否支持 STARTTLS 扩展,如果支持,则将连接升级为 TLS 连接。