这些端口465和587都用于发送邮件(提交邮件),但它们之间的真正区别是什么?
SMTP协议:smtps(端口465)vs . msa(端口587)
端口465和587用于电子邮件客户端到电子邮件服务器的通信-使用SMTP协议发送电子邮件。
端口465用于smtp SSL加密在任何SMTP级别通信之前自动启动。
端口587用于msa 它几乎像标准的SMTP端口。 MSA应该在身份验证后接受电子邮件(例如在SMTP AUTH之后)。当网络管理员的DUL范围可以阻止发送到SMTP端口(端口25)的连接时,它有助于停止发送垃圾邮件。 SSL加密可以通过STARTTLS命令在SMTP级别启动,如果服务器支持它,并且您的ISP不过滤服务器的EHLO回复(2014年报道)。
端口25用于MTA到MTA通信(邮件服务器到邮件服务器)。它可以用于客户端到服务器的通信,但目前不是最推荐的。标准SMTP端口接受来自其他邮件服务器的电子邮件到其“内部”邮箱,无需身份验证。
587对465
这些端口分配由Internet Assigned Numbers Authority (IANA)指定:
端口587:[SMTP]消息提交(SMTP- msa),接受来自电子邮件客户端(mua)的电子邮件提交的服务。RFC 6409中描述。 端口465:SSM的URL集合目录(与电子邮件完全无关)
Historically, port 465 was initially planned for the SMTPS encryption and authentication “wrapper” over SMTP, but it was quickly deprecated (within months, and over 15 years ago) in favor of STARTTLS over SMTP (RFC 3207). Despite that fact, there are probably many servers that support the deprecated protocol wrapper, primarily to support older clients that implemented SMTPS. Unless you need to support such older clients, SMTPS and its use on port 465 should remain nothing more than an historical footnote.
SSL这个令人迷惑和不精确的术语经常被用来表示SMTPS包装器,而TLS则用来表示STARTTLS协议扩展。
为完整起见:端口25
端口25:简单邮件传输(SMTP-MTA),接受来自其他服务器(mta或msa)的电子邮件提交的服务。RFC 5321中描述。
来源:
IANA服务名称和传输协议端口号注册表 “撤销smtps TCP端口”-来自互联网邮件联盟主管Paul Hoffman的电子邮件,1998年11月12日。 RFC 6409 -邮件的消息提交 简单邮件传输协议 rfc3207 -传输层安全的SMTP服务扩展 RFC 4607 - IP源特定组播
我一直使用端口465。
The answer by danorton is outdated. As he and Wikipedia say, port 465 was initially planned for the SMTPS encryption and quickly deprecated 15 years ago. But a lot of ISPs are still using port 465, especially to be in compliance with the current recommendations of RFC 8314, which encourages the use of implicit TLS instead of the use of the STARTTLS command with port 587. (See section 3.3). Using port 465 is the only way to begin an implicitly secure session with an SMTP server that is acting as a mail submission agent (MSA).
基本上,RFC 8314建议放弃明文电子邮件交换,并且所有三种常见的IETF邮件协议仅在隐式TLS会话中使用,以尽可能保持一致性。因此,建议SMTPS、IMAP4S和POP3S的安全端口分别为465、993和995。
虽然RFC 8314当然允许使用端口587和STARTTLS命令继续使用显式TLS,但这样做会使邮件用户代理(MUA,邮件客户端)遭受降级攻击,在这种攻击中,中间人会拦截升级到TLS安全的STARTTLS请求,但会拒绝它,从而迫使会话保持明文形式。
465端口: IANA已经重新分配了一个新的服务到这个端口,它不应该再用于SMTP通信。
但是,由于IANA曾经承认它是有效的,因此可能有一些遗留系统只能使用这种连接方法。通常,只有在应用程序需要时才使用该端口。快速搜索谷歌,您会发现许多消费者ISP文章都建议将端口465作为推荐设置。希望这很快就能结束!它不符合RFC。
587端口: 这是默认的邮件提交端口。当邮件客户端或服务器提交要由合适的邮件服务器路由的电子邮件时,它应该始终使用此端口。
每个人都应该考虑将此端口作为默认端口,除非上游网络或主机提供商明确阻止了您。这个端口,加上TLS加密,将确保电子邮件安全地提交,并遵循IETF制定的指导方针。
端口:25 此端口继续主要用于SMTP中继。SMTP中继是将电子邮件从电子邮件服务器传输到电子邮件服务器。
在大多数情况下,现代SMTP客户端(Outlook, Mail, Thunderbird等)不应该使用这个端口。传统上,住宅isp和云托管提供商会屏蔽它,以遏制从受感染的计算机或服务器转发的垃圾邮件数量。除非您专门管理邮件服务器,否则计算机或服务器上不应该有流量通过此端口。
我不想指名道姓,但有人似乎完全错了。引用的标准机构声明如下: [IESG] [IETF_Chair] 2017-12-12 [RFC8314]
如果您有这种倾向,您可能希望阅读参考的RFC。
这似乎清楚地表明,端口465是强制加密通信并确保其到位的最佳方法。端口587不提供这样的保证。
The correct answer to this question has been changed by the publication of RFC 8314. As a result, port 465 and 587 are both valid ports for a mail submission agent (MSA). Port 465 requires negotiation of TLS/SSL at connection setup and port 587 uses STARTTLS if one chooses to negotiate TLS. The IANA registry was updated to allow legitimate use of port 465 for this purpose. For mail relay, only port 25 is used so STARTTLS is the only way to do TLS with mail relay. It's helpful to think of mail relay and mail submission as two very different services (with many behavior differences like requiring auth, different timeouts, different message modification rules, etc.) that happen to use a similar wire protocol.
推荐文章
- Docker -绑定0.0.0.0:4000失败:端口已经分配
- Node.js中的process.env.PORT是什么?
- 如何使用Python发送电子邮件?
- 如何从iPhone应用程序发送邮件
- 架构i386的未定义符号:_OBJC_CLASS_$_SKPSMTPMessage",引用自:错误
- 如何在Jenkins中设置发件人地址?
- 什么是最好的Java电子邮件地址验证方法?
- PHPMailer字符编码问题
- Require (vendor/autoload.php):无法打开流
- 用Django创建电子邮件模板
- 在邮件正文中插入换行符
- 使用c#通过Gmail SMTP服务器发送邮件
- 如何打开“谷歌计算引擎”中的特定端口(如9090)
- 电子邮件主题的长度限制是什么?
- 测试HTML电子邮件渲染