在过去的几个小时里,我一直在为在我的 Postfix/CentOS 5.3 服务器上设置 DKIM 而苦苦挣扎。
它最终发送并签署了电子邮件,但显然 Google 仍然不喜欢它。我得到的错误是:
dkim=neutral (bad version) header.i=@mydomain.com.au
来自谷歌的“显示原始”界面。
这是我的 DKIM 签名标头的样子:
v=1; a=rsa-sha1; c=简单/简单;d=mydomain.com.au; s=默认;t=1267326852;bh=0wHpkjkf7ZEiP2VZXAse+46PC1c=;h=日期:发件人:消息 ID:收件人:主题;b=IFBaqfXmFjEojWXI/WQk4OzqglNjBWYk3jlFC8sHLLRAcADj6ScX3bzd+No7zos6i KppG9ifwYmvrudgEF+n1VviBnel7vcVT6dg5cxOTu7y31kUApR50lgxEglxEgfpR50LgxEgxEglxEgxEgfpR50LgxmfpR50lxmfpR5lxmfxmfpgslxfxmfxmfg
非常感谢有关如何解决此问题的任何建议!
顺便说一句,如果有人感兴趣(基于本指南),这正是我在 CentOS 5.3 中为 postfix 安装 dkim-milter 的方法:
mkdir dkim-milter
cd dkim-milter
wget http://www.topdog-software.com/oss/dkim-milter/dkim-milter-2.8.3-1.x86_64.rpm
======S======
Newest version: http://www.topdog-software.com/oss/dkim-milter/
======E======
rpm -Uvh dkim-milter-2.8.3-1.x86_64.rpm
/usr/bin/dkim-genkey -r -d mydomain.com.au
======S======
add contents of default.txt to DNS as TXT
_ssp._domainkey TXT dkim=unknown
_adsp._domainkey TXT dkim=unknown
default._domainkey TXT v=DKIM1; g=*; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GWETBNiQKBgQC5KT1eN2lqCRQGDX+20I4liM2mktrtjWkV6mW9WX7q46cZAYgNrus53vgfl2z1Y/95mBv6Bx9WOS56OAVBQw62+ksXPT5cRUAUN9GkENPdOoPdpvrU1KdAMW5c3zmGOvEOa4jAlB4/wYTV5RkLq/1XLxXfTKNy58v+CKETLQS/eQIDAQAB
======E======
mv default.private default
mkdir /etc/mail/dkim/keys/mydomain.com.au
mv …Run Code Online (Sandbox Code Playgroud) 当 postfix 尝试连接到 opendkim 的 unix 套接字时,我收到了拒绝错误,实际错误:
Sep 24 15:41:43 service-a-4 postfix/cleanup[17414]: warning: connect to Milter service unix:var/run/opendkim/opendkim.sock: Permission denied
Run Code Online (Sandbox Code Playgroud)
根据postfix 文档,默认情况下 postfix 以“chroot 模式”运行,因此 postfix 被锁定到 /var/spool/postfix/,并且根据postfix 文档,如果在“chroot 模式”下运行,则所有 milter(套接字)引用是相对的(相对于 /var/spool/postfix)。
所以我的配置看起来像:
# /etc/opendkim.conf
Socket local:/var/spool/postfix/var/run/opendkim/opendkim.sock
# /etc/postfix/main.cf
smtpd_milters = unix:/var/run/opendkim/opendkim.sock
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试发送测试电子邮件时,出现权限被拒绝错误,因此我尝试了一些权限测试:
# Correctly lists the socket file
sudo su -s /bin/bash postfix -c "ls /var/spool/postfix/var/run/opendkim/opendkim.sock"
Run Code Online (Sandbox Code Playgroud)
但是当我尝试作为后缀连接时,没有任何反应:
# Does not work
sudo su -s /bin/bash postfix -c "nc -U -D /var/spool/postfix/var/run/opendkim/opendkim.sock"
# Does work (as …Run Code Online (Sandbox Code Playgroud) 有没有办法强制 DMARC 拒绝/拒绝未通过 DKIM 和 SPF 的邮件?
我们一直在缩小失败的数量,但我们的汇总 (rua) 报告中有一些域仅通过了 DKIM,我们宁愿它们通过我们的 DMARC,因为我们无法识别它们。
我们确实识别的域是完全对齐的。
我们的最终目标是,除非完全对齐(DKIM 和 SPF),否则消息将被拒绝
DKIM 记录由其选择器标识,该选择器可能是default,dkim或其他东西(并且可能有多个)。
当确保电子邮件的内容有效时,可以使用电子邮件中提到的 DKIM 选择器进行查找{selectorname}._domainkey.{hostname}(例如:google._domainkey.protodave.com)。
然而,当只是想确保某个域至少设置了一个 DKIM(以确保该域的管理员已尽职尽责)时,我们还没有选择器。
如果没有这个选择器,我们如何查询 DNS?有可能吗?
我有两个后缀,一个用于接收邮件,另一个用于发送邮件,但我在外发邮件上签署 dkim 时遇到问题。我按照这个教程进行了操作。
\n日志也不能帮助我指出主要问题。OpenDKIM 运行良好:
\n\xe2\x97\x8f opendkim.service - OpenDKIM DomainKeys Identified Mail (DKIM) Milter\n Loaded: loaded (/lib/systemd/system/opendkim.service; enabled; vendor preset: enabled)\n Active: active (running) since Fri 2021-06-18 17:39:40 UTC; 4s ago\n Docs: man:opendkim(8)\n man:opendkim.conf(5)\n man:opendkim-genkey(8)\n man:opendkim-genzone(8)\n man:opendkim-testadsp(8)\n man:opendkim-testkey\n http://www.opendkim.org/docs.html\n Process: 246310 ExecStart=/usr/sbin/opendkim -x /etc/opendkim.conf (code=exited, status=0/SUCCESS)\n Main PID: 246321 (opendkim)\n Tasks: 7 (limit: 4681)\n Memory: 2.8M\n CGroup: /system.slice/opendkim.service\n \xe2\x94\x9c\xe2\x94\x80246321 /usr/sbin/opendkim -x /etc/opendkim.conf\n \xe2\x94\x94\xe2\x94\x80246322 /usr/sbin/opendkim -x /etc/opendkim.conf\n\nJun 18 17:39:40 testmailcdo systemd[1]: Starting OpenDKIM DomainKeys Identified Mail (DKIM) …Run Code Online (Sandbox Code Playgroud) 当我在 Microsoft Teams 中编写聊天消息时,当接收者在 Teams 中处于脱机状态时,她会在其 Office 365 帐户 (receiver@htlvb.at) 上收到电子邮件通知。收件人进行设置,以便将她的所有邮件转发到她的个人 Gmail 帐户 (receiver@gmail.com)。对于发送到receiver@htlvb.at 的普通邮件,这按预期工作。但所有 Teams 通知都被标记为垃圾邮件。Google 表示 DMARC 失败(见下文)。
我们有一个自定义 DNS 服务器,其中包含以下 TXT 记录:
Google 显示收到的邮件的以下详细信息:
以及以下消息来源:
Delivered-To: receiver@gmail.com
Received: by 2002:a05:6102:22c6:0:0:0:0 with SMTP id a6csp126141vsh;
Tue, 28 Sep 2021 20:57:32 -0700 (PDT)
X-Google-Smtp-Source: ABdhPJzoIoMngWwglBmEptt30Zo9LbSYdi+h60ylB7JYY70zFSXHQNhbDjrM0JhFd+XgdPAeZKJj
X-Received: by 2002:a92:ca4e:: with SMTP id q14mr3941013ilo.233.1632887852170;
Tue, 28 Sep 2021 20:57:32 -0700 (PDT)
ARC-Seal: i=4; a=rsa-sha256; t=1632887852; cv=pass;
d=google.com; s=arc-20160816;
b=uZnSPh2our1xDKqBgznYVmLU4MHkWy+9WfIBcYxGbuAOiHypyYi2pU3yByqTWDxC3m
XD8lQzitQmtWzWPozdJmWv6DFJW5eSVogISaSrA6i8qY2wBhk8ZlukHsKjWLlRTsWD/Q
TJa+99FG/eIio0EDYtVW+2d+WlVN9qMei8Ap/aaA1snA27wHv91lUsAGLNI2kUUvwsMA
omJAMvTBBCgGtEa6V8s4Z7nWhkGGpwwRnxaCefPwqBCZ8QMVy8zYmk/JGTVcSSTSQdQk
bqWRkoJlrscnt3JLAA4WUpYdNcpORAi8WuuoXs+w6uxzNxfg2EpcvNWIOwBFvOm/WVVq
FoUg==
ARC-Message-Signature: i=4; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816;
h=message-id:subject:date:to:from:mime-version …Run Code Online (Sandbox Code Playgroud) 我最近收到了来自 Google 的 DMARC 报告,提醒我来自 Amazon SES IP 地址的邮件出现了一些 SPF 故障。示例记录如下(我已将我们的域名替换为 example.com。):
<record>
<row>
<source_ip>54.240.27.187</source_ip>
<count>1</count>
<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
</policy_evaluated>
</row>
<identifiers>
<header_from>example.com</header_from>
</identifiers>
<auth_results>
<dkim>
<domain>example.com</domain>
<result>pass</result>
</dkim>
<dkim>
<domain>amazonses.com</domain>
<result>pass</result>
</dkim>
<spf>
<domain>mail.example.com</domain>
<result>pass</result>
</spf>
</auth_results>
</record>
Run Code Online (Sandbox Code Playgroud)
SPF 是否失败,因为该header_from值是example.comSPFdomain值mail.example.com?
我们使用 Amazon WorkMail 和 Amazon SES 发送手动和自动电子邮件。通常From address是webmaster@example.com,我们已将MAIL FROM域设置为mail.example.com。因此,我有点困惑为什么 Google 会将header_from域名报告example.com为mail.example.com. example.com我们为和设定了适当的 SPF 记录mail.example.com …
我的域上同时启用了 SPF 和 DKIM。该域适用于一家小公司,我们只有一台服务器(如果有人认为它相关,则为 hMailServer)。
最近我决定启用 DMARC 报告并注意到结果中的一些非常奇怪的东西。一些消息通过 DKIM 并且与 DKIM 对齐(因此通过 DMARC),但来自我没想到的 IP 地址(并且未通过 SPF)。据我了解,来自我服务器的电子邮件应该只来自我的静态 IP(我有 SPF 记录)。
如果他们是试图使用我的域的垃圾邮件发送者,那么他们不应该通过 DKIM。经过一番研究,我决定尝试旋转我的 DKIM 密钥,但它仍在发生。
这怎么会发生,我应该担心吗?
我的 DMARC DNS 记录如下所示:(域名已编辑)
_dmarc。domain .com TXT "v=DMARC1; p=none; sp=none; rua=mailto:dmarc@ domain .com; ruf=mailto:dmarc@ domain .com; rf=afrf; pct=100; ri=86400"
现在,我收到了来自 Gmail、Comcast、Yahoo、Emailsrv 等的汇总 DMARC 和取证 DMARC 报告。
但我没有收到来自 Aol、Hotmail、Msn、Outlook 和 Live 的任何报告。
任何想法为什么?(我确定电子邮件正在发送到这些 ESP 上的地址,并且 SPF 和 DKIM 都通过了)
有什么建议可以使 DNS 记录格式更具 ESP 包容性?
提前致谢。
当我有一个有效的 DKIM 设置时,为什么我在 Outlook/Hotmail/Live 上收到 dkim=fail(正文哈希未验证)?
我已经确保我的 SPF、DKIM、DMARC 记录设置正确,并且我域上的 DKIM 记录与我的服务器 DKIM 密钥匹配。
当从我的域向 Google 等发送电子邮件时,我得到 SPF = Pass、DKIM = Pass、DMARC = Pass 并且它通过安全连接。都好。
当使用相同的配置发送到 Outlook.com 时,我收到错误:dkim=fail(正文哈希未验证)。为什么 ?
有谁知道为什么会这样?
我在带有 SpamAssassin 的 Debian 9 上使用 Postfix。
我的 DNS 记录很旧,这不是因为 DNS 传播。
我使用 Thunderbird 作为客户端来发送电子邮件。