用procmail做域过滤

王朝other·作者佚名  2008-05-18
窄屏简体版  字體: |||超大  

假设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

代码:

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/

注意这里.和

http://www.chinaunix.net/jh/14/194261.html

相比较,会发现域过滤的.procmailrc少了

代码:

:0

*

./Maildir/

这一段代码

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上测试通过.其他系统应该也一样.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航