我们使用 postfix 作为邮件中继。我试图根据收件人地址更改电子邮件的主题。看起来 check_header 可能是我需要的工具,但我似乎无法让它根据收件人进行过滤,而是根据主题进行替换。
答案1
您可能需要一个内容过滤器。
这关于内置过滤器的 Postfix 文档(其中包括header_checks)指定:
“标头/正文检查不能依赖于邮件的收件人。”
内容过滤器和过滤器之间的区别在于过滤器发生在队列之前:
您可以使用header_checks仅将收件人绑定的电子邮件发送到相关过滤器(以免除 Postfix 的额外工作):
答案2
这可以通过传输和标头检查来完成。
在 /etc/postfix/transport 文件中添加:
[email protected] custom_transport:
这将为所需收件人启用特定传输,然后将其与主题更改相关联。替换[电子邮件保护]实际地址。custom_transport 这个名字是任意的,但所有引用都必须是同一个名字。
在 /etc/postfix/main.cf 添加:
header_checks = regexp:/etc/postfix/header_checks
transport_maps = hash:/etc/postfix/transport
这些行将分别启用标头检查和传输图。
在 /etc/postfix/master.cf 添加:
custom_transport ... smtp
-o smtp_header_checks=regexp:/etc/postfix/rewrite_headers
用该文件中已定义的其余 smpt 传输选项替换 ...。
最后创建文件 /etc/postfix/rewrite_headers(名称任意,但必须与主文件中添加的行中的名称匹配),内容如下:
/^Subject:(.*)/ REPLACE Subject: Desired subject text
这会将主题替换为所需的主题。
重新加载或者重新启动 postfix。