我应该使用哪个SMTP端口:端口25、465、587或2525?
配置应用程序或邮件系统以发送(或中继)电子邮件的人常常有一个共同的问题:“我应该使用哪个SMTP端口?”您可能会看到一些信息告诉您要使用端口25、465、587或2525进行SMTP中继。那么,这些中哪个应该是您的标准SMTP端口?以下是您需要知道的,以及原因。
什么是SMTP端口?
SMTP(简单邮件传输协议)是邮件服务器用于在互联网上相互发送电子邮件的基本标准。SMTP也被应用程序如Apple Mail或Outlook用于将电子邮件上传到邮件服务器,然后再转发到其他邮件服务器。(另一方面,邮件应用程序通常依赖于其他标准,如IMAP或POP3从服务器检索电子邮件。)
像其他互联网服务一样,SMTP电子邮件依赖于域名和互联网地址来知道将消息发送到哪里。今天,我们所有人都熟悉这些地址的文本版本,比如www.sparkpost.com。大多数人知道文本地址代表的数字IP地址,如107.21.246.67。但不是很多人知道,这些网络地址也包含特定的“端口号”。“SMTP端口”是指用于传输电子邮件的互联网地址的特定部分。
网络和HTTP使用端口号80。对于电子邮件和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服务器的C:\pmta\config.dat中找到。
smtp-listener 10.0.1.22:587 # 监听端口587和IP 10.0.1.22
您应该使用哪个端口进行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客户端不应该被配置为使用这个端口。 端口 25通常被住宅ISP和商业云托管提供商封锁,因为它因为被垃圾邮件发送者用于发送大量未经请求的通信而声名狼藉。
为什么端口25通常被封锁?您如何检查它是否被封锁?
在很多网络上,端口25被封锁以遏制从被损坏的计算机或服务器中中继的垃圾邮件。除非您专精于管理邮件服务器,否则您应该没有流量通过此端口在您的计算机或服务器上。
要检查您的ISP是否封锁了端口25:
如果您正在使用Windows,请打开命令提示符。如果您正在使用Mac,请打开终端。如果您正在使用Linux,请打开终端仿真器。
输入以下命令:telnet examplemailserver.com 25
如果端口25没有被封锁,您应该会收到如下消息:
user@localhost:~# telnet gmail-smtp-in.l.google.com 25 尝试 1.2.3.4... 已连接到 gmail-smtp-in.l.google.com。转义字符为'^]'。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 # 监听端口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端口重要吗?
除了连接方面的挑战,您会发现使用错误的端口会影响可交付性。电子邮件通信只有在发送者和接收者之间顺利进行时才能有效,正确的端口确保成功投递。
对于大多数用户,您的电子邮件提供商会为您配置端口,因此您不必选择。对于其他人来说,重要的是了解不同的端口被分配了不同的功能,主要分为提交和中继。
提交和中继
提交是您将新制作的电子通信交给您电子邮件服务提供商的出箱的动作。如果您和您的提供商在不同的端口,这就会停止该过程——您的电子邮件不会进一步处理。当在同一端口时,您的邮件服务器接受即将发送的通信,并与另一端的计算机握手。一切都是安全的并且达成一致时,传输会发生。这个过程称为中继。
什么是SMTP服务器?
SMTP服务器是一个计算机,负责您电子邮件客户端在发送、接收和/或中继外发消息时使用的协议。作为该过程的一部分,SMTP服务器验证发件人是否被允许通过SMTP发送,如果发件人被允许发送且消息被视为无法投递,SMTP服务器将其发回MAIL FROM地址。PowerMTA是领先的SMTP服务器之一,因为它允许发件人采用最新的身份验证规范来发送大量电子邮件,并遵守新的身份验证政策。
如何设置您的SMTP服务器
设置SMTP服务器时,有两个选项可供选择。您可以订阅托管的电子邮件中继服务。SparkPost是电子邮件交付和分析服务的领先提供商。或者,您可以设置自己的“本地”SMTP服务器,以获得更细粒度的控制。例如是PowerMTA。
要启动PowerMTA服务器,请联系support@port25.com获取安装包、许可证和安装说明。所有PowerMTA配置都在config文件中完成,该文件可以在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和源条款中进行配置。对于用户“foo”和密码“barbaz”<smtp-user foo> password barbaz authentication-method password #证书(TLS)或系统(linux用户)是其他选项 </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将接受电子邮件。
# 允许邮件转发到某些.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的专业团队也可在需要时提供技术支持。