用maildrop实现域过滤规则 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 用maildrop实现域过滤规则 (http://www.webasp.net/article/11/10236.htm) |
| -- 作者:未知 -- 发布日期: 2004-06-10 |
| 时候整个域的管理都要用到过滤规则.琢磨了一下,把我的实现方法整理出来,请大家指正. 先安装maildrop,不重复了 进入域所在目录 cd /home/vpopmail/domains/xxx.com 编辑.qmail-default文件 vi .qmail-default 内容为: |/usr/local/bin/maildrop ./.mailfilter | /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox 建立过滤规则文件.mailfilter vi .mailfilter 内容请参考 http://www.chinaunix.net/jh/14/192282.html 但有点注意,此时内容最后不能加to "./Maildir/"(在单用户中是为了把不符合过滤规则的信件发到用户目录里,而现在不符合过滤规则的信件是要去执行.qmail-default的| /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox这句话) 同样注意.mailfilter的属性 chmod 600 .mailfilter chown vpopmail:vchkpw .mailfilter 这样通常情况下,就会对整个域做过滤了.但这里有个小问题.假如某个用户做了转发或者别名的话,域目录下会生成.qmail-user文件,这样该用户邮件到达时,就会去执行.qmail-user文件的内容,导致无法进行过滤. 所以需要注意的就是,在设置别名或转发的时候,要在生成的.qmail-user文件里也加上这一句 |/usr/local/bin/maildrop ./.mailfilter 保证邮件先进行过滤再分发到用户目录,这样就可以实现了. 假设qmail虚拟域为wangxu.com,现要整个域针对主题包含test的邮件进行过滤拦截,被过滤拦截的邮件均保存在/home/vpopmail/domains/wangxu.com/spammail目录下,以msg.* 命名的文件中,具体实现过程如下: 1、cd /home/vpopmail/domains/wangxu.com/ touch .procmailrc chown vpopmail:vchkpw .procmailrc mkdir spammail #被过滤文件的存放处 chown vpopmail:vchkpw spammail touch /var/log/procmail.log chown vpopmail:vchkpw /var/log/procmail.log 建立.procmailrc文件 vi .procmailrc [code:1:31f83bb3df]MAILDIR=./ VERBOSE=off PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin LOGFILE=/var/log/procmail.log :0: * ^Subject:.*test ./spammail/ [/code:1:31f83bb3df] 注意这里.和 http://www.chinaunix.net/jh/14/194261.html 相比较,会发现域过滤的.procmailrc少了 [code:1:31f83bb3df]:0 * ./Maildir/[/code:1:31f83bb3df] 这一段代码 2. 修改.qmail-default文件 joe .qmail-default | preline /usr/local/bin/procmail -t ./.procmailrc | /home/vpopmail/bin/vdelivermail '' bounce-no-mailbox 针对以上信息,系统可以对wangxu.com整个域所接收的邮件进行主题含有test的邮件过滤和拦截. 可以和 http://www.chinaunix.net/jh/14/195027.html 这篇比较一下,应该会很容易看明白实现的思路的 同样也要注意一点. 假如某个用户做了转发或者别名的话,域目录下会生成.qmail-user文件,这样该用户邮件到达时,就会去执行.qmail-user文件的内容,导致无法进行过滤. 所以需要注意的就是,在设置别名或转发的时候,要在生成的.qmail-user文件里也加上这一句 | preline /usr/local/bin/procmail -t ./.procmailrc 保证邮件先进行过滤再分发到用户目录,这样就可以实现了. 以上的这些以及以前写的几篇用maildrop和procmail实现过滤的办法,都在freebsd上测试通过.其他系统应该也一样. , |
| webasp.net |