最简单的Exim路由器,它只是添加自定义标题

我用我目前的解决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。

  1. 寻找名为main/0000-localmacros或类似文件的文件。 如果不存在,请创build它。
  2. 该文件应该包含这样一行:

     CHECK_DATA_LOCAL_ACL_FILE=/etc/exim4/some/file 

    如果没有,请添加此行。 文件名可以是任何东西。

  3. 将上面的行写入/etc/exim4/some/file文件( warn add_header... one)。
  4. 重新configurationexim。 在Debian上,这是通过运行dpkg-reconfigure exim4-config命令完成的。

在此之后,每封邮件都应该包含您指定的标题。