我用我目前的解决scheme回答了这个问题,但正如我所说的,我对此并不满意。 对于“如何将自定义标题添加到所有外发邮件”这一问题的解决scheme,需要将headers_add
参数添加到现有的Smarthost传输中。 不过,我可以看到更新或重新configuration在某些时候还原了我的编辑,而我不知道。
我曾希望创build一个最小的路由器,可以在链中尽早运行,只需添加所需的头文件,这个头文件可以添加到所有的邮件中,无论是本地还是远程交付。 但是我找不到任何运行的路由器的例子,添加头文件然后将所有的消息传递给链中的下一个路由器。 我创build了这个,这似乎工作,但我对Exim很新,如果有人能指出缺陷或更好的方法来达到预期的结果,将会很感激。 路由器是/etc/exim4/conf.d/router/01_exim4-config_dev_header
:
dev_header: debug_print = "R: dev_header for $local_part@$domain" driver = redirect headers_add = "X-Test-Dev-Header: true" data = $local_part@$domain self = pass
你不需要路由器来做到这一点。 在acl_smtp_data ACL中有一个语句,它更简单(在我看来,更简洁),它除了添加头之外什么也不做,就像这样:
warn add_header = X-Test-Dev-Header: true
请参阅“ 在ACL中添加标题行 ”了解更多信息。
如何启用这个规则
我假设你有“拆分”configuration。
main/0000-localmacros
或类似文件的文件。 如果不存在,请创build它。 该文件应该包含这样一行:
CHECK_DATA_LOCAL_ACL_FILE=/etc/exim4/some/file
如果没有,请添加此行。 文件名可以是任何东西。
/etc/exim4/some/file
文件( warn add_header...
one)。 dpkg-reconfigure exim4-config
命令完成的。 在此之后,每封邮件都应该包含您指定的标题。