我有一个使用dovecot 2.1.7和dspam 3.10.1的反垃圾邮件插件的问题。
我认为,反垃圾邮件插件不能识别垃圾文件夹,因为日志报告
Mar 25 13:11:22 mail imap: antispam: mailbox_is_spam(Junk): 0
在Googlefind很less的结果之后,我很确定,输出结果应该是
mailbox_is_spam(垃圾):1
鸽舍反垃圾邮件configuration如下:
protocol imap { mail_plugins = $mail_plugins antispam } plugin { antispam_debug_target = stdout antispam_verbose_debug = 1 antispam_backend = dspam antispam_signature = X-DSPAM-Signature antispam_signature_missing = error antispam_trash = Trash antispam_spam = Junk antispam_dspam_binary = /usr/bin/dspam antispam_dspam_args = --client;--user=%u;--source=error }
当用Thunderbird手动将消息移动到垃圾文件夹时,会发生以下情况:
Mar 25 13:24:22 mail imap: antispam: mailbox_is_unsure(Junk): 0 Mar 25 13:24:22 mail imap: antispam: mailbox_is_trash(INBOX): 0 Mar 25 13:24:22 mail imap: antispam: mailbox_is_trash(Junk): 0 Mar 25 13:24:22 mail imap: antispam: mail copy: from trash: 0, to trash: 0 Mar 25 13:24:22 mail imap: antispam: mailbox_is_spam(INBOX): 0 Mar 25 13:24:22 mail imap: antispam: mailbox_is_spam(Junk): 0 Mar 25 13:24:22 mail imap: antispam: mailbox_is_unsure(INBOX): 0 Mar 25 13:24:22 mail imap: antispam: mail copy: src spam: 0, dst spam: 0, src unsure: 0 Mar 25 13:24:31 mail imap: antispam: plugin initialising (2.0-notgit) Mar 25 13:24:31 mail imap: antispam: verbose debug enabled Mar 25 13:24:31 mail imap: antispam: "Junk" is exact match spam folder Mar 25 13:24:31 mail imap: antispam: no unsure folders Mar 25 13:24:31 mail imap: antispam: "Trash" is exact match trash folder Mar 25 13:24:31 mail imap: antispam: dspam binary set to /usr/bin/dspam Mar 25 13:24:31 mail imap: antispam: dspam extra arg --client Mar 25 13:24:31 mail imap: antispam: dspam extra arg --user=vmail Mar 25 13:24:31 mail imap: antispam: dspam extra arg --source=error Mar 25 13:24:31 mail imap: antispam: signature header line is "X-DSPAM-Signature"
但是使用dspam_stats检查并不意味着任何培训已经完成。
谢谢你的帮助,拉尔夫
好的,我的设置有两个configuration错误。
首先
我的虚拟用户收件箱位于
/var/mail/vhosts/<domain>/<username>
而不是
/var/mail/vhosts/<domain>/<username>/.INBOX
垃圾文件夹的位置是
/var/mail/vhosts/<domain>/<username>/.Junk
但(或为此) INBOX指向的IMAP名称空间
/var/mail/vhosts/<domain>/<username>/.INBOX
我的configuration必须是
antispam_spam = INBOX/Junk
第二个错误configuration实际上并没有涉及到这个问题,但我仍然会发布答案:
dspam命令的参数是--user <username>而不是--user=<username> (等号是错误的),因此configuration必须是:
antispam_dspam_args = --client;--source=error;--user;%u
代替
antispam_dspam_args = --client;--user=%u;--source=error