在过去几个月里,我收到的垃圾邮件数量一直让我疯狂。 尽pipe在我的Exim4邮件服务器上运行SpamAssassin (使用RBL检查),但是它的很多内容已经find了我们的邮箱。
我注意到,绝大多数罪犯最终都是在RBL中,但是只有在它已经被扫描后才发现是无害的。 通常这些邮件的垃圾邮件分数在我收到时为0.0 – 1.1,而一段时间以后,分数会高得多。
我做了一些search,但找不到任何可用的东西,所以我把一个小程序放在我邮箱里最近的邮件中,让SpamAssassin重新分析它们。 结果令人咋舌: 几乎所有收到邮件的邮件在发送后5到10分钟内都通过了5.0门限 。 有时需要比这更长的时间,但到目前为止,它总是会最终超过门槛。
现在,当您实际上正在阅读邮箱时,这并不是什么有用的function,但是这大大减less了我们第一次查看邮件时手动删除这些邮件的时间。
现在,问题是我所做的程序单独运行,它使用IMAP连接到特定的邮箱并进行更改。 这使我很难为其他用户使用此解决scheme,因为我将不得不有他们的密码。
是否有任何现有的工具,允许我重新处理已收到的邮件? 如果有问题,我在磁盘上使用Maildir格式。 如果没有这样的工具存在,直接访问和修改Maildir邮箱的库也可以做到这一点。
我不想延迟电子邮件的发送(灰名单或其他方式),因为延迟时间不得不至less10分钟才能生效,这在工作时间内是不允许的。
这确实是一个非常好的技术,特别是对于打雪蹄铁,一种垃圾邮件,整个电子邮件爆炸在几分钟之内出门。 这是因为反垃圾邮件服务器需要很长时间来处理任何到达的垃圾邮件,然后抽出垃圾邮件的定义。
我不知道任何可以在本地使用的随时可以使用的软件,但是IMAP Spam Begone可以满足您的需求。 它通过IMAP(标准邮件客户端的方式)连接到您的邮箱服务器,并运行SpamAssassin为您进行清理。
如果你想要在本地运行的东西,你可以写一个简单的包装SpamAssassin这样做。 Maildir将每条消息存储在自己的文件中,所以像这样的东西应该是体面的:
sa-bootstrap.sh的内容:
#!/bin/sh for email in "$@"; do if ! spamassassin -e < "$email" > /dev/null 2>&1; then mv "$email" /full/path/to/spam/folder fi done
现在你可以运行:
find /path/to/maildir -type f -print0 |xargs -0 sa-bootstrap.sh
不要忘记validation您的垃圾邮件,并在删除垃圾邮件和火腿之前使用sa-learn 。
(当给定的邮件被确定为垃圾邮件时, spamassassin -e将以非零的错误代码退出。)
你有没有考虑打开/closures灰名单 (也是每个邮箱的基础上)?
例如,在工作时间closures灰名单,并在工作时间之外打开它(对于没有活动IMAP会话的用户)。