Exim

在 exim 中為郵件列表禁用 DKIM

  • January 11, 2018

我訂閱了許多郵件列表,這些郵件列表不會刪除我的 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"

在 exim 中我檢查它:

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

沒有必要。下降的 DKIM 簽名不會影響傳遞。是否存在有效的 DKIM 簽名很重要。

對於 DMARC,重要的是 DKIM 簽名相關的域與FromMIME 標頭中的域相同。如果郵件伺服器修改了主題或正文,它還必須修改From標頭才能發送通過 DMARC 的內容。這是有問題的,即使不是大多數郵件伺服器也會出現故障。向使用者解釋這一點是一個持續存在的問題。

ARC 試圖解決這個問題。不過,它相對較新,因此採用率參差不齊。

引用自:https://serverfault.com/questions/877359