在 Exim4 中有条件地将字符串添加到邮件主题中

在 Exim4 中有条件地将字符串添加到邮件主题中

我有一个自定义解决方案,仅使用 Exim4 和 SQL 数据库来实现邮件列表。基本上,大部分艰苦的工作都是在一个路由器中完成的,该路由器检查各种条件、查找列表成员、添加新标题字段、修改主题等。它也很好地满足了我们的需求,只有一个问题。

我将邮件列表的友好名称添加到主题行的前面。目前,每次邮件通过时都会添加列表名称,因此经过长时间的讨论后,主题行看起来就像“[ListName] Re: [ListName] Re: [ListName] Re: ...”。显然,我只想将列表名称添加到前面一次,例如,仅当名称标签尚未在主题中时才应将其添加到前面。有什么想法可以最轻松地实现此目的吗?

没有必要将其作为仅针对路由器的解决方案,但我想避免将邮件传输到外部程序,然后将邮件返回到邮件系统。一定有更简单的方法可以做到这一点。

感谢您的帮助。

答案1

尝试在 ACL 变量中配置前缀或主题。这必须在数据 ACL 中完成。将此变量用作路由器中的新主题。类似这样的方法应该有效。

warn
    acl_m5 = $h_subject:
    !condition =  ${if match{$h_subject:}{/N[ListName]/N}}
    acl_m5 = [ListName]: $h_subject:

您还可以在 acl 中有条件地定义一个变量,并将主题行包装在条件包含中。

相关内容