几个月前,我为我的三人公司实施了 SPF/DKIM/DMARC。试用期过后,我将我们的 DMARC 切换为“p=reject”,这样如果电子邮件未通过 SPF/DKIM,就会被拒绝。一般来说,它是有效的:我们的电子邮件通过,并且根据来自 DMARC 报告的数据,试图伪造来自我们域的垃圾邮件发送者的电子邮件被拒绝。服务器是 Ubuntu/Postfix。
行不通的一件事是,对于日历,我们一直将 Google 日历与 Google 帐户与我们的工作电子邮件(使用我们的公司域;而不是 gmail 地址)一起使用。当我们中的一个人使用 Google Apps 托管的电子邮件地址创建 Google 日历邀请(在 Google 网站上,或通过 Thunderbird/Lightning with Provider for Google Calendar)时,Google 会拒绝我们的邀请电子邮件。来自 Google 代表 Google-Apps 托管域的退回消息说拒绝是基于我域的 DMARC 政策:
Google 尝试递送您的邮件,但它被 aspmx.l.google.com 的收件人域 [Google Apps Hosted Domain Removed] 的服务器拒绝。另一台服务器返回的错误是:由于域的 DMARC 政策,不接受来自 [My Company's Domain Removed] 的未经身份验证的电子邮件。如果这是一封合法邮件,请联系 [My Company's Domain Removed] 域的管理员。
正下方是 google.com 的(大概)有效的 DKIM 签名。换句话说,谷歌拒绝了自己的 DKIM 签名电子邮件作为垃圾邮件,因为这不是我的 DMARC 政策所说的。但我不知道如何让我的 DMARC 政策另有规定。对于 SPF,我可以将 Google 指定为有效发件人。但是我找不到任何方法来为 DKIM 做到这一点:我可以在我的 DKIM 记录中添加一些内容,上面写着“如果它有一个有效的 Google DKIM 签名,那就不是垃圾邮件。” 这样的事情存在吗?授权“发件人”域以外的其他 DKIM …
有没有办法强制 DMARC 拒绝/拒绝未通过 DKIM 和 SPF 的邮件?
我们一直在缩小失败的数量,但我们的汇总 (rua) 报告中有一些域仅通过了 DKIM,我们宁愿它们通过我们的 DMARC,因为我们无法识别它们。
我们确实识别的域是完全对齐的。
我们的最终目标是,除非完全对齐(DKIM 和 SPF),否则消息将被拒绝
我有一份 DMARC 报告,其中包括:
<date_range>
<begin>1500249600</begin>
<end>1500335999</end>
</date_range>
Run Code Online (Sandbox Code Playgroud)
如何将日期转换为人类日期?
鼓励0365 邮件用户在其 SPF 记录中使用include:spf.protection.outlook.com -all。
我遵循了这个指导。我公司的 spf 记录说:
v=spf1 include:spf.protection.outlook.com -all
spf.protection.outlook.com 记录以 include:spfa.protection.outlook.com 结尾 -all 以 include:spfb.protection.outlook.com 结尾
其中每个都包含一组 CIDR,用于 Outlook.com 在发送电子邮件时使用的 IP。
但是,我从 google.com 收到了 DMARC 报告,表明某个 IP 的 SPF 失败,该 IP 实际上被 SPF 记录中的一个包含项所涵盖。我认为这是不正确的,但经常发生。
下面是一个例子:
source_ip>104.47.117.233</source_ip>
<count>1</count>
-<policy_evaluated>
<disposition>none</disposition>
<dkim>pass</dkim>
<spf>fail</spf>
Run Code Online (Sandbox Code Playgroud)
被拒绝的 ip 是 ip4:104.47.0.0/17 的一部分,它是 spfb.protection.outlook 记录的一部分:
spfb.protection.outlook.com。394 在 TXT "v=spf1 ip6:2a01:111:f400::/48 ip4:23.103.128.0/19 ip4:23.103.198.0/23 ip4:65.55.88.0/24 ip4:10.104.ip4 :10.04. 200.0/21 ip4:23.103.208.0/21 ip4:23.103.191.0/24 ip4:216.32.180.0/23 ip4:94.245.120.64/26 -all"
那么,为什么 Google 的电子邮件服务器会将此视为 SPF 失败?
这不是一个孤立的例子 - 我经常收到与 SPF 记录中包含的 …
首先我要说的是,我知道 DMARC 和 SPF 不做同样的事情。
\n但是,两者都可以选择告诉接收服务器如何处理未通过 SPF 的邮件(如果是 DMARC,则为 DKIM)。
现在让\xe2\x80\x99s 有一个理论案例,其中 SPF 设置为v=spf1 include:\xe2\x80\xa6 ~all(重要部分是~all)并且 DMARC 设置为v=DMARC1; p=reject; rua=\xe2\x80\xa6。
在这种情况下,如果我理解正确的话,我们有一个 SPF 记录告诉 \xe2\x80\x9cmark 邮件不会将 SPF 作为垃圾邮件\xe2\x80\x9d 传递,还有一个 DMARC 记录告诉 \xe2\x80\x9c 不要接受以下邮件:不通过 DKIM 或 SPF。\xe2\x80\x9d
\n当收到未通过 SPF 的邮件时,哪个指令优先?如果 DMARC 条目设置为p=none,答案是否相同?
我在 Ubuntu 上有一个 postfix SMTP 服务器。我拥有有效的 SPF 和 DKIM 记录,已通过我的客户收到的电子邮件标头进行验证。
验证结果:spf=pass(发件人IP为XXX.XXX.XXX.XXX)smtp.mailfrom=mydomain.com;hotmail.com;dkim=pass(签名已验证) header.d=mydomain.com;hotmail.com; dmarc=bestguesspass action=none header.from=mydomain.com;
但是,该电子邮件仅在 Outlook / Live.com / hotmail 中被视为垃圾邮件。垃圾邮件置信度 (SCL) 为5(垃圾邮件)。
X-MS-Exchange-Organization-SCL: 5
X-MS-Exchange-Organization-PCL: 2
Run Code Online (Sandbox Code Playgroud)
SCL的常见问题解答要求我加入第3方ReturnPath认证计划来验证发送的每封电子邮件,但认证计划非常昂贵。
有没有其他方法可以降低 SCL 分数?添加 DMARC 记录有帮助吗?
更新:
这个问题与通用垃圾邮件过滤器对抗策略无关;这是关于 Microsoft 的垃圾邮件置信度 (SCL)。
如果电子邮件在转发时包含多个 DKIM 签名,DMARC 如何处理 DKIM 对齐检查?
任何传递 DKIM 签名 d= 参数都必须匹配 Header From 吗?
或者
第一个(或最后一个)DKIM 签名 d= 参数是否必须与 Header From 匹配?
或者
“身份验证结果”中指示的单个 DKIM 是否必须通过(可能总是最后一个?)?
这不是放松与严格的问题。
谢谢!
我一直在为邮件服务器配置 DNS 记录,但在 DMARC 对齐方面遇到了困难。
我知道 和relaxed都是strict有效的选项,并且relaxed是默认设置。但是,我想知道是否有普遍接受的“最佳”做法?
随着 DMARC 变得更加广泛,是否期望这种strict对齐方式将成为推荐/默认对齐方式?
我有一个点名域。。名称是一个奇怪的TLD:他们最初只提供第三级域名,如first.last.name,让更多的人可以得到自己的名字。他们还包括每个域注册的 first@last.name 电子邮件地址。后来他们开放了正常的二级注册,例如last.name,但仅适用于没有现有三级注册的域。我在那之前得到了我的,所以我坚持下去。
我已经使用 first@last.name 作为我的主要电子邮件地址 18 年左右。但是,我不拥有 last.name 本身,因此我必须依靠我的域注册商(以及 Verisign,.name 注册运营商)将收到的电子邮件转发给我。更重要的是,外发电子邮件的电子邮件传送能力已经下降得几乎无法使用。只有 Verisign 拥有 last.name 的 DNS,而且他们显然没有兴趣为其操作SPF、DKIM、DMARC或 SMTP。注册商自己不能,因为他们无法控制 last.name 的 DNS。
我被卡住了吗?我是否需要咬紧牙关,放弃我一直使用的这个电子邮件地址,并切换到一个我可以控制的 DNS 的“普通”域?我错过了什么吗?
例如,Gmail 用户会在我的电子邮件中看到这一点:
我在 mail-tester.com 上得到 6.1/10 的分数,其中 DMARC 验证是唯一相关的惩罚 (-3)。
* Your DKIM signature is valid
* Your message failed the DMARC verification
A DMARC policy allows a sender to indicate that their emails are protected by SPF and/or DKIM, and give instruction if neither of those authentication methods passes. Please be sure you have a DKIM and SPF set before using DMARC.
You are not allowed to send a message with this address
DMARC DNS entry found for the domain _dmarc.mail.example.com: …Run Code Online (Sandbox Code Playgroud) dmarc ×10
dkim ×7
spf ×7
email ×3
alignment ×1
date ×1
domain-name ×1
email-server ×1
formatting ×1
google ×1
spam ×1
spam-filter ×1
timestamp ×1