多个 DKIM(包括 MX)的 SPF 记录
SPF Record for Multiple DKIMs (including MX)
我对邮件服务器管理知之甚少。我正在拼凑用户指南。我已经购买了一个域名,[付费] Protonmail 允许使用自定义域。我已经使用了一段时间,但现在我无法将它扩展到另一个 DKIM 记录。
目标:
- 使用 Protonmail 从自定义域发送和接收电子邮件
- 仅从我 运行
的 Postfix 服务器发送电子邮件
为了通过我的域名使用 Protonmail send/receive 发送电子邮件,我设置了以下 TXT 记录:
Host=@ protonmail-verification=e954fa...
Host=protonmail._domainkey v=DKIM1; k=rsa; p=MGM0....
Host=@ v=spf1 include:_spf.protonmail.ch mx ~all
这已经工作了几个月。现在我想实现 objective 2(以上)。我使用 opendkim
:
创建了一个 DKIM 密钥
sudo opendkim-genkey -b 8192 -h rsa-sha256 -r -v --subdomains -s postfix -d $(hostname --domain) && \
sudo sed -i 's/h=rsa-sha256/h=sha256/' postfix.txt
然后我添加了来自 postfix.txt
的内容,将长 p
字符串连接到我的 DNS 提供商和另一个 TXT 记录:
Host=[MY DOMAIN NAME]._domainkey v=DKIM1; h=sha256; k=rsa; s=email; p=MEEij...
我 认为 我正在努力更新 spf
记录。它应该怎么看?我觉得应该是这样的:
v=spf1 include:[MY DOMAIN NAME] include:_spf.protonmail.ch mx ~all
但是,当测试从我的 Postfix 服务器发送电子邮件时,一些客户端服务器拒绝了电子邮件,在我的 Postfix 服务器中显示以下日志:
E543D5E0003: host mail.tutanota.de[81.3.6.165] said: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [MY POSTFIX SERVERS IP] (in reply to RCPT TO command)
我很确定我的 spf
记录有问题。论据是否正确?顺序重要吗?如何使用 Protonmail 记录发送和接收,但将我的 Postfix 服务器限制为仅发送? (DNS 甚至关心这个方向性吗?)
好吧,不管怎样,让我们开始调试吧……(坦率地说,这不是一个编程问题,所以超级用户会是更好的选择,但我喜欢你想托管自己的邮件:))
您的 SPF 记录应如下所示。不需要您自己的域,因为 SPF 记录保存在它的 DNS 记录中。否则,那会(但不会)建立一个循环。
v=spf1 include:_spf.protonmail.ch mx ~all
您看到的错误本身与您的 public IP 的 PTR 查找有关,但也可能是由额外的包含引起的,这里是误报。
无论如何要确保它是正确的,请手动查找:
在 linux
dig -x <public ip of mail domain>
将(应该)打印多行,您感兴趣的行:
;; ANSWER SECTION:
XXX.XXX.XXX.XXX.in-addr.arpa. 43200 IN PTR my-domain.com.
在 windows:
nslookup <public ip of mail domain>
打印:
Server: some.dns.server.com
Address: XXX.XXX.XXX.XXX
Name: my-domain.com
Address: <public ip of mail domain>
这里的关键是 "my-domain.com." 部分 - 如果那不是您的邮件域,那么您的托管服务提供商很可能会为您提供一种在某处更改 PTR 的方法。
试试这个,然后我们会在必要时进一步研究它,当然如果不能查找所有信息就很难调试 ;)
我对邮件服务器管理知之甚少。我正在拼凑用户指南。我已经购买了一个域名,[付费] Protonmail 允许使用自定义域。我已经使用了一段时间,但现在我无法将它扩展到另一个 DKIM 记录。
目标:
- 使用 Protonmail 从自定义域发送和接收电子邮件
- 仅从我 运行 的 Postfix 服务器发送电子邮件
为了通过我的域名使用 Protonmail send/receive 发送电子邮件,我设置了以下 TXT 记录:
Host=@ protonmail-verification=e954fa...
Host=protonmail._domainkey v=DKIM1; k=rsa; p=MGM0....
Host=@ v=spf1 include:_spf.protonmail.ch mx ~all
这已经工作了几个月。现在我想实现 objective 2(以上)。我使用 opendkim
:
sudo opendkim-genkey -b 8192 -h rsa-sha256 -r -v --subdomains -s postfix -d $(hostname --domain) && \
sudo sed -i 's/h=rsa-sha256/h=sha256/' postfix.txt
然后我添加了来自 postfix.txt
的内容,将长 p
字符串连接到我的 DNS 提供商和另一个 TXT 记录:
Host=[MY DOMAIN NAME]._domainkey v=DKIM1; h=sha256; k=rsa; s=email; p=MEEij...
我 认为 我正在努力更新 spf
记录。它应该怎么看?我觉得应该是这样的:
v=spf1 include:[MY DOMAIN NAME] include:_spf.protonmail.ch mx ~all
但是,当测试从我的 Postfix 服务器发送电子邮件时,一些客户端服务器拒绝了电子邮件,在我的 Postfix 服务器中显示以下日志:
E543D5E0003: host mail.tutanota.de[81.3.6.165] said: 450 4.7.1 Client host rejected: cannot find your reverse hostname, [MY POSTFIX SERVERS IP] (in reply to RCPT TO command)
我很确定我的 spf
记录有问题。论据是否正确?顺序重要吗?如何使用 Protonmail 记录发送和接收,但将我的 Postfix 服务器限制为仅发送? (DNS 甚至关心这个方向性吗?)
好吧,不管怎样,让我们开始调试吧……(坦率地说,这不是一个编程问题,所以超级用户会是更好的选择,但我喜欢你想托管自己的邮件:))
您的 SPF 记录应如下所示。不需要您自己的域,因为 SPF 记录保存在它的 DNS 记录中。否则,那会(但不会)建立一个循环。
v=spf1 include:_spf.protonmail.ch mx ~all
您看到的错误本身与您的 public IP 的 PTR 查找有关,但也可能是由额外的包含引起的,这里是误报。
无论如何要确保它是正确的,请手动查找:
在 linux
dig -x <public ip of mail domain>
将(应该)打印多行,您感兴趣的行:
;; ANSWER SECTION:
XXX.XXX.XXX.XXX.in-addr.arpa. 43200 IN PTR my-domain.com.
在 windows:
nslookup <public ip of mail domain>
打印:
Server: some.dns.server.com
Address: XXX.XXX.XXX.XXX
Name: my-domain.com
Address: <public ip of mail domain>
这里的关键是 "my-domain.com." 部分 - 如果那不是您的邮件域,那么您的托管服务提供商很可能会为您提供一种在某处更改 PTR 的方法。
试试这个,然后我们会在必要时进一步研究它,当然如果不能查找所有信息就很难调试 ;)