postfix header_checks重命名电子邮件主题

我们有一些外部系统从我们的电子邮件中读取,有些正在绊倒别人。 基本上我需要做的是取代一个电子邮件主题,如:

[RT #179497] Internal: blah blah 

 [RT 179497] Internal: blah blah 

所以放下哈希。 有谁知道正则expression式来实现这个postfix header_checks?

有关示例,请参阅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 

它可能会做得更优雅或更短,但这是你现在的工作。

@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传输的邮件有效。

请注意,如果您有任何types的内容filter处于活动状态(例如Amavis),则可能无法正常工作,但在我的情况下,我正在运行不同的操作。