我对万事万物的基本工作原理有基本的了解。但我希望获得更好的理解并更深入地探究。
我会如何理解所有这些内容。考虑一下我们正在向[email protected]
- 当我们发送信件时,DNS首先解析
world.com
域名。 - 它询问
.
DNS 服务器,然后将其重定向到.com.
DNS 区域服务器,然后重定向到NS
负责存储域信息的服务器。我们可以在域控制面板中world.com
更改(重定向到另一个)服务器。NS
NS
找到负责提供有关该域信息的适当服务器后,它会检索有关MX
记录的数据。- 邮件使用协议发送到
MX
记录中指定的 SMTP 服务器SMTP
- 因为我们不使用
POP3
协议,所以信件保存在SMTP
负责维护我们的域名(MX 记录)的服务器上。 - 因此
SMTP
服务器会在服务器上备份我们所有的邮件,我们可以使用IMAP
协议从任何地方访问我们的邮件。
我说得对吗?大多数时间MX
记录都指定了主机邮件服务器。
所以我的主要问题是
如果我将MX
我的域名记录更改为另一台服务器,那么我将丢失所有邮件历史记录?或者是否可以将邮件转移到新服务器?如果我再次切换回旧SMTP
服务器,我会在那里找到我的所有邮件吗?还是它们会被删除?
也许我完全错了,但我将感谢任何帮助。
答案1
MX(又名 SMTP 服务器
MTA
)可配置为某些邮件域的目的地或中继。如果配置为中继,则邮件将被发送到另一个可以作为目的地或中继的 MTA。等等。这里的 MX 只是一个入口点。邮件可以路由到不同的目的地、复制、终止等。这就是复杂的邮件基础设施内部的样子。邮件将逐步路由到配置为目的地的主机。否则,经过一些步骤后,邮件将被拒绝为无法送达。
如果主机配置为目标,则消息将存储在本地。该过程由
Local Delivery Agent
LDA 执行。所有 SMTP 服务器都具有一些 LDA 功能,因此它们至少可以以 格式存储消息mailbox
。Mailbox
只是一个纯文本文件,其中逐条附加了消息。或者,消息可以存储在maildir
或 甚至数据库中,如mysql
或postgres
。可以使用或
Mail User Agent
MUA 等实用程序从本地存储中获取消息。但如果您的消息存储在远程主机上,则需要使用或等服务通过网络获取消息。mutt
mail
POP3
IMAP
因此,邮件存储在主机上并不是因为 MX 上没有 POP3。这是因为 MX 已配置为域的目标,并且 LDA 已正确配置。否则,邮件将返回给发件人并显示通知:无法投递。
如果我将域名的 MX 记录更改为另一台服务器,那么我将丢失所有邮件历史记录?或者是否可以将邮件转移到新服务器?
常见的方法是将您的 MX 配置为中继,将所有邮件路由到配置为目标的服务器。您可以根据需要更改 MX,只要它们中继到相同的目标服务器即可。但您也可以将邮件存储物理移动到其他服务器,只要它只是纯文件即可。
流行的电子邮件软件,如、、、sendmail
等,功能强大,足以构建您想要的任何配置。但这需要很强的知识和技能,否则您很容易成为垃圾邮件发送者的受害者postfix
,他们会使用配置不当的服务器作为垃圾邮件发送者。exim
qmail
dovecot
答案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 指向的服务器。
希望这能让事情清楚一点。