Maildrop的一些基本用法

12/3/2006来源:Qmail人气:6941

最近看到论坛里一些人专门问到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

下来就发测试信试试吧.

这只是maildrop的一点基本的用法.比较完整的用法大家可以去这里
http://www.flounder.net/~mrsam/maildrop/maildropfilter.html,