Exim

如何將 Exim 信封域設置為 From 域

  • January 4, 2021

我在 Exim 上設置了 DKIM,其域設置如下:

DKIM_DOMAIN = ${sender_address_domain}

但是,該域始終設置為同一個域(我的主域),這會導致 DMARC 驗證在為其他域(我託管多個網站)發送電子郵件時由於對齊而失敗。

通過閱讀文件,我認為 sender_address_domain 是信封地址而不是 From 欄位。如何更改信封地址以使其與給定電子郵件的“發件人”欄位匹配(我假設這也將允許 SPF 對齊正確)?

另外,為了安全起見,是否可以有一個允許域的白名單,所以 Exim 拒絕發送在 From 欄位中有另一個域的電子郵件?

將重寫規則添加到 Exim4 配置中:

*@+local_domains "${local_part}@${domain}" F

該規則重寫 Envelope-from 標頭以匹配 From 標頭,從而允許 DMARC 對齊正常工作。建議將其附加到該部分的末尾以避免與目前規則衝突。

/etc/exim4/conf.d/rewrite/10_from_rewrite您可以在文件或文件的呼叫部分rewrite/31_exim4-config_rewriting/etc/exim4/exim4.conf.template對於 Debian)中找到此配置。這取決於您的配置類型——稱為單個整體或拆分 Exim4 配置文件,可能需要執行命令update-exim4.conf

使用 重新配置後重新啟動 Exim systemctl restart Exim4


規則解釋:

  • **@+local_domains= 對於所有“local_parts”,例如使用者。
  • +local_domains= Exim4 伺服器服務的所有域(在dc_other_hostnamesdc_readhost變數中定義)而不是其他域(重定向嘗試等)。
  • ${local_part}@${domain}從 From 欄位組成符合 RFC2822 的電子郵件地址。變數在exim4 文件 – 字元串擴展中進行了描述。您可以只使用“$header_from:”,但“John Doe <john.doe@example.net>”形式的地址將失敗並由於“John Doe”部分而被記錄到恐慌日誌中。
  • F=重寫操作的目標欄位是Envelope-from。請參閱exim4 文件 – 地址重寫

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