快速的方法来过滤来自maildir的垃圾邮件?

我有一个Maildir约50k的电子邮件,其中大约42k是垃圾邮件(离开我的域名和电子邮件的结果,并没有使用它2年)。

我有以下脚本来尝试和过滤垃圾邮件:

#!/bin/sh for email in "$@"; do if ! spamassassin -e < "$email" > /dev/null 2>&1; then mv "$email" /tmp/spam fi done 

但是这是永远的

我只能做到这一点的设备是有限的,这是一个与ARM处理器的NAS …但仍然!

有没有更快的方法来做到这一点? 目前,在一个有1000个文件的subdir上工作了将近12个小时,发现了36​​个垃圾邮件。

您可以在“本地testing”模式下启动spamd守护进程,并使用spamc命令testing消息。 它应该消除大部分的spamassassin初始化,例如parsingperl和configuration文件。

运行networkingtesting大量旧的消息(最多两岁)不是成本/时间效益恕我直言。

在我的旧笔记本电脑上处理一条消息,在“仅本地模式”下处理垃圾邮件大约0.3秒(每秒三条消息或每小时10条消息),处理“networking模式”中的一条消息通常通过移动宽带连接5-7s。 在批量检查期间平行运行一些networkingtesting是一个好主意。

您将在spamaassin手册中find与性能相关的主题摘要 。


 #!/bin/sh for email in "$@"; do # SCORE - "12.7/5.0" on success OR "0/0" on error SCORE=`spamc -c < "$email" > /dev/null 2>&1` # EXIT - 1 on spam detection, 0 on not-spam or error EXIT=$? if [ "$EXIT" = "1" ] ; then mv "$email" /tmp/spam fi done