• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用maildrop实现域过滤规则

发布: 2007-7-02 21:50 | 作者: admin | 来源: | 查看: 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上测试通过.其他系统应该也一样.
,

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网