SPF 和 DKIM 配置 Ubuntu 18.04 失败

SPF 和 DKIM 配置 Ubuntu 18.04 失败

我一直在关注本教程来自 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 记录包含用于验证电子邮件签名和正文哈希值的公钥。

因此您需要确保已经正确设置了等效记录。

相关内容