我在 Exim 上设置了 DKIM,其域设置如下:
DKIM_DOMAIN = ${sender_address_domain}
但是,该域始终设置为同一个域(我的主域),这会导致 DMARC 验证在为其他域(我托管多个网站)发送电子邮件时由于对齐而失败。
通过阅读文档,我认为 sender_address_domain 是信封地址而不是 From 字段。如何更改信封地址以使其与给定电子邮件的“发件人”字段匹配(我假设这也将允许 SPF 对齐正确)?
另外,为了安全起见,是否可以有一个允许域的白名单,所以 Exim 拒绝发送在 From 字段中有另一个域的电子邮件?
将重写规则添加到 Exim4 配置中:
该规则重写 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 <[email protected]>”形式的地址将失败并由于“John Doe”部分而被记录到恐慌日志中。F
=重写操作的目标字段是Envelope-from。请参阅exim4 文档 – 地址重写。添加重写规则:
在 debian 中,这可以通过创建一个文件来添加,例如
/etc/exim4/conf.d/rewrite/10_from_rewrite
. 此规则重写发送者字段以匹配 From 标头,从而允许 DMARC 对齐正常工作。