为什么我需要 SMTP 服务器?

为什么我需要 SMTP 服务器?

为什么我需要一个中间 SMTP 服务器来发送邮件?为什么我的客户端(Outlook、Thunderbird)不能直接将邮件发送到收件人的 SMTP 域?

例如,如果我必须[email protected]使用我的 Gmail 帐户发送一封电子邮件给,我会将其发送到服务器smtp.gmail.com;然后该服务器会将我的邮件发送到的 MX 服务器example.com

答案1

从技术上来说,可以从您的计算机直接向收件人的 SMTP 服务器发送电子邮件。

从历史角度来看,如果远程 SMTP 服务器宕机,您希望系统能够自动处理并不断重试,因此您需要 SMTP 服务器。同样,在过去,并非所有邮件服务器都始终处于连接状态,因为长距离链路成本高昂,因此邮件会排队并在建立链路时发送。

说到互联网便宜的地方,如果服务器不可用,拥有重试发送电子邮件的机制仍然很有用,并且将此功能写入 MUA(邮件用户代理/最终用户邮件程序)并不理想。这些功能适合 MTA(邮件服务器/SMTP 服务器)。

但情况变得更糟——垃圾邮件发送者。大多数电子邮件(超过 80%)都是垃圾邮件。因此,邮件提供商会尽其所能减少此问题,并且大量技术对电子邮件的传递方式做出了假设,以下是重要的考虑因素:

  1. 灰名单:如果发件人和收件人之前没有通信过,某些提供商会自动断开邮件连接,并希望他们再次尝试 — — 因为垃圾邮件发送者通常不会这样做,而 SMTP 服务器总是会这样做。这可将垃圾邮件数量减少约 80%。不过,这样做很讨厌。

  2. 名声:通过信誉良好、知名的 SMTP 服务器发送电子邮件的人比通过不可靠的服务器发送电子邮件的人更有可能是合法的。为了了解信誉,提供商会做很多事情:

    1. 阻止动态/客户端地址(虽然不是 100%,但是互联网的大部分区域已经绘制完毕)。

    2. 查看反向 DNS 是否与正向 DNS 匹配:虽然这并不难,但却体现了一定程度的责任感和对最佳实践的了解——而这是很多客户端地址块所不具备的。

    3. 名声:在与其他 SMTP 服务器通信时,许多提供商会跟踪垃圾邮件的数量和发送的电子邮件量,并可以通过限制连接和关注这些参数来减少垃圾邮件的数量。(有很多方法可以做到这一点,虽然不是所有方法都很明显,但都需要知道发件人)。

    4. SPF 和 DKIM:这些机制将 DNS 资源与域名绑定在一起,使伪造邮件变得更加困难,并且会很困难(但如果邮件程序(MUA)负责发送邮件,则部署起来也并非不可能。(添加此内容是为了使这个答案更加完整,因为它已经被接受。它的功劳应该归功于下面的海报,因为它是我忘记的,但无论如何,它非常有效)

可能还有其他小问题,但这些是主要问题。

答案2

为什么我需要一个中间 SMTP 服务器来发送邮件?为什么我的客户端(Outlook、Thunderbird)不能直接将邮件发送到收件人的 SMTP 域?

在 1991 年——以及 20 世纪 90 年代初期的大部分时间甚至更早——你也许能够做到你所描述的那样。但 2015 年的现实是,虽然从技术上讲,人们可以通过任何安装了邮件服务的机器向任何人发送电子邮件,但垃圾邮件的世界已经让这种方法变得毫无用处。

当您使用“真正的” SMTP 服务时,会设置 PTR 记录、SPF 记录甚至 DomainKeys 等内容,它们都只有一个目的:保证发送邮件的 SMTP 是合法的。如果不是?将邮件过滤到垃圾邮件文件夹或删除的“深渊”。以下是每个项目的细分:

  • PTR(指针记录/反向 DNS 记录):服务器级别验证。这里解释,PTR 记录用于将网络接口 (IP) 映射到主机名。这意味着,如果您123.456.789.0的 SMTP 服务器上有发送电子邮件的地址smtp.example.com,那么适合该地址的 PTR 记录将是smtp.example.com。这似乎太简单了,但它确实有效,因为唯一真正可以设置 PTR 记录的人是 I​​P 地址的所有者,并且只能在他们的硬件上设置。因此,它可以作为谁拥有/运行/管理该 IP 地址的验证点。

  • SPF(发件人策略框架):主机名 DNS 条目级别验证。SPF 记录—正如这里解释的那样— 基本上是域名持有者设置的 DNS 记录,提供允许为该域名发送电子邮件的服务器的 IP 地址和主机名列表。这又是另一个验证步骤,可确保只有 SMTP 服务器的真正域名所有者才能发送邮件。假设 IP 地址为 的服务器123.456.789.9正在为 发送电子邮件example.com。我们已经知道smtp.example.com使用123.456.789.0,但 的 SPF 记录条目example.com可以表明,“嘿!123.456.789.9是一台好服务器!他是合法的!尊重他的电子邮件!”

  • DKIM(域名密钥识别邮件):电子邮件消息级别验证。这里解释以及维基百科, “DKIM 是一种电子邮件验证系统,旨在通过提供一种机制来检测电子邮件欺骗,该机制允许接收邮件交换器检查来自域的传入邮件是否由该域管理员授权,以及电子邮件(包括附件)在传输过程中是否被修改。” 通过使用加密哈希,DKIM 可验证邮件本身在传输过程中是否未被过滤或篡改。 这也是“您是合法邮件还是垃圾邮件?”链中的另一个验证点。

因此,最终,一个面向公众的 SMTP 服务器至少会设置其中两个项目(PTR 和 SPF),以验证 SMTP 服务器和相关电子邮件是否合法。并非所有人都使用 DKIM,但随着垃圾邮件发送者在发送垃圾邮件方面变得更加执着,DKIM 成为如今越来越流行的另一层验证。

答案3

大多数住宅 ISP 都会封锁 TCP 端口 25 (SMTP),以防止您加入垃圾邮件网络。如果您的 PC 被感染,您的 PC 可能会按照其他人的命令开始发送垃圾邮件。

答案4

为什么我需要一个中间 SMTP 服务器来发送邮件?为什么我的客户端(Outlook、Thunderbird)不能直接将邮件发送到收件人的 SMTP 域?

您可以创建一个可以执行此操作的电子邮件程序,并且我相信其他人也曾经这样做过(或尝试过)它。

本质上,您要编写一个既是 MUA(邮件用户代理)又是 MTA(邮件传输代理)的工具。

传统上将其分为不同的工具,而 MTA 位于“服务器端”,原因是通过开放互联网发送邮件的 MTA 编写和配置起来要复杂得多,而且它受益于驻留在可靠的“始终在线”服务器上。

MTA 必须:

  • 查找并连接到不信任或可能行为不当的服务器,并以合理的方式处理错误情况以免丢失邮件。

  • 处理停机的服务器,并将邮件路由到备用服务器或将邮件排队以便稍后重试。这在“始终连接”互联网的服务器进程上运行效果最佳。这也意味着邮件传输代理需要自己的存储区域来存储排队的邮件。

  • 处理一系列不同的服务器功能,根据接收服务器的功能调整行为。

  • 向用户报告错误情况或邮件无法送达的情况,以免邮件丢失。

  • 拥有出色的安全实践并具有很强的安全意识。

  • 理想情况下,驻留在可靠、始终连接的服务器上,该服务器具有稳定的 IP 地址和反向 DNS 条目,即适合面向公众的服务器的互联网连接。这有助于其他系统不检测作为垃圾邮件发送的邮件。

考虑到这些要求,将 SMTP 服务器安置在某个面向公众的始终在线的服务器上,并尝试使用适合完成该特定工作的工具是有意义的。

相关内容