使用 postfix、policyd 和 amavis 将垃圾邮件过滤到 IMAP 文件夹?

使用 postfix、policyd 和 amavis 将垃圾邮件过滤到 IMAP 文件夹?

使用 amavisd-new,我成功标记了多个标题并准确报告了大多数垃圾邮件。

但是,现在我正在将其发送到收件箱,我想改为使用垃圾邮件文件夹。我会不时地对这些邮箱(每个帐户一个)运行 sa-learn。这样就可以将误报放在那里,系统会从中学习。

我不确定 postfix、amavis 或 policyd 是否是合适的起点。由于我使用的是虚拟域,因此每个 user@domain 都会有一个不同的文件夹,而不是一般的隔离区。

关于如何设置它,您有什么想法吗?我想让它像现在的 gmail 或 yahoo 邮箱一样运行,自动将可疑垃圾邮件移至垃圾邮件文件夹。

答案1

有几种方法可以实现这一点,它们很大程度上取决于您用来最终将邮件递送到用户虚拟邮箱的递送代理。

  1. 如果您正在使用现有的 Postfix 虚拟(8)传送代理,则无法完成此操作。
  2. 如果你正在使用 Cyrus LDA 或 Dovecot LDA,你还有两个选项:你可以使用它们的内置 Sieve 功能(快速谷歌搜索应该揭示如何解析 X-Spam-Status 标头)并提供全局 Sieve 脚本或使用收件人分隔符( recipient_delimiter = +在 Postfix 的 main.cf 中设置,并查看重定向文档对于 amavisd-new)。
  3. 如果您正在使用 maildrop,请参阅 James 的回答。
  4. 如果这些选项都不适用,您可以让 amavisd-new 将这些邮件放入隔离区。OSS 隔离管理器很少,对于基于 SQL 的隔离,我只知道邮购邮件服务适用于现代 amavisd-new。Maia 邮件卫士 带有自己的 amavisd-new 实现(出于各种原因,我不建议使用 Maia)。最后,我最近一直在写一个组合隔离/邮件设置管理应用程序,但我无法给出这个作品何时完成的日期)。

一个完全不同的方法是,如果你的邮件量很少,或者你有一些重要的硬件,那么运行 amavisd-new 作为队列过滤器之前,从而完全消除了对垃圾邮件/垃圾文件夹或隔离的需要:如果合法邮件被拒绝为垃圾邮件,发件人将收到其自己的邮件服务器的通知 - 因为您从技术上讲从未接受过该邮件,因此您不承担任何责任。

答案2

您需要设置类似 procmail 或 maildrop 之类的程序,以便在邮件传递时将其过滤到正确的文件夹中。

使用 maildrop 你可以得到一个默认的系统范围的配置,它将检查标题和过滤垃圾邮件到正确的位置,在 /etc/maildroprc 中像这样:

如果(/^X-Spam-Status:是){
    到“Maildir/.Spam”
}

根据您的本地设置更改邮箱位置。

答案3

首先,很抱歉,这不是对您的问题的直接回答,而只是发布有效的防垃圾邮件后缀配置。

我负责维护公司服务器,包括邮件。过去几年,我尝试过不同的邮件服务器、各种配置和插件。到目前为止,实际发送到用户邮箱的垃圾邮件数量平均为每周 1 次。考虑到我有一百多个邮箱,这个结果真是太棒了。
当然,这需要定期检查邮件日志并阻止能够通过 postfix 的服务器的 IP,但相信我,我最好手动将 IP 放入 SPAM 数据库,而不是弄乱 SPAM 过滤器。

最近我在我的博客

我当前的配置使用 Postfix 与 postgrey 和 Dovecot,两者都使用相同的 PostgreSQL DB。

答案4

我不会 100% 依赖 amavisd 来丢弃被认为是垃圾邮件的邮件;我只会以某种方式标记主题并仍然发送

然而,在此之前,灰名单、SPF 和 rbl 确实很棒

相关内容