最近看到论坛里一些人专门问到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为虚拟域,wangxu@wangxu.com为其中一个用户.下面就对wangxu@wangxu.com所收到的邮件进行一些过滤规则.
进入用户的邮件目录
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:test@test.com
##Folder:*收信人拒收您的邮件
##From:
##PlainString
##Name:过滤发件人包含test@test.com的信件
if ((/^FROM:.*test\@test\.com/))
{
echo "收信人拒收您的邮件"
EXITCODE=77
exit
}
##Op:contains
##Header:FROM
##Value:test@test.com
##Folder:.Trash
##From:
##PlainString
##Name:将发件人包含test@test.com的信件保存在垃圾箱
if ((/^FROM:.*test\@test\.com/))
{
to "./Maildir/.Trash/."
}
to "./Maildir/."
其中##后面的都为注释部分,可以不去管它.
if ((/^FROM:.*test\@test\.com/))
{
echo "收信人拒收您的邮件"
EXITCODE=77
exit
}
这一段表示发信人地址中包含test@test.com的就拒绝接受,并回复发信人一封拒收信件,内容说明原因"收信人拒收您的邮件".其中的EXITCODE=77不加也可以(过滤整个域的信件也可以这样用,大家自己想想)
if ((/^FROM:.*test\@test\.com/))
{
to "./Maildir/.Trash/."
}
这一段表示发信人地址包含test@test.com的就自动转移到垃圾箱.
注意最后一句to "./Maildir/."
它表示当不符合上面所提到的过滤规则时的邮件就正常的发到wangxu@wangxu.com的信箱里.
这句一定要有,不然会收不到信的.
同时也要注意.mailfilter的属性和.qmail是一样的
chmod 600 .mailfilter
chown vpopmail:vchkpw .mailfilter
下来就发测试信试试吧.