
配置应用程序或邮件系统以发送(或转发)电子邮件的人们常常有一个共同的问题:“我应该使用哪个SMTP端口?”
Business in a box.
探索我们的解决方案。
与我们的销售团队交谈
我应该使用哪个SMTP端口:端口25, 465, 587, 还是2525?
配置应用程序或邮件系统以发送(或中继)电子邮件的人通常有一个常见的问题:“我应该使用哪个SMTP端口?” 你可能会看到信息指示你使用25、465、587或2525端口用于SMTP中继。那么,这些端口中哪个应该是你的标准SMTP端口?以下是你需要知道的内容和原因。
什么是SMTP端口?
SMTP 如何与 SSL 和 TLS 不同?
两种技术都促进电子邮件的发送。虽然SMTP可能是该过程的肌肉和骨骼,但安全套接字层(SSL)则构成了保护电子邮件安全的外层。SSL可以与任何可用的端口一起工作。
SSL曾是常见电子邮件端口的标准安全协议。在采用其改进的后继者传输层安全(TLS)后,电子通信变得更加安全。
虽然这两种协议都在发送和接收计算机之间创建了一个私有通道来保护传输,但 TLS提供比其前身更多的警报,并且能够执行更多的哈希函数以增强加密通信。如今,许多电子邮件使用最新的STARTTLS协议,该协议结合了SSL或TLS协议以实现最大安全性。
SMTP协议本身不如可能的安全。将传输方法与其中一种安全协议结合使用能提供更多的加密保护。对于发送电子邮件,SSL和其他协议增强了SMTP传输。
如何找出你的SMTP端口是什么?
如果您订阅了托管电子邮件中继服务,可以从电子邮件服务的支持页面获取SMTP服务器主机名和端口号。
如果您运行自己的SMTP服务器,您可以从SMTP服务器配置中找到配置的SMTP端口号和地址。在PowerMTA中,您可以从配置文件中的“smtp-listener”指令中找到该信息。配置文件可以在Linux服务器的/etc/pmta/config和Windows Server的C:\pmta\config.dat中找到。
smtp-listener 10.0.1.22:587 # 在端口587和IP 10.0.1.22上监听
Which port 应该使用用于 SMTP?
端口25、465、587或2525在某些时候都被视为标准SMTP端口,但实际上,只有587或2525应该被视为现代使用的端口。
如果您正在配置系统以使用SparkPost作为SMTP中继,您应该使用587作为您的标准SMTP端口,2525作为备用端口,以防587不可用。
接下来我将解释为什么我们今天常用的发送邮件的不同端口。

端口 25:原始标准 SMTP 端口
端口25是原始标准电子邮件SMTP端口,也是历史最悠久的,自1982年首次登场以来。当前,互联网号码分配局 (IANA),负责维护互联网地址方案的组织,仍然将端口25视为标准默认SMTP端口。SMTP在IETF请求注释 (RFC) 821中被指定为使用端口25。但实际上,它并不像看上去那么简单。
虽然端口25继续用于服务器间的SMTP中继,但大多数现代SMTP客户端不应配置为使用此端口。由于它被不良用途频繁使用,所以住宅ISP和商业云托管提供商通常会阻止端口25,因为它作为垃圾邮件发送大量未经请求通信的首选端口而得名声不佳。
为什么端口 25 通常被阻塞?你如何检查它是否被阻塞?
许多网络阻止了端口25,以控制通过受感染的计算机或服务器中继的垃圾邮件数量。除非您专门管理邮件服务器,否则不应在您的计算机或服务器上有此端口的流量。
要检查端口25是否被ISP阻止:
如果您使用的是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: 连接到地址XX.XX.XX.XX: 连接被拒绝 telnet: 无法连接到远程主机
你什么时候会使用端口25?
端口25是互联网电子邮件中继的默认端口。但是,您可以指定任何端口号(前提是它在自定义端口号的可接受范围内)用于提交电子邮件到您的SMTP服务器。
有一些特殊情况,您必须在SMTP服务器上使用端口25。其中一个情况是接收异步反弹。这种类型的反弹发生在事后。这意味着接收域接受来自您的SMTP服务器的消息,但稍后将该消息退回。这些异步反弹会发送到原始消息的返回路径(MAIL FROM)地址。接收域将尝试通过返回路径地址的MX服务器并使用端口25(因为端口25是互联网电子邮件中继的默认端口)发送这些反弹。另一个例子是接收反馈循环(FBL)。
您可以通过配置“smtp-listener”指令在PowerMTA服务器上启用端口25以接收消息
smtp-listener 10.0.1.22:25 # 监听端口25和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” 是指您将新创建的电子通信交给您的电子邮件服务提供商的发件箱的操作。如果您和您的提供商使用不同的端口,此过程将在此停止——您的电子邮件将不会进一步传输。当在同一端口时,您的邮件服务器接受传出的通信并与另一端的计算机握手。当一切安全且一致时,传输发生。这个过程被称为“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 服务器的 C:\pmta\config.dat 中。
对于您的 SMTP 服务器的基本配置,有一些考虑因素和步骤需要采取。
您希望您的 SMTP 服务器在哪个IP地址和端口号接收电子邮件?端口25 是电子邮件中继的默认端口。在 PowerMTA 中,您可以通过编辑配置文件中的 “smtp-listener” 指令来更改此默认端口号。smtp-listener 0/0:25 # 监听所有本地 IP 的端口 25。您还可以指定 IP 地址的 CIDR 范围
或者
smtp-listener 10.0.1.22:25 # 监听端口 25 和 IP 10.0.1.22
您必须允许从您的电子邮件客户端到您的 SMTP 服务器的消息中继。您的 SMTP 服务器绝不应该是一个开放中继。这意味着您必须以某种方式选择性地允许中继。在 PowerMTA 中,有几种方法可以做到这一点。您可以通过用户名和密码进行身份验证。PowerMTA 支持使用 LOGIN, PLAIN 或 CRAM-MD5 机制进行入站连接的身份验证。这在配置文件的 smtp-user 和 source 语句中配置。对于用户 “foo” 和密码 “barbaz”<smtp-user foo> password barbaz 身份验证方法密码 #证书 (TLS) 或系统(linux用户) 是其他选项 </smtp-user> #然后在 source 语句中要求身份验证 <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 接受电子邮件的接收域名/地址(或模式)设置。
# 允许将邮件中继到 some.domain 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 端口应该使用!
了解更多
想了解更多关于使用SMTP的信息吗?以下是配置SparkPost进行SMTP中继和电子邮件发送的说明,SMTP和API消息传输之间的区别,以及排除与SparkPost的SMTP连接故障的方法。您在SparkPost的专业团队也随时可以提供技术支持。