最近看到论坛里一些人专门问到maildrop的用法问题,而对于邮件过滤这一方面也是比较关注的。我就把我使用maildrop的一点心得写出来。其实我也是从sqwebmail或者wmail的使用中找到的(这也是为什么我之前回复都是让大家装一下wmail或sqwebmail使用一下的原因),所以只涉及到了maildrop的一点点基本用法,希望对大家有所帮助。
首先安装maildrop,这个很简单,先去下载http://class.868cn.com/download/maildrop-1.5.2.20030423.tar.gz
然后解压,进入目录里。/configure make make install
一般就可以安装成功。(当然之前要安装了qmail,vpopmail)安装成功后会在/usr/local/bin目录下生成一个maildrop文件。就是使用它来做过滤的
我还是假使wangxu.com为虚拟域,[email protected]为其中一个用户。下面就对[email protected]所收到的邮件进行一些过滤规则。
进入用户的邮件目录cd /home/vpopmail/domains/wangxu.com/wangxu
建立。qmail文件。
vi .qmail
内容为:
代码:|/usr/local/bin/maildrop ./.mailfilter
注意。qmail文件的属性
chmod 600 .qmail
chown vpopmail:vchkpw .qmail
再建立。mailfilter文件vi .mailfilter内容为:
代码:##Op:contains ##Header:FROM ##Value:[email protected] ##Folder:*收信人拒收您的邮件##From:##PlainString ##Name:过滤发件人包含[email protected]的信件
if ((/^FROM:。*test\@test\.com/))
{ echo “收信人拒收您的邮件”
EXITCODE=77 exit }
##Op:contains ##Header:FROM ##Value:[email protected] ##Folder:。Trash ##From:##PlainString ##Name:将发件人包含[email protected]的信件保存在垃圾箱
if ((/^FROM:。*test\@test\.com/))
{ to “。/Maildir/.Trash/.”
}
to “。/Maildir/.”
其中##后面的都为注释部分,可以不去管它。
if ((/^FROM:。*test\@test\.com/))
{ echo “收信人拒收您的邮件”
EXITCODE=77 exit }这一段表示发信人地址中包含[email protected]的就拒绝接受,并回复发信人一封拒收信件,内容说明原因“收信人拒收您的邮件”。其中的EXITCODE=77不加也可以(过滤整个域的信件也可以这样用,大家自己想想)
if ((/^FROM:。*test\@test\.com/))
{ to “。/Maildir/.Trash/.”
}这一段表示发信人地址包含[email protected]的就自动转移到垃圾箱。
注意最后一句to “。/Maildir/.”
它表示当不符合上面所提到的过滤规则时的邮件就正常的发到[email protected]的信箱里。
这句一定要有,不然会收不到信的。
同时也要注意。mailfilter的属性和。qmail是一样的
chmod 600 .mailfilter
chown vpopmail:vchkpw .mailfilter
下来就发测试信试试吧。
这只是maildrop的一点基本的用法。比较完整的用法大家可以去这里http://www.flounder.net/~mrsam/maildrop/maildropfilter