Exim
如何將 Exim 信封域設置為 From 域
我在 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_hostnames
和dc_readhost
變數中定義)而不是其他域(重定向嘗試等)。${local_part}@${domain}
從 From 欄位組成符合 RFC2822 的電子郵件地址。變數在exim4 文件 – 字元串擴展中進行了描述。您可以只使用“$header_from:”,但“John Doe <john.doe@example.net>”形式的地址將失敗並由於“John Doe”部分而被記錄到恐慌日誌中。F
=重寫操作的目標欄位是Envelope-from。請參閱exim4 文件 – 地址重寫。