我已经设置了一个运行 Postfix 的 Linux 服务器,用于发送和中继电子邮件,我的邮件服务器执行的任务之一是接收发送到特定地址的传入电子邮件,并将其转发到属于另一个域的电子邮件地址。我使用了本教程进行设置,我已确认邮件转发按预期工作。但是,有些收到的电子邮件带有保密通知,我想在转发电子邮件之前删除这些通知,因为电子邮件转发到的电子邮件地址会根据正文的内容以不同的方式处理电子邮件,如果正文包含通知,则电子邮件将无法得到正确处理。
举个例子,我设置了一个名为的别名[email protected]
,用于将电子邮件发送到外部地址。然后我能够找到并替换部分保密通知,但无法将其替换为空字符串,也无法替换整个通知。我在中添加了以下行/etc/postfix/main.cf
:
body_checks = pcre:/etc/postfix/body_checks
文件 /etc/postfix/body_checks 包含以下内容:
/CONFIDENTIALITY NOTICE:.*/ REPLACE ""
/Testing/ REPLACE ""
我可以发送电子邮件至[email protected]
,但找到的字符串不是用空格替换,而是用文字字符 替换。我尝试在那里放一个空格,但当我这样做时,我重新启动 Postfix 时""
会收到错误。我读到warning: REPLACE action without text in body_checks map
文档,但找不到任何用空字符串替换字符串的示例。有人知道如何用空字符串替换找到的文本吗?如果您需要更多信息,请告诉我,我很乐意提供。
答案1
您可以使用 IGNORE:
IGNORE Delete the current line from the input, and inspect the next
input line. See STRIP for an alternative that logs the action.
例子:
/CONFIDENTIALITY NOTICE:.*/ IGNORE