postfix header_checks 重命名电子邮件主题

postfix header_checks 重命名电子邮件主题

我们有许多外部系统读取我们的电子邮件,有些系统会干扰其他系统。基本上我需要做的是替换电子邮件主题,例如:

[RT #179497] Internal: blah blah

[RT 179497] Internal: blah blah

所以删除哈希。有人知道使用 postfix header_checks 实现此目的的正则表达式吗?

答案1

header_checks(5)例如和http://www.postfix.org/BUILTIN_FILTER_README.html#limitations了解更多信息。

修改所提到的手册页中的示例并不难:

/etc/postfix/main.cf:

header_checks = pcre:/etc/postfix/header_checks.pcre

/etc/postfix/header_checks.pcre:

/^Subject: \[RT #(\d)\] Internal: (.+)$/    REPLACE Subject: [RT $1] Internal: $2

它也许可以做得更优雅或更简短,但这是你现在的工作。

答案2

补充 @joschi 的回答(我知道这已经晚了,但其他人可能会觉得这些信息有用):您表示您只想重写特定电子邮件地址的邮件标题。这有点棘手:

您需要设置一个单独的传输,以便可以使用此传输为消息指定不同的操作:

默认位置:/etc/postfix/transport

[email protected]   rewriter:
[email protected]   rewriter:
.anotherdomain.com  rewriter:

这指示 Postfix 使用传输来处理发往这些位置的邮件rewriter。然后,在 中/etc/postfix/master.cf,您可以添加:

rewriter     unix  -       -       -       -       -       smtp
  -o smtp_header_checks=regexp:/etc/postfix/rewrite_headers

最后,您需要在/etc/postfix/rewrite_headers文件中指定要实际执行的重写类型。它具有与默认文件相同的语法header_checks,只是自定义版本仅适用于通过传输的邮件rewriter

请注意,如果您激活了任何类型的内容过滤器(例如 Amavis),这可能不起作用,尽管在我的情况下我正在运行不同的操作。

相关内容