我已经在我的centos 5.10上安装了postfix,dovecot,Clamav,Spamassassin和amavisd-new.教程在这里:http://catatanlepas.com/komputer/aplikasi/server-mail/postfix/359-instalasi-postfix-menggunakan-dovecot-di-centos-5-5
我只是没有在该教程上安装Razor,Pyzor,dan DCC.
在/ var/log/maillog中一切正常,如果垃圾邮件没有进入收件箱,但我想将垃圾邮件移动到垃圾邮件文件夹.
我的问题是:1.如何在我的网络邮件上自动创建垃圾邮件文件夹,因为它只是创建收件箱,草稿和已发送项目,我的网络邮件上没有垃圾邮件文件夹.2.如何将垃圾邮件移动到每个用户的垃圾邮件文件夹(我在/ var/vmail上创建用户)
请帮助我,我在谷歌搜索了5天,我在这堆栈:(
谢谢.
对于Dovecot 2.1+修改/etc/dovecot/dovecot.conf:
namespace { type = private separator = . inbox = yes mailbox Trash { auto = subscribe # autocreate and autosubscribe special_use = \Trash } mailbox Drafts { auto = subscribe special_use = \Drafts } mailbox Sent { auto = subscribe special_use = \Sent } mailbox Junk { auto = subscribe special_use = \Junk } } plugin { sieve = /home/spam/default.sieve } protocol lda { auth_socket_path = /var/run/dovecot/auth-master mail_plugins = $mail_plugins sieve }
然后/etc/postfix/master.cf - 添加
spamassassin unix - n n - - pipe user=vmail argv=/usr/bin/spamc -f -e /usr/libexec/dovecot/deliver -f ${sender} -d ${recipient}
(!!)user = vmail - 将用户更改为为spamassassin设置的用户
并将内容过滤器添加到smtp
smtp inet n - - - - smtpd -o content_filter=spamassassin
在/etc/mail/spamassassin/local.cf中
add_header all Status _YESNO_, score=_SCORE_ required=_REQD_ version=_VERSION_ #rewrite_header Subject *****SPAM***** bayes_ignore_header X-Bogosity bayes_ignore_header X-Spam-Flag bayes_ignore_header X-Spam-Status
我将X-Spam标题添加到将用于稍后筛选过滤的消息中重新启动spamassassin,重新加载dovecot和postfix
将自动创建垃圾文件夹.所有垃圾邮件将在本地传递到邮箱垃圾
我还添加了筛选过滤器的示例,将所有标记为垃圾邮件(上面的spamassassin配置)移动到垃圾邮件文件夹.
require "fileinto"; if exists "X-Spam-Flag" { if header :contains "X-Spam-Flag" "NO" { } else { fileinto "Junk"; stop; } }
我 - 设置您的电子邮件发送以使用Dovecot LDA:
OP链接的原始网站是离线的,但我相信电子邮件的发送是通过sendmail
程序进行的,应该通过Dovecot LDA完成您的需要.(避免电子邮件原始标题更改).
编辑Postfix master.cf
(开头):
smtp inet n - - - - smtpd -o content_filter=spamassassin
在文件的末尾:
spamassassin unix - n n - - pipe flags=DROhu user=vmail:vmail argv=/usr/bin/spamc -f -e /usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop}
现在编辑Postfix main.cf
并添加(可选,检查(3)下面):
spamassassin_destination_recipient_limit = 1
现在,您的电子邮件将通过Dovecot LDA发送,不会更改标题.对于好奇的,这里是我的配置的一些细节:
此配置可以与加号/子寻址/收件人分隔符一起使用(发送到的电子邮件user+nospam@example.com
将被发送到user@example.com
收件箱中) - 这就是为什么我添加-d ${user}@${nexthop}
这将删除+
和域之前的所有内容.要启用此功能,也一定要加recipient_delimiter = +
进main.cf
;
我的旗帜flags=DROhu
,他们没有添加任何异常,但他们可以在这里理解:http://www.postfix.org/pipe.8.html ;
spamassassin_destination_recipient_limit = 1
需要确保每个收件人都被spamassassin单独处理.由于D
上面的标志(包括X-Original-To
标题),这是必需的.如果你不关心这个标题,你可以删除标志,这是不需要的.
II - 将垃圾邮件移至Junk
文件夹:
(在@Electronic Technologies的帮助下,访问/sf/ask/17360801/)
您还可以配置Dovecot将检测到的垃圾邮件移动到Junk
IMAP文件夹.请按照:
编辑/etc/dovecot/conf.d/15-mailboxes.conf
和取消注释/添加Junk
文件夹(应该在namespace inbox
附近的部分mailbox Trash
):
mailbox Junk { special_use = \Junk }
安装dovecot-sieve
使用apt-get install dovecot-sieve
;
编辑/etc/dovecot/conf.d/90-sieve.conf
并评论该行:#sieve = ~/.dovecot.sieve
编辑/etc/dovecot/conf.d/90-plugin.conf
为:
plugin { sieve = /etc/dovecot/sieve/default.sieve }
编辑/etc/dovecot/conf.d/15-lda.conf
并/etc/dovecot/conf.d/20-lmtp.conf
匹配:
protocol lda/lmtp { # do not copy/paste this line! mail_plugins = $mail_plugins sieve }
警告:您可能在protocol
选择下有其他设置,保留它们.protocol lda/lmtp
文件中的行更改,保留原始文件.
创建文件夹 /etc/dovecot/sieve/
/etc/dovecot/sieve/default.sieve
使用此内容创建文件:
require "fileinto"; if header :contains "X-Spam-Flag" "YES" { fileinto "Junk"; }
将文件夹权限更改为您的虚拟电子邮件用户和组,如:chown vmail:vmail /etc/dovecot/sieve/ -R
.如果你错过了这个鸽子会抱怨!
重启一切: service postfix restart; service dovecot restart; service spamassassin restart
尝试向服务器上的某些电子邮件发送电子邮件(从外部服务器),首先是普通电子邮件,然后是另一个电子邮件:XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.第二封电子邮件应该进入Junk
文件夹,第一封应该进入收件箱.
如果这在您第一次尝试时不起作用,请查看日志:tail -f /var/log/mail.log
并在tail
运行时发送电子邮件.一个好的工作设置应报告stored mail into mailbox 'INBOX'
或stored mail into mailbox 'Junk'
.