我一直在关注本教程来自 DigitalOcean。我已遵循每一个细节,但似乎没有任何进展如预期。
假设我的 FQDN 为:mydomain.com。以下是我的详细信息:
SPF(DNS):
~$ dig mydomain.com txt
输出:
;; ANSWER SECTION:
mydomain.com. 600 IN TXT "v=spf1 -all"
测试:
~$ sudo echo "test email" | sendmail [email protected]
电子邮件接收输出:
==========================================================
Summary of Results
==========================================================
SPF check: fail
"iprev" check: pass
DKIM check: permerror
SpamAssassin check: ham
==========================================================
Details:
==========================================================
HELO hostname: mail.mydomain.com
Source IP: xxx.xxx.xxx.xxx
mail-from: [email protected]
----------------------------------------------------------
SPF check details:
----------------------------------------------------------
Result: fail
ID(s) verified: [email protected]
DNS record(s):
mydomain.com. 60 IN TXT "v=spf1 -all"
注意:使用后缀作为我的邮件服务器的 MTA
答案1
您的 SPF 记录v=spf1 -all
显示“互联网上实际上没有服务器可以代表此域名发送邮件”。全部邮件将失败。您的教程链接到单独的教程设置 SPF 记录。
答案2
我发现有两件事情是错误的。
首先,正如已经指出的那样,您的 SPF 记录是错误的。SPF 记录告诉世界您的 IP 地址是什么出站邮件服务器位于。
让我们考虑一个非常简单的情况,其中出站和入站邮件由同一台服务器处理。
v=spf1 mx -all
查看每个部分 v=spf1 - SPF 记录的版本号 - 当前仅定义了 spf1。mx - 使用在我的域 MX 记录中找到的服务器的 IP 地址 -all 在此上下文中,All 表示每个地址,并且它之前的 - 表示硬失败。
如果设置 SPF 记录很困难 - 您可以尝试众多 SPF 生成器之一,例如: https://mxtoolbox.com/SPFRecordGenerator.aspx
然而你还有另一个问题:
DKIM check: permerror
这表明您的邮件已由邮件服务器签名,但 DKIM 记录存在问题,可能是 DNS 中没有记录、DNS 中的 DKIM 记录不正确等原因
这可能看起来有点模糊,但我要做的第一件事是查看你发送的一封邮件上的 DKIM 签名。需要注意的两件事是 d= 和 s= 值
d= 是负责签署邮件的域。s= 称为 DKIM 选择器。
如果您在以下记录下查找 txt 记录:._domainkey。
例如,如果我从 Twitter 获取 DKIM 签名
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=twitter.com;
s=dkim-201406; t=1554045794;
bh=JrX7TaDioaOnxGz+nN85Zv7ueFvbyTa36Avx+BeDPEI=;
h=Date:From:To:Subject:MIME-Version:Content-Type:List-Unsubscribe:
Message-ID;
b=CD/rqEhFqCH0gkh9zOoWsCynbem2PChQMiR0apSSXQg4IPigtJXfDNsZQg0/Q1V6K
NimuwFUiIMRwyV7Q2Ck2HuWABt13yVTX2LZhHqCWPEzYYWXAii0fyPeNT6U/PbZfSQ
0/ZL1zE11E/iVKgqCQalVR+om6au/dE4V2fqnw3DMTXrU+Up5dS7N+Xkrm0/FQQ6N4
LIr06Nq9Neft8ScJvcxsf/9KL+NJY8uhpXZJ6grdE/as+73Qw9fv0MZZ7M33zhcIMs
WgIy0HtvxPJ0Bha+z2aLTZDGxudmxfhMFjuQtnXhs9xCePX4izVYKx909+oilJ6Dgt
ppww0Don384fQ==
我们看到 d=twitter.com s=dkim-201406
所以如果我们进行挖掘
C:\Users\timdu>dig txt dkim-201406._domainkey.twitter.com
; <<>> DiG 9.10.6-P1 <<>> txt dkim-201406._domainkey.twitter.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32288
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;dkim-201406._domainkey.twitter.com. IN TXT
;; ANSWER SECTION:
dkim-201406._domainkey.twitter.com. 300 IN TXT "v=DKIM1; p=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAwe34ubzrMzM9sT0XVkcc3UXd7W+EHCyHoqn70l2AxXox52lAZzH/UnKwAoO+5qsuP7T9QOifIJ9ddNH9lEQ95Y/GdHBsPLGdgSJIs95mXNxscD6MSyejpenMGL9TPQAcxfqY5xPViZ+1wA1qcr" "yjdZKRqf1f4fpMY+x3b8k7H5Qyf/Smz0sv4xFsx1r+THNIz0rzk2LO3GvE0f1ybp6P+5eAelYU4mGeZQqsKw/eB20I3jHWEyGrXuvzB67nt6ddI+N2eD5K38wg/aSytOsb5O+bUSEe7P0zx9ebRRVknCD6uuqG3gSmQmttlD5OrMWSXzrPIXe8eTBaaPd+e/jfxwIDAQAB"
我们发现 DKIM 记录包含用于验证电子邮件签名和正文哈希值的公钥。
因此您需要确保已经正确设置了等效记录。