技术解析 · 附来源的解答
587 端口是做什么用的?SMTP 提交端口详解
587 端口用于 SMTP 邮件提交,让邮件客户端可以把外发邮件发送到邮件服务器。它是客户端与服务器通信的标准端口,通常需要身份验证,并使用 STARTTLS 加密连接。
587 端口的作用
587 端口被指定为 SMTP 的提交端口。25 端口主要用于服务器之间的中继,而 587 端口则供最终用户向其邮件服务器提交邮件。这种分工要求客户端在邮件被接受并投递到最终目的地之前先完成身份验证,从而有助于防止垃圾邮件。
STARTTLS 与加密
587 端口上的连接通常以明文开始,然后通过 STARTTLS 命令升级为安全的 TLS 连接。这一机制确保凭据和邮件内容在传输过程中得到加密。这与隐式 TLS 不同,后者从第一个字节起就对连接加密,这正是 465 端口的行为方式。
与 25 端口和 465 端口的比较
25 端口是传统的 SMTP 端口,用于在邮件传输代理之间中继邮件。许多 ISP 会对家庭宽带和云服务的 IP 段封锁 25 端口,以阻止僵尸网络发送垃圾邮件。465 端口最初用于 SMTPS,但现在被视为已弃用,推荐改用搭配 STARTTLS 的 587 端口,不过许多服务商仍支持用它进行隐式 SSL/TLS 连接。
配置与故障排查
配置邮件客户端或应用时,请选择 587 端口并启用 TLS 或 STARTTLS。如果连接失败,请确认防火墙允许该端口的出站流量。开发者可以使用 SendHQ 免费工具(https://sendhq.cc/tools)检查 DNS 和身份验证记录,确保通过 587 端口提交的邮件不会被标记为垃圾邮件。
身份验证要求
大多数监听 587 端口的服务器都要求 SMTP AUTH。这意味着客户端必须提供有效的用户名和密码,服务器才会接受该邮件进行中继。这一要求可以防止开放中继;开放中继允许任何人发送邮件,因此是垃圾邮件发送者的首要目标。
团队常问的问题
587 端口安全吗?
安全。与 STARTTLS 配合使用时,587 端口会加密客户端与服务器之间的通信,保护敏感数据不被截获。
应该使用 587 端口还是 465 端口?
587 端口是当前 IANA 的邮件提交标准端口。465 端口用于隐式 TLS,在现代标准配置中较少使用。
为什么 25 端口被封锁而 587 端口是开放的?
ISP 封锁 25 端口,是为了防止未经授权的邮件服务器和垃圾邮件机器人直接从用户网络向互联网发送邮件。
一手资料
- 服务名称与传输协议端口号注册表 — IANA
- RFC 3207:基于传输层安全(TLS)的安全 SMTP 服务扩展 — RFC Editor
- RFC 8314:SMTP 之外邮件协议的明文传输注意事项 — RFC Editor