事情是这样的。
基本上,我正在寻找一种方便的方法,将垃圾邮件从我的 Exchange 2010 邮件服务器以邮件格式发送到我的垃圾邮件过滤器/代理(无论您想怎么称呼它),以便 SpamAssassin 进行贝叶斯过滤(显然是 Maildir 或 Mbox)。
我已经创建了一个网关,用于过滤邮件,然后将其传递到我的 Exchange 服务器,如下所示本教程。根据我所做的研究,一旦邮件采用了它知道如何使用的格式,应用贝叶斯过滤应该很容易:
sa-learn -mbox --spam ~/mbox/spam ~/mbox/bad-spam
本质上,SpamAssassin 需要一定数量的垃圾邮件和普通邮件才能发挥作用,我想我可以让用户将他们的电子邮件转储到这个公共文件夹中。
我最初的想法是使用 IMAP2mbox 之类的东西,然后将其转储到 SpamAssassin 网关上的目录中。这就是我的问题所在,似乎对于 Exchange Server 2010 来说这变得很棘手,因为不再支持内置的 IMAP 公用文件夹。
我很困惑如何将 Exchange 服务器中的垃圾邮件转换为 SpamAssassin 可以使用的格式。
我猜测有类似的方法可以做到这一点,但我不确定下一步该去哪里找。
答案1
Exchange 2010 可能允许使用域/用户/邮箱符号用于通过 IMAP 访问国外用户的邮箱。根据KB937359此功能最初从 Exchange 2007 中删除,但在 SP1 Rollup 4 中重新引入。因此值得一试。
还有达夫邮件这可能会有所帮助 - 它通过 WebDAV 或 EWS 将标准互联网邮件协议传送到 Exchange。我没有尝试过,但使用 DOMAIN\USERNAME\MAILBOX 符号访问其他用户的邮箱可能会有效,公共文件夹显然也可以访问。
如何将垃圾邮件发送到 SA 的基本思路是设置 fetchmail在 Postfix/Amavisd-Box 上检索它并将其提供给 sa-learn。确保指定正确的数据库路径,以便sa-learn
amavis 实际使用更新的贝叶斯数据库。在 Ubunty 系统上,执行此操作的命令应如下所示:
/usr/bin/fetchmail -a -n -m '/usr/bin/sa-learn --dbpath /var/lib/amavis/.spamassassin' --spam
您的 .fetchmailrc 包含用户名、密码、要访问的邮箱和要获取的文件夹的必要信息:
poll your.exchange.server protocol IMAP user "DOMAIN/spamadmin/user1" with password "spamadmin-password" folder "SPAM"
poll your.exchange.server protocol IMAP user "DOMAIN/spamadmin/user2" with password "spamadmin-password" folder "SPAM"
poll your.exchange.server protocol IMAP user "DOMAIN/spamadmin/user3" with password "spamadmin-password" folder "SPAM"
指定-v
fetchmail 命令的参数和-D
sa-learn 的参数将为您提供一些调试输出。fetchmail 文档包含更多有用的信息和一些可用的 fetchmail 配置示例。
答案2
对于我的 SBS2011 / Exchange 2011 20 人办公室服务器,我购买了 100 美元的许可证Exchange 服务器工具箱,它将 Spam Assassin 与 Exchange 的集线器传输相结合,并增强了 Exchange 的内置内容过滤功能。
我获得了完全可配置的垃圾邮件刺客、标题和主题重写以及以 .eml 文件形式通过 Exchange 的所有消息的秘密备份。
我想这听起来像是一个斜杠广告,但说真的,这个价值 100 美元的小玩意对我来说真的很有用。