技术解析 · 附来源的解答
SMTP 使用哪个端口?SMTP 标准端口指南
SMTP 使用 25 端口进行服务器之间的中继,使用 587 端口通过 STARTTLS 提交邮件,使用 465 端口进行隐式 TLS 连接。应使用哪个端口,取决于您是从客户端向服务器发送邮件,还是在两台邮件服务器之间传送邮件。
25 端口:用于中继
25 端口是 SMTP 最初的标准端口,主要用于在邮件传输代理(MTA)之间中继邮件。大多数家庭宽带互联网服务提供商(ISP)和云服务商会封锁 25 端口的出站流量,以防止被入侵的设备发送垃圾邮件。开发者应避免使用 25 端口从客户端提交邮件,而应将其保留给服务器之间的通信。
587 端口:用于提交
587 端口是现代的邮件提交标准端口,供邮件客户端向提交服务器发送邮件。该端口通常使用 STARTTLS:连接先以未加密方式开始,再升级为安全的 TLS 连接。它是应用集成和第三方 SMTP 服务的推荐端口。
465 端口:用于隐式 TLS
465 端口最初被指定用于 SMTPS。虽然它一度被弃用,但仍被广泛用于隐式 TLS,即从第一个数据包起连接就已加密。许多旧系统和特定服务商仍要求使用 465 端口进行安全传输,不过对于新的实现,通常更推荐 587 端口。
选择合适的端口
要选择正确的端口,请先明确您在邮件流中的角色。如果您要配置一台接收其他服务器邮件的服务器,请使用 25 端口;如果您要编写代码,通过 API 或 SMTP 中继发送邮件,请使用 587 端口。无论使用哪个端口,您都可以借助 SendHQ 免费工具检查 DNS 和身份验证设置,确保邮件被接受。
排查连接问题
25 端口连接超时通常意味着被 ISP 封锁。如果 587 端口连接失败,请确认客户端支持 STARTTLS,并且防火墙允许该端口的出站流量。请始终确保身份验证凭据正确,因为许多服务器会拒绝在提交端口上没有有效 SMTP AUTH 的连接。
团队常问的问题
25 端口安全吗?
25 端口默认并不安全。虽然它可以使用 STARTTLS,但经常被 ISP 封锁以防止垃圾邮件,不建议用于客户端提交邮件。
465 端口和 587 端口有什么区别?
465 端口使用隐式 TLS,连接会立即加密。587 端口使用显式 TLS,通过 STARTTLS 命令将明文连接升级为加密连接。
为什么我的 SMTP 连接会超时?
超时通常是由防火墙规则或 ISP 对 25 端口的封锁引起的。对于开发者来说,改用 587 端口通常就能解决这些连接问题。
一手资料
- RFC 5321:简单邮件传输协议(SMTP) — RFC Editor
- 服务名称与传输协议端口号注册表 — IANA
- RFC 8314:SMTP 之外邮件协议的明文传输注意事项 — RFC Editor