Postfix 阻止包含亚洲字符的电子邮件

Postfix 阻止包含亚洲字符的电子邮件

我们有一个运行 Dovecot 和 Postfix 的电子邮件服务器。

我收到很多包含奇怪的中文/日文或其他亚洲字符的垃圾邮件。

我们的组织不需要这些电子邮件,我们也不会与使用亚洲字符的人交流。

我们如何指示 Postfix 阻止所有包含亚洲字符的电子邮件?

我们已经使用“body_checks”来丢弃包含一些正则表达式字符串的电子邮件......但我们如何对亚洲字符执行此操作?

Server [/etc/postfix] # cat body_checks
/free mortgage quote/     DISCARD
/repair your credit/      DISCARD
/From:.*<>/         DISCARD
Server [/etc/postfix] # cat main.cf |grep body
body_checks = pcre:/etc/postfix/body_checks
Server [/etc/postfix] #

答案1

尝试添加以下几行:

/^Subject:.*=\?(?:GB2312|big5)\?/   DISCARD
/^Content-Type:.*\bcharset="?(?:GB2312|big5)\b/   DISCARD
/(?:[a-z0-9]?[\200-\377]){8,}/   DISCARD

他们将丢弃包含最常见中文编码的电子邮件,例如big5GB2312

答案2

我试过了,但没成功。我总是先解决问题,然后再在论坛上发帖。通常,论坛是最后一个寻求帮助的地方,而且所有其他尝试都失败了。

问题很简单:我想过滤亚洲字符。

这是我的 header_checks 文件:

/free mortgage quote/     DISCARD
/repair your credit/      DISCARD

这是我的 body_checks 文件: https://pastebin.com/mF0VLCzY

如果我从 body_checks 文件的列表中测试任何亚洲字符,过滤效果会很好。

问题是我收到的电子邮件是用 Base64 编码的(电子邮件客户端显示亚洲字符,但消息源是用 Base64 编码的)。例如:连在 Base64 中是“6YCj”,而我的消息源充满了 Base64 编码的文本。

我也尝试过这些:

/^Subject:.*=\?(?:GB2312|big5)\?/   DISCARD
/^Content-Type:.*\bcharset="?(?:GB2312|big5)\b/   DISCARD
/(?:[a-z0-9]?[\200-\377]){8,}/   DISCARD

这给了我以下问题:

postmap: warning: header_checks, line 5: unbalanced '"' in '/^Content-Type:.*\bcharset="?(?:GB2312|big5)\b/   DISCARD' -- ignoring this line

另外,如果我将这些留在 header_checks 中,它仍然不会过滤 base64 编码的字符......

相关内容