我搜寻了一上午,什么也没发现。
我有一个运行 dovecot IMAP 的 debian 机器。我想用用户垃圾邮件文件夹来训练 spamassassin。
有没有类似 sa-learn-cyrus 的适用于 dovecot 的东西?
答案1
SpamAssassin 附带sa-learn
开箱即用(不要与sa-learn-cyrus
您提到的混淆)。它有两种学习模式,普通邮件和垃圾邮件。它需要一个非常非常简单的脚本来遍历每个用户的邮箱,首先进行“普通邮件”遍历,然后对“垃圾邮件”进行第二次遍历。大致如下:
#!/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
将其放入一个文件中,我们将其称为sa-trainer.sh
。我将已读邮件作为流程的一部分,以防万一有人读了某些内容(有意或无意)。这对流程来说并不重要,因为重复的内容将被检测到并被有效忽略。
答案2
我写了我的自己的脚本用于doveadm search
从我自己的帐户中的某些 IMAP 文件夹中读取培训邮件。
适用通常的免责声明,它并不漂亮,但对我来说有用。您还必须删除crm114 mailtrainer.crm
最后的调用。
编辑:我意识到我的脚本也使用了 crm114 功能(crm114/reaver_cache/texts 中所有已处理消息的缓存目录),因此它不适用于正常安装。