技术解析 · 附来源的解答

SMTP 587 端口与 25 端口:发送邮件该用哪个端口

从客户端或应用向邮件服务器提交邮件时,请使用 587 端口。25 端口专用于服务器之间的中继,并且经常被互联网服务提供商封锁以防止垃圾邮件。587 端口支持用于安全加密的 STARTTLS,是现代邮件提交的标准端口。

587 端口:用于邮件提交

587 端口是指定用于邮件提交的端口。Outlook 等邮件客户端或自定义应用使用它向 SMTP 服务器发送邮件。该端口通常需要身份验证,并使用 STARTTLS 命令将明文连接升级为 TLS 加密的安全会话。由于它是邮件提交的标准端口,很少被 ISP 封锁,因此是开发者的可靠选择。SendHQ 在 https://sendhq.cc/tools 提供免费工具,帮助您检查邮件配置。

25 端口:用于服务器中继

25 端口是最初的 SMTP 端口,用于在邮件传输代理之间中继邮件。一台邮件服务器向另一台发送邮件时,使用的就是 25 端口。然而,由于大量垃圾邮件来自被入侵的家用电脑和未经身份验证的脚本,大多数家庭宽带和云服务商都会封锁 25 端口的出站流量。尝试用 25 端口从应用提交邮件,往往会导致连接超时。

安全与加密方面的差异

587 端口专为配合 STARTTLS 使用而设计,允许客户端和服务器在初始握手之后协商安全连接。25 端口也可以支持 STARTTLS,但在旧系统中常被用于未加密的流量。隐式 TLS 有时会使用 465 端口,不过 587 端口仍是 IANA 推荐的邮件提交标准端口。使用 587 端口可以确保在邮件被接受投递之前正确完成身份验证。

选择合适的端口

如果您使用 Python、Node.js 编写代码,或使用某个库发送事务性邮件,请始终从 587 端口开始。只有在配置一台需要接收互联网上其他服务器邮件的完整邮件服务器时,才使用 25 端口。如果您的应用无法通过 587 端口连接,请检查防火墙设置或云服务商的安全组,确保该端口允许出站流量。

团队常问的问题

为什么 25 端口会被封锁?

ISP 封锁 25 端口,是为了阻止垃圾邮件机器人绕过合法邮件服务器,直接从受感染的设备发送数百万封邮件。

587 端口安全吗?

安全,587 端口使用 STARTTLS 加密客户端与服务器之间的通信,保护凭据和邮件内容。

可以改用 465 端口吗?

465 端口最初用于 SMTPS(隐式 TLS)。虽然它仍然很常见,但通过 STARTTLS 使用 587 端口才是当前的邮件提交标准。

一手资料