在 exim 中为邮件列表禁用 DKIM

在 exim 中为邮件列表禁用 DKIM

我订阅了许多邮件列表,它们不会删除我的 DKIM 签名,但会改变邮件(更改From)并添加自己的 DKIM。结果邮件有 2 个 DKIM 签名,一个失败,一个通过。

DMARC 可能是我最大的问题。当我通过这样的邮件列表发送邮件时,我开始收到数十份 DMARC 报告,指出我的邮件包含失败的 DKIM 签名。

向这些邮件列表发送消息时如何禁用我的 DKIM 签名?

我有 exim 的标准 DKIM 相关配置:

DKIM_CANON = relaxed
DKIM_SELECTOR = default
DKIM_DOMAIN = ${lc:${domain:$h_from:}}
DKIM_FILE = /etc/exim4/DKIM_DOMAIN/DKIM_SELECTOR.private.pem
DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}

据我所知,我无法检查$recipients,对吗?

因此,我认为我应该配置我的 MUA (mutt) 来更改本地部分并检查本地部分。类似

DKIM_PRIVATE_KEY = ${if and {!eq{$local_part}{phd+list}}{exists{DKIM_FILE}} {DKIM_FILE}{0}}

有没有更好的方法呢?

更新。我决定采用稍微不同的方法:添加/检查自定义标题X-Skip-DKIM-Sig。因此,.muttrc我在我的邮件列表中添加了已知邮件列表的标题:

send-hook ~u "\
    unmy_hdr Reply-To; \
    my_hdr X-Skip-DKIM-Sig: mailing list"

我在进出口检查了一下:

DKIM_PRIVATE_KEY = ${if and{{!def:h_x-skip-dkim-sig:}{exists{DKIM_FILE}}} {DKIM_FILE}{0}}

答案1

没必要。DKIM 签名失效不会影响邮件投递。唯一重要的是是否存在有效的 DKIM 签名。

对于 DMARC 而言,DKIM 签名所涉及的域与 MIME 标头中的域相同非常重要From。如果邮件服务器修改了主题或正文,它还必须修改标From头才能发送通过 DMARC 的内容。这是有问题的,许多(如果不是大多数)邮件服务器都会失败。向用户解释这一点是一个持续存在的问题。

ARC 试图解决这个问题。不过它相对较新,因此采用情况并不理想。

相关内容