#!/bin/bash
# change these to reflect the folder layout used on your server
BASEDIR=/home
UINBOX=Maildir/Inbox
USPAMBOX=Maildir/Spam
# do some housekeeping...
sa-learn --force-expire
# enumerate each user and process ham/spam
for USRNAME in `ls -l /home`
do
for MAILSTATE in new cur
do
sa-learn --ham $BASEDIR/$USRNAME/$UINBOX/$MAILSTATE/*
sa-learn --spam $BASEDIR/$USRNAME/$USPAMBOX/$MAILSTATE/*
done
done
SpamAssassin
sa-learn
开箱即用(不要与sa-learn-cyrus
您提到的混淆)。它带有两种学习模式,火腿和垃圾邮件。遍历每个用户的邮箱需要一个非常非常简单的脚本,首先是“火腿”通过,然后是“垃圾邮件”的第二次遍历。(大致)像:放在一个文件中,我们称之为
sa-trainer.sh
. 我将已阅读的邮件作为该过程的一部分包括在内,以防万一(有意或无意地)阅读了某些内容。这对过程无关紧要,因为重复项将被检测到并有效地忽略。我编写了自己的脚本,用于
doveadm search
读取我自己帐户中某些 IMAP 文件夹中的培训邮件。通常的免责声明适用,它不漂亮但对我有用。您还必须
crm114 mailtrainer.crm
在最后删除呼叫。编辑:我意识到我的脚本还使用 crm114 功能(crm114/reaver_cache/texts 中所有已处理消息的缓存目录),因此它不适用于正常安装。