DNS、MX 和 SMTP。邮件存储

DNS、MX 和 SMTP。邮件存储

我对万事万物的基本工作原理有基本的了解。但我希望获得更好的理解并更深入地探究。

我会如何理解所有这些内容。考虑一下我们正在向[email protected]

  1. 当我们发送信件时,DNS首先解析world.com域名。
  2. 它询问.DNS 服务器,然后将其重定向到.com.DNS 区域服务器,然后重定向到NS负责存储域信息的服务器。我们可以在域控制面板中world.com更改(重定向到另一个)服务器。NS
  3. NS找到负责提供有关该域信息的适当服务器后,它会检索有关MX记录的数据。
  4. 邮件使用协议发送到MX记录中指定的 SMTP 服务器SMTP
  5. 因为我们不使用POP3协议,所以信件保存在SMTP负责维护我们的域名(MX 记录)的服务器上。
  6. 因此SMTP服务器会在服务器上备份我们所有的邮件,我们可以使用IMAP协议从任何地方访问我们的邮件。

我说得对吗?大多数时间MX记录都指定了主机邮件服务器。

所以我的主要问题是

如果我将MX我的域名记录更改为另一台服务器,那么我将丢失所有邮件历史记录?或者是否可以将邮件转移到新服务器?如果我再次切换回旧SMTP服务器,我会在那里找到我的所有邮件吗?还是它们会被删除?

也许我完全错了,但我将感谢任何帮助。

答案1

  1. MX(又名 SMTP 服务器MTA)可配置为某些邮件域的目的地或中继。

  2. 如果配置为中继,则邮件将被发送到另一个可以作为目的地或中继的 MTA。等等。这里的 MX 只是一个入口点。邮件可以路由到不同的目的地、复制、终止等。这就是复杂的邮件基础设施内部的样子。邮件将逐步路由到配置为目的地的主机。否则,经过一些步骤后,邮件将被拒绝为无法送达。

  3. 如果主机配置为目标,则消息将存储在本地。该过程由Local Delivery AgentLDA 执行。所有 SMTP 服务器都具有一些 LDA 功能,因此它们至少可以以 格式存储消息mailboxMailbox只是一个纯文本文件,其中逐条附加了消息。或者,消息可以存储在maildir或 甚至数据库中,如mysqlpostgres

  4. 可以使用或Mail User AgentMUA 等实用程序从本地存储中获取消息。但如果您的消息存储在远程主机上,则需要使用或等服务通过网络获取消息。muttmailPOP3IMAP

因此,邮件存储在主机上并不是因为 MX 上没有 POP3。这是因为 MX 已配置为域的目标,并且 LDA 已正确配置。否则,邮件将返回给发件人并显示通知:无法投递。

如果我将域名的 MX 记录更改为另一台服务器,那么我将丢失所有邮件历史记录?或者是否可以将邮件转移到新服务器?

常见的方法是将您的 MX 配置为中继,将所有邮件路由到配置为目标的服务器。您可以根据需要更改 MX,只要它们中继到相同的目标服务器即可。但您也可以将邮件存储物理移动到其他服务器,只要它只是纯文件即可。

流行的电子邮件软件,如、、、sendmail等,功能强大,足以构建您想要的任何配置。但这需要很强的知识和技能,否则您很容易成为垃圾邮件发送者的受害者postfix,他们会使用配置不当的服务器作为垃圾邮件发送者。eximqmaildovecot

答案2

假设旧邮件服务器为mail1.world.com,新服务器为mail2.world.com。指向旧服务器的 MX 记录为

world.com in mx 0 mail1.world.com.

和指向新的 mx 记录:

world.com in mx 0 mail2.world.com.

当您更改 mx 记录时,邮件将被投递到响应新 mx 记录的服务器 - mail2.world.com。新服务器对旧服务器上的活动没有任何概念,它没有内容(帐户、消息、日志、设置),除非您先配置所有内容并从旧服务器复制内容。至于将设置更改为旧服务器。邮件服务器将以相同的方式运行,并且它现在正在运行,并且具有它以前的所有内容,除非您有清除旧消息的脚本。无论 mx 记录指向何处,您都应该能够访问这两个服务器,唯一的区别是您的域的邮件将被投递到 mx 指向的服务器。

希望这能让事情清楚一点。

相关内容