【问题标题】:Which ports are used for which purpose specifically in email communication?哪些端口专门用于电子邮件通信中的哪个目的?
【发布时间】:2020-08-18 03:20:06
【问题描述】:

我了解在使用电子邮件服务器时有多个选项可供选择。 例如。 25 和 587 用于选择加入加密,465 用于强制加密。

docker-mailserver,一个流行的 docker 邮件服务器容器将端口 587465143993 专门描述为提交和检索端口。 实际的服务器到服务器的通信显然是使用双方的端口 25 建立的。 这是一个常见的实现吗?

到目前为止,我的理解是,实际通信(用于外发电子邮件)是通过端口 587 或 465 完成的。

在上述容器的exposed-port explanation 的鼓舞下,我现在发现整个检索、提交和传输过程的工作方式(极其简化)如下:

使用端口25,465587 将邮件从客户端发送到发送邮件服务器。

发送邮件服务器通过端口25 将电子邮件发送到收件人邮件服务器。

然后收件人在端口143993 上从他/她的邮件服务器(假设使用IMAP/s)接收电子邮件,并在他/她的邮件客户端中相应地显示。

这是正确的吗? 如果是这样,是否甚至可以从 ISP 阻止端口 25 的邮件服务器发送电子邮件,而 GMail、Yahoo 等普通邮件服务的用户可以接收?

【问题讨论】:

    标签: email smtp imap smtps


    【解决方案1】:

    这更像是一个网络管理问题,而不是一个编程问题,因此可能会被认为是题外话。话虽这么说:

    SMTP 协议用于两个不同但相似的目的:消息提交和消息传输。

    消息提交MSA(消息提交代理)完成,通常代表最终用户,但也可能代表脚本或进程。传统上,这些客户端是 Thunderbird、Apple Mail 或手机上的电子邮件客户端。在现代实践中,这通常通过身份验证(使用用户凭据)并在端口 465 或 587 上加密。

    • 端口 465、SMTPS(smtp-secure,类似于 https)在技术上已被弃用,但被广泛使用。它用于基于 TLS 的 SMTP,连接在连接后立即加密,直到终止。
    • 端口 587,submission 通常与 STARTTLS 一起使用,其中连接首先是未加密的,但此后不久使用特殊命令进行升级。

    这两个端口通常都接受来自具有凭据的用户发往任何目的地的邮件,并将为用户保存和转发这些邮件。例如,如果您在端口 465 或 587 上连接到 smtp.gmail.com,并以 user@gmail.com 身份验证,它将允许您为任何人提交电子邮件,只要它来自 user@gmail.com。

    消息传输由消息传输代理MTA 完成,通常代表站点或服务的所有用户。中继是在端口 25 上的站点之间完成的,并带有可选的 STARTTLS 加密。通常不进行身份验证,但通常在幕后使用复杂的信誉跟踪、防火墙和黑名单系统。通常,此端口只接受特定站点的邮件。例如,如果您在端口 25 上连接到 gmail.com 的 MX 服务器(例如,撰写本文时的 gmail-smtp-in.l.google.com),并且它认为您是值得信赖的 IP,它将接受来自任何人的邮件到任何 gmail 地址(需进一步扫描)。它将拒绝转发给异地的任何人。

    消息检索通常由IMAP 在端口 143(使用 STARTTLS)或 993(使用来自连接的 TLS)上完成。这是最终用户(通常)用来检索 MTA 代表他们持有的电子邮件的拉取服务。一些站点也使用 POP3(在 110 和 995 上),但它的功能要差得多。

    传统上,提交和传输都在端口 25 上完成,无需身份验证,但这在现代互联网上是行不通的。它分为传输和提交,以便更好地控制网络资源。您可能已经发现,许多 ISP 和云服务限制端口 25,因此最终用户在未经他们同意的情况下不能充当传输器,因此中继通过他们的服务器或其他承担责任的服务进行。

    这样,通过这种模式,gmail用户一般只能通过gmail的提交服务器提交,其他用户必须通过他们的服务服务器提交,垃圾邮件发送者不能随便在任何地方建立一个服务器来向gmail发送消息。如果他们这样做并且他们的 ISP 没有对其进行防火墙保护,他们的声誉很快就会被破坏并被列入许多黑名单。

    此外,很多这种情况甚至不再发生在传统协议上。如果您使用 Google 服务和客户端,您可能会使用通过 HTTPS 隧道传输的自定义协议或公共 GMAIL REST 协议。如果您使用的是 Microsoft,他们有不少于 3 种电子邮件协议:Exchange ActiveSync、Exchange Web Services 和 Microsoft Graph/Outlook MAIL Rest API,都使用 HTTPS。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 2013-01-31
      • 1970-01-01
      相关资源
      最近更新 更多