对于电子邮件服务器,我使用iredmail
。我的电子邮件服务器具有以下设置:
# /etc/hostname
mail
# /etc/hosts
127.0.1.1 mail.mydomain.com mail
127.0.0.1 localhost
所以 FQDN 是mail.mydomain.com
。
这里我找到了我使用过的示例,但是通过这些示例,我的服务器可以发送电子邮件,但无法接收:
Type Name Value TTL
A @ 195.201.40.1 1 hour # Web server
A mail 195.201.40.2 1 hour # Mail server
MX @ mail.mydomain.com (Priority: 10) 1 hour
TXT @ v=spf1 ip4:195.201.40.2 -all 1 hour
TXT @ v=DMARC1; p=reject; sp=reject;... 1 hour
TXT _adsp._domainkey dkim=all
TXT dkim._domainkey v=DKIM1; k=rsa; p=MIGfMA0GCSq...
然后我改变了:
MX @ mail.mydomain.com (Priority: 10) 1 hour
到
MX mail mail.mydomain.com (Priority: 10) 1 hour
并且邮件服务器开始接收电子邮件。
我有两大类问题:
1) 据我了解,外部电子邮件服务(例如 gmail)将邮件发送到mydomain.com
,而不是mail.mydomain.com
,因为我的电子邮件地址看起来像[email protected]
,而不像[email protected]
。为什么更改@
为 可以mail
解决接收电子邮件的问题?
我理解的记录MX @ mail.mydomain.com
是:“外部电子邮件服务,如果您发送电子邮件至[电子邮件保护](@=mydomain.com),然后向具有 FQDN mail.mydomain.com 的服务器发送电子邮件”,但我的逻辑似乎不起作用。为什么?
这里我们可以看到主机名可以@
与不同的 FQDN 一起使用。为什么在我的情况下它不起作用?
2) 对于 TXT 记录,我应该提供什么名称?@
或mail
,即域名或主机名? 如果mail
,是否意味着如果我有 10 个邮件服务器,我需要为所有邮件服务器创建自己的 TXT 记录?
答案1
我已将您的 DNS 记录转换为绑定格式。除非您要更改条目,否则您不需要为条目指定 TTL。
我已将 SPF 记录转换为最简单的形式。A
该记录的规则mail
用于 SPF-helo
检查。规则www
表示不应从www
子域发送电子邮件。
您的域名条目,后面跟着子域名。(请注意 MX 记录末尾的点。如果没有,则应使用mail
)。
@ IN A 195.201.40.1
IN MX mail.mydomain.com.
IN TXT "v=spf1 mx -all"
标准服务邮件和 www(即使条目中未提供 www,某些浏览器也会尝试 www)。
mail IN A 195.201.40.2
IN TXT "v=spf1 a -all"
www IN A 195.201.40.1
IN TXT "v=spf1 -all"
带报告的 DMARC 配置。除非报告表明您没有问题,否则我不会使用策略reject
。您可能希望将其none
作为您的策略开始。
_dmarc IN TXT "v=DMARC1; p=reject; sp=reject;..."
*._report.dmarc IN TXT "v=DMARC1"
DKIM 的配置。_adsp
似乎不再符合标准。请将其替换dkim
为您在签名时使用的密钥名称。
_adsp._domainkey IN TXT dkim=all
dkim._domainkey IN TXT v=DKIM1; k=rsa; p=MIGfMA0GCSq...
答案2
1) 邮件将发送到电子邮件地址主机名部分的 MX 记录中指定的主机名。例如,当邮件发送到[电子邮件保护],将发生以下情况:
其中一条配置的 MX 记录适用于 gmail.com:
# dig mx gmail.com +short | head -n 1
5 gmail-smtp-in.l.google.com.
电子邮件被发送到相应邮件服务器的IP地址:
# dig gmail-smtp-in.l.google.com +short
173.194.221.27
就您而言,由于初始配置看起来不错,因此不清楚问题是如何解决的。尝试使用公共 DNS 检查哪个 MX 服务器负责您的域名以及它指向哪个 IP 地址:
# dig mx mydomain.com @8.8.8.8 +short
mail.mydomain.com
# dig mail.mydomain.com @8.8.8.8 +short
2)SPF 记录需要提供域名(不带mail.
部分)。对于 DKIM 和 DMARC,域名(不带mail.
部分)也需要添加前缀,例如:
TXT _dmarc v=DMARC1; p=reject; sp=reject;...
TXT dkim._domainkey v=DKIM1; k=rsa; p=MIGfMA0GCSq...