是否所有 SMTP 通信都发生在 25 岁以上? [关闭]

Posted

技术标签:

【中文标题】是否所有 SMTP 通信都发生在 25 岁以上? [关闭]【英文标题】:Does all SMTP communication happen over 25? [closed] 【发布时间】:2010-10-14 11:11:14 【问题描述】:

所有 SMTP 通信是否在端口 25 上的域之间发送电子邮件?所有的通信都是不安全的吗? 明白使用类似 Gmail 的通信对 Gmail 服务器是安全的,但之后它必须使用不安全的端口 25,对吗?

SMTP 可以在任何端口上,但这不是我要说的。我不是在谈论连接到 Gmail、Yahoo 或 ISP SMTP 服务器。这些是 SMTP 中继,它们在希望为用户加密/未加密的任何端口上接受 SMTP 请求。

但是一旦 SMTP 中继服务器收到请求,邮件服务器会根据域名 MX 记录将其转发到电子邮件。它只在端口 25 上使用 SMTP 吗?邮件服务器只知道域名,然后转发。它无法知道他们正在监听哪个端口。

例如,我正在为我的域托管 Exchange server 2007。我连接到我的 Exchange 服务器以向 xyz@gmail.com 发送邮件。我的交换服务器必须通过行业标准协议进行通信,对吧?那就是端口 25(因为我的 Exchange 服务器没有端口 25 就无法工作)。

【问题讨论】:

【参考方案1】:

我想我会介入这里,因为我以编写电子邮件软件为生。

SMTP 流量有两种常见情况:1)服务器到服务器和 2)客户端到服务器。

1)服务器到服务器 所有公共服务器到服务器的电子邮件通信都通过端口 25 进行。如果您希望您的域接收来自其他域的电子邮件,那么您必须在端口 25 上接受 SMTP 流量。这是不安全的。它以明文形式发送。有多种方法可以对特定消息进行编码,但就流量而言,它是以 ascii 文本(显然是二进制格式)发送的。但是,它不是通过 SSL 发送的。

还有一些私人服务器到服务器的通信可以发生。这可能发生在大型组织中,他们可能拥有每个人都使用的内部公司服务器。当您发送电子邮件时,它会被发送到公司服务器,但随后该公司服务器会将电子邮件转发到面向公众的服务器。该面向公众的服务器将电子邮件发送到接收服务器。该接收服务器正在端口 25 接收电子邮件。

2) 客户端到服务器。 这有更多的选择。在服务器上,您可以配置不同的提交端口(打开您将接受电子邮件的端口)。这些可以是您希望它们成为的任何东西。您只需要记住告诉您的用户正确配置客户端软件。最常见的端口是 25 和 587。许多 ISP 会阻止传出端口 25(因为这是垃圾邮件机器人使用的端口——发送到公共邮件服务器)。但是,他们打开了 587,因此您可以将电子邮件发送到您的 SMTP 服务器。 SMTP over SSL 的通用端口是 465。

显然,这可能会变得更加复杂,并且我遗漏了很多细节,但简而言之就是这样。

【讨论】:

许多电子邮件提供商现在使用“机会性 TLS”来加密服务器到服务器的电子邮件,但是直到 所有 电子邮件提供商都这样做,或者有一些机制可以保证 100%将使用端到端加密,您应该假设可能涉及纯文本。 我不相信这实际上是准确的 -> “1)服务器到服务器所有公共服务器到服务器的电子邮件通信都通过端口 25 进行。”根据我所见,服务器 (MTA) 可以使用另一个 MTA 在 25 以外的端口上发送和接收。【参考方案2】:

没有。 SMTP 可以设置为使用 25 以外的端口,尽管这是使用的标准端口。

SMTP 是一个协议——它指定如何传输信息。另一方面,SMTP 服务器是执行传输的软件(独立于协议本身)。 SMTP 端口实际上是一个监听端口——客户端连接到这个端口是为了使用服务器——但它与协议本身是分开的。许多邮件服务器设置为使用其他端口。例如,Dreamhost 将其邮件服务器设置为同时使用端口 25 和 465。

【讨论】:

【参考方案3】:

你可以使用任何端口,真的。端口 25 是一个约定,仅此而已。我听说有些提供商会阻止 25 端口的传出流量(以控制垃圾邮件机器人),人们不得不切换到其他端口。

【讨论】:

关于端口被阻塞的好处。【参考方案4】:

Internet 上邮件服务器之间的几乎所有通信都在端口 25 上完成。这是众所周知的端口。

参见rfc4409,它保留 tcp/587 作为 SMTP 的备用提交端口。端口 25 和 587 保留用于 SMTP,并通过 IANA http://www.iana.org/assignments/port-numbers 提交。

可以通过端口 25 上的 TLS 保护 SMTP,但这似乎并未广泛用于 Internet 电子邮件,但我知道它用于某些网络上的某些内部通信。

许多 ISP 似乎也接受在 tcp/465 上提交,但此端口并未为此目的正式注册。

当然,任何邮件服务器都可以在任何端口上侦听 SMTP,但是发送服务器没有任何方法可以发现备用端口,并且必须假定它在端口 25 上。

我知道有些组织接受来自邮件客户端在其他不寻常端口(如 2525 等)上的提交。

【讨论】:

【参考方案5】:

大多数当前的电子邮件软件(客户端和服务器)都可以将 SSL/TLS 用于 SMTP。这通常意味着端口 25 是未加密的 SMTP,端口 465 是加密的。实际的端口号可以更改,只是按照惯例,端口 25 是 SMTP。

【讨论】:

我应该提到通过端口 465 的安全 SMTP 不是标准的。官方鼓励的安全 SMTP 方式是通过端口 25。 无论如何,如果真的需要 SMTP/465,它也应该提供 SMTP/25。【参考方案6】:

SMTP 默认使用端口 25,但可以使用任何端口。

Gmail SMTP 服务器需要端口 465 上的加密连接 (SSL)。

【讨论】:

以上是关于是否所有 SMTP 通信都发生在 25 岁以上? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

MySQL查询年龄在10岁以下或20岁以上的所有人员的姓名和年龄前5条的记录

我,25岁,零基础转行到软件测试,能拿到所谓的高薪吗?

30岁以上的程序员还死磕技术,别说拿高薪,可能连饭碗都会保不住

30岁以上的程序员还死磕技术,别说拿高薪,可能连饭碗都会保不住

为啥我应该说服开发人员使用端口 587 进行所有 SMTP 通信?

为啥我应该说服开发人员使用端口 587 进行所有 SMTP 通信?