问题描述
问题:使用
:
:
dnl # opendkim
include(`/etc/mail/m4/opendkim.m4')dnl
dnl # ClamAV milter
include(`/etc/mail/m4/clamav-milter.m4')dnl
dnl # Masquerading options
MASQUERADE_AS(`example.com')dnl
MASQUERADE_DOMAIN(`example.com')dnl
MASQUERADE_DOMAIN(`example.de')dnl
FEATURE(`always_add_domain')dnl
FEATURE(`allmasquerade')dnl
FEATURE(`masquerade_envelope')dnl
FEATURE(`masquerade_entire_domain')dnl
:
:
在sendmail.mc中opendkim给header加了一个签名,下一个sendmail修改了header进行伪装,使得dkim签名失效。不合理。
如何告诉 sendmail 在之前通过 opendkim 添加签名应用所有“伪装”选项和功能?
解决方法
我正在解决同样的问题。我还没有可用的配置,但看起来 opendkim.conf 中的 ReplaceRules 设置是可以使用的。
来自手册页:
ReplaceRules (string) 指定一个包含文本替换规则列表的文件,这些规则应用于邮件头字段以 替换某些预期会更改为消息的内容 通过本地 MTA。这可以用来容纳 预期的更改,例如 MTA“伪装”对 From: 字段所做的更改 功能。
编辑:EPEL 存储库中的 2.11.0-0.1 版具有标记为实验性的替换规则功能,未编译到分发包中,所以不容易获得。我放弃了编译自己的副本的想法。在 OpenDKIM 看到它们之前,在“submit.mc”中(在“submit.mc”中)让 Sendmail 重写标头要容易得多(至少在我的情况下)。
即,sendmail.mc 和 submit.mc 配置文件两者都包含如下内容:
MASQUERADE_AS(`mydomain.com')
FEATURE(`masquerade_envelope')
MASQUERADE_DOMAIN(`notherhost.mydomain.com')
MASQUERADE_DOMAIN_FILE(`/my/awesome/hostlist')