
配置应用程序或邮件系统以发送(或中继)电子邮件的人通常有一个共同的问题:“我应该使用哪个SMTP端口?”您可能会看到一些信息告诉您使用25、465、587或2525端口进行SMTP中继。
Business in a box.
探索我们的解决方案。
与我们的销售团队交谈
我应该使用哪个SMTP端口:端口25, 465, 587, 还是2525?
在配置应用程序或邮件系统发送(或中继)电子邮件时,人们常常会有一个常见问题:“我应该使用哪个SMTP端口?” 你可能会看到建议使用端口25、465、587或2525进行SMTP中继的信息。那么,这些中哪一个应该是您的标准SMTP端口? 这是你需要知道的以及原因。

SMTP端口是什么?
SMTP(简单邮件传输协议)是邮件服务器通过互联网 相互发送电子邮件 时使用的基本标准。 Apple Mail 或 Outlook 等应用程序也使用 SMTP 将电子邮件上传到邮件服务器,然后将其中继到其他邮件服务器。 (另一方面,邮件应用程序通常依赖于其他标准如 IMAP 或 POP3 从服务器检索电子邮件。)
像其他互联网服务(例如网站)一样,SMTP电子邮件依赖于域名和互联网地址来确定发送消息的位置。 今天我们所有人都熟悉这些地址的文本版本,比如 www.sparkpost.com。 大多数人知道文本地址代表数字IP地址,比如107.21.246.67。 但并不是所有人都知道这些网络地址 还包括特定的“端口号”。 “SMTP端口”指的是在互联网地址中用于传输电子邮件的特定部分。
网络和HTTP使用端口号80。 对于电子邮件和SMTP,那个端口号是……嗯,这就要看情况了。
SMTP 如何与 SSL 和 TLS 不同?
端口 25:原始标准 SMTP 端口
端口25是电子邮件SMTP的原始标准端口,自1982年首次推出以来就一直使用到今天。互联网编号分配机构(IANA),负责维护互联网地址方案的组织,仍然将端口25识别为标准的默认SMTP端口。SMTP在IETF请求评论(RFC)821中被指定使用端口25。但实际上,这并不像看起来那么简单。
虽然端口25继续用于服务器到服务器的SMTP中继,但大多数现代SMTP客户端不应配置使用此端口。由于端口25在发送大量未经请求的通信时被垃圾邮件发送者首选,因此住宅ISP和商业云托管提供商通常会屏蔽此端口。

为什么端口25通常会被屏蔽?如何检查它是否被屏蔽?
许多网络阻止端口25,以减少从受感染的计算机或服务器中继的垃圾邮件的数量。除非你专门管理邮件服务器,否则你的计算机或服务器上不应有流量经过此端口。
要检查ISP是否屏蔽了端口25:
如果你使用的是Windows,打开命令提示符。如果你使用的是Mac,打开终端。如果你使用的是Linux,打开终端模拟器。
输入以下命令:telnet examplemailserver.com 25
如果端口25没有被屏蔽,你应该收到类似这样的消息:
user@localhost:~# telnet gmail-smtp-in.l.google.com 25 Trying 1.2.3.4... Connected to gmail-smtp-in.l.google.com. Escape character is '^]'. 220 mx.google.com ESMTP 123si3448417qkd.359 - gsmtp
如果你收到类似于以下的消息,端口25可能被屏蔽:
telnet: connect to address XX.XX.XX.XX: Connection refused telnet: Unable to connect to remote host
什么时候会使用端口25?
端口25是互联网上中继电子邮件的默认端口。然而,您可以为SMTP服务器的邮件提交指定任何端口号(只要在自定义端口号的可接受范围内)。
在某些特殊情况下,必须在您的SMTP服务器上使用端口25。其中一种情况是接收带外/异步退信。这种退信在事实发生后才会发生。这意味着接收方域接受来自您的SMTP服务器的消息但稍后将其退回。带外退信异步发送到原始消息的退回路径(MAIL FROM)地址。接收域将尝试发送这些退信到退回路径地址的MX服务器并使用端口25(因为端口25是互联网上中继电子邮件的默认端口)。另一个例子是接收反馈循环(FBL)。
您可以通过配置“smtp-listener”指令来在PowerMTA服务器上启用端口25以接收消息
smtp-listener 10.0.1.22:25 # listens on port 25 and IP 10.0.1.22
端口 465:已弃用且已过时的 SMTP 端口
端口465不再是SMTP的公认标准。然而,仍有一些遗留系统使用端口465用于SMTP,并且在互联网上的一些帮助页面仍推荐将端口465作为设置建议。 该端口在1990年代末期失去了冗余功能,但仍依赖被动的隐式SSL方法来建立安全传输。 我们的建议?除非您的应用程序绝对需要它,否则不要使用。
IANA最初将端口465分配给称为SMTPS的加密版本SMTP。最初建议使用安全套接字层(SSL)发送电子邮件。然而,由于IANA已将该端口重新分配用于其他用途,因此不应再用于SMTP。这就是为什么SparkPost不接受在端口465上的连接。
端口 587:标准安全 SMTP 端口
现代电子邮件服务器使用端口587来安全地提交电子邮件进行发送。例如,如果您使用像Outlook或Apple Mail这样的电子邮件客户端软件,它很可能被配置为使用此端口发送您的消息。然而,这不仅仅是个人电子邮件客户端软件。传递消息到像SparkPost这样的电子邮件传递服务的系统也应该配置为使用此端口。
所有SparkPost客户都应该默认使用端口587,除非您的上游网络或托管服务提供商明确阻止您。使用端口587,再加上TLS加密,是确保电子邮件安全可靠提交给SparkPost(或几乎任何其他提供商)的最佳方式。
端口 2525:一个常见的备用 SMTP 端口
端口2525不是一个官方的SMTP端口,也没有得到IETF或IANA的批准。然而,SparkPost和许多其他电子邮件服务提供商支持使用端口2525作为端口587的替代方案,以防上述端口被阻止。(其中一个显著的例子是Google Compute Engine上托管的服务需要这样做。)如果您尝试过端口587但遇到连接问题,请尝试端口2525。就像端口587一样,大多数在监听端口2525的实现也支持TLS加密。
SMTP 端口是否重要?
除了连接方面的挑战之外,使用不正确的端口会影响可达性。电子邮件通信只有在发件人和收件人之间传递成功时才能有效,而正确的端口确保成功的投递。
对于大多数用户来说,您的电子邮件提供商会为您配置端口,因此您无需选择。然而,对于其他人来说,重要的是要了解不同的端口被分配了不同的功能,主要分为提交和中继。

Submission and Relaying
提交是您将新创建的电子通信转交给您的电子邮件服务提供商的发件箱动作。如果您和您的提供商不在相同的端口上,进程将在此停止——您的电子邮件将无法发送更远。当在相同端口时,您的邮件服务器会接受传出的通信并与另一端的计算机握手。当一切安全且达成一致时,传输就会发生。这个过程被称为中继。
什么是SMTP服务器?
SMTP 服务器是一台支持您电子邮件客户端在发送、接收和/或转发外发邮件时所使用的协议的计算机。作为该过程的一部分,SMTP 服务器验证发件人是否被允许通过 SMTP 发送,如果发件人被允许发送且消息被认为无法投递,SMTP 服务器将把它返回到 MAIL FROM 地址。PowerMTA 是领先的 SMTP 服务器之一,因为它允许发件人采用最新的身份认证规范发送大量电子邮件,并遵守新的身份认证政策。
如何设置您的SMTP服务器
在设置SMTP服务器时,有两种选项可供探索。您可以订阅托管的电子邮件中继服务。SparkPost 是一个领先的电子邮件发送和分析服务提供商。或者,您可以设置“本地”SMTP服务器以获得更细化的控制。一个例子是 PowerMTA。
要启动 PowerMTA 服务器,请联系 support@port25.com 以获取安装包、许可证和安装说明。所有 PowerMTA 配置都在配置文件中完成,该文件位于 Linux 服务器的 /etc/pmta/config 路径和 Windows Server 的 C:\pmta\config.dat 路径。
要对您的 SMTP 服务器进行基本配置,需要考虑几个因素并采取一些步骤。
您希望 SMTP 服务器在哪个 IP 地址和端口号接收邮件?端口 25 是电子邮件中继的默认端口。在 PowerMTA 中,您可以通过编辑配置文件中的 “smtp-listener” 指令来更改此默认端口号。smtp-listener 0/0:25 # 监听所有本地 IP 的端口 25。您还可以指定一组CIDR格式的 IP 地址
或
smtp-listener 10.0.1.22:25 # 监听端口 25 和 IP 10.0.1.22
您必须允许从您的电子邮件客户端到 SMTP 服务器的消息中继。您的 SMTP 服务器绝不应是一个开放中继,这意味着您必须以某种方式有选择性地允许中继。在 PowerMTA 中,这有几种方法。您可以使用用户名和密码进行身份验证。PowerMTA 支持使用 LOGIN、PLAIN 或 CRAM-MD5 机制进行入站连接的身份验证。这是在配置文件的 smtp 用户和源语句中配置的。对于用户“foo”和密码“barbaz”<smtp-user foo> password barbaz authentication-method password #certificate (TLS) 或 system(linux user) 是其他选项 </smtp-user> #然后在源语句中要求身份验证 <source 0/0> require-auth true </source>
您还可以选择性地允许来自特定 IP 地址或 CIDR 范围的中继。这将是您的电子邮件客户端的IP地址。
<source 10.0.5.20> always-allow-relaying yes # 允许从 10.0.5.20 传送 </source>
您还可以设置 PowerMTA 将接受邮件的收件人域名/地址(或模式)。
# 允许某个域的邮件中继 relay-domain some.domain relay-address bounce@bounce.yourdomain.com relay-address /@foo(bar)?\.com$/ # 正则表达式模式
另一个考虑因素是您是否希望从电子邮件客户端到 SMTP 服务器的邮件中继进行安全传输(入站TLS)?如果是,则必须为入站连接启用 STARTTLS 并配置TLS证书。在 PowerMTA 中, TLS 支持从 TLSv1 到 TLSv1.3。smtp-server-tls-certificate /etc/pmta/yourcert.pem #启用入站连接上的 TLS <source 0/0> allow-starttls true require-starttls-before-auth true #确保身份验证信息仅通过 tls 发送 </source>
您是否希望您的 SMTP 服务器安全地将邮件发送到远程服务器(出站TLS)?在 PowerMTA 中,您可以选择在远程服务器支持的情况下使用 TLS,或者在远程服务器不支持 TLS 时强制使用 TLS 并中断连接。<domain *> # (*) 是所有收件人域的通配符 use-starttls true #如果可用则使用TLS require-starttls true #强制使用TLS </domain>
设置您的 SMTP 服务器用于启动传出 SMTP 连接的 IP地址和主机名。在 PowerMTA 中,可以使用 smtp-source-host 指令进行设置。smtp-source-host 192.168.0.10 mail10.yourserver.com #您还可以指定 CIDR 范围
最后,PowerMTA 的一个非常独特的功能就是能够通过构建多宿主主机来分离您的邮件流。PowerMTA 的 VirtualMTA 技术允许用户定义和控制每个邮件流的源 IP 地址、主机名和消息传送参数。这允许为创建单独和具体的营销活动、客户或部门,同时仍然只运行 PowerMTA 的一个实例。
<virtual-mta mta1> smtp-source-host 1.2.3.4 mta1.yourserver.com <domain *> use-starttls true require-starttls true retry-after 10m </domain> </virtual-mta> <virtual-mta mta2> smtp-source-host 2.3.4.5 mta2.yourserver.com <domain *> use-starttls false require-starttls false retry-after 45m </domain> </virtual-mta>
完成基本设置后,您可以提交消息到配置的 SMTP 服务器的主机名/IP 和端口号(如上例的 10.0.1.22:25)并根据您允许的电子邮件提交方式使用配置的用户名(foo)和密码(barbaz)进行身份验证。
总而言之,SMTP 端口 587 是连接到 SparkPost 和其他电子邮件发送服务的最佳选择,几乎适用于每一个使用场景。
希望这些信息能帮助您更好地了解哪个 SMTP 端口使用更合适!
~ Lade