ssl - SMTP 客户端如何确定是使用 Explicit 还是 Implicit SSL

标签 ssl smtp imap pop3

大多数支持 SSL/TLS 的邮件客户端只需要用户说明是否应启用 SSL。用户无需了解显式和隐式 SSL 以及它们之间的区别。

那么,邮件客户端如何确定使用哪种类型的 SSL?它是基于默认端口号吗?它只是尝试一个然后再尝试另一个吗?

最佳答案

邮件客户端在连接时必须知道是否正在使用隐式 SSL,因为它负责使用 ClientHello 消息启动 SSL 握手。如何确定这取决于客户。端口号是一个很好的提示,但某些 UI 中也可能有一个复选框,即使在使用标准(未 protected )端口号时也会强制执行此操作。

有用于安全邮件的 IANA 注册端口号,但一些 ISP 可能使用其他端口。

  • IMAP/SSL:993
  • POP3/SSL:995

SMTP/SSL 通常在端口 465 上提供,但这没有注册,而且不太常见,因为 SMTP 代理广泛支持对显式 SSL 的支持。

对显式 SSL 的支持可以由服务器使用特定于协议(protocol)的协商来通告。例如,当客户端连接到 SMTP 服务器并发出 EHLO 命令时,服务器将列出其功能,其中可能包括对 STARTTLS 命令的支持。

关于ssl - SMTP 客户端如何确定是使用 Explicit 还是 Implicit SSL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/803899/

相关文章:

c - IMAP协议(protocol)的解释?

java mail api, imap 文件夹 UIDNEXT 总是-1

amazon-web-services - AWS CodeDeploy 未在 Lightsail 基本设置 SSL 上部署

security - OAuth2 和 SSL 是否足以保护 API

java - 如何在 JavaMail 中发送带有嵌入式图像和常规附件的电子邮件?

linux - 如何编写一个 unix 脚本,从 Gmail 获取 IMAP IDLE 通知?

ssl - 如果没有 "www",Namecheap 域将不会重定向

java - Debian SSL 证书错误 : cannot verify xxx certificate/javax.net.ssl.SSLHandshakeException

c# - 从本地主机和在线 asp.net 发送电子邮件

c# - 在 C# 中为邮件编译 HTML 正文