在CU各位朋友的帮助下,已经成功实现使用procmail过滤 邮件主题, 发件人地址. 域,附件等功能.现在贴出来,供大家参考.
首先确定服务器是否安装procmail包,可到此处下载procmail-3.22-7.i386.rpm:
ftp://202.194.116.12/pub/RedHat/rpms/
rpm -ivh procmail-3.22-7.i386.rpm
如果已安装显示如下,并可以在/etc下找到procmailrc文件(如无可以自己编辑)
[root@jason tmp]# rpm -aq|grep procmail
procmail-3.22-7
root@jason etc]# ls procmailrc -l
-rw-r--r-- 1 root root 413 10月 22 11:32 procmailrc
root@jason etc]# vi procmailrc
#Begin /etc/procmailrc
ORGMAIL /var/spool/mail/$LOGNAME #指定用户邮件目录
MAILDIR $HOME/
Sendmail /usr/sbin/sendmail #指定sendmail所在目录
:0b: #过滤主题为Thank you的邮件
*^Subject:.Thank you
/dev/null
#过滤从tony@microsoft.com发送的邮件 也可编辑/etc//mail/access文件添加
tony@microsoft.com reject 然后运行makemap hash access.db :0 *^From.* tony@microsoft.com { :0 /dev/null } #过滤从域microsoft.com发送的邮件也可编辑/etc//mail/access文件添加 @microsoft.com &nbs p; reject 然后运行makemap hash access.db :0 *^From.*@microsoft.com { :0 /dev/null } :0 # 过滤用户名为tony所有域的邮件 *^From.* tony { :0 /dev/null } :0 B #过滤附件后缀名为exe等的邮件 * ^Content-Type:.* * name=.*\.(hta|com|pif|vbs|vbe|js|jse|exe|bat|cmd|vxd|scr|shm|dll|SCR) /dev/null 以上仅是我个人的一点经验,请大家把交流一下防止垃圾邮件的办法. seacaptain 回复于:2003-10-22 14:06:58 在qmail+vpopmail的环境里怎样使用procmail reidstone 回复于:2003-10-22 16:50:44 [quote:058dec3f77="seacaptain"]在qmail+vpopmail的环境里怎样使用procmail[/quote:058dec3f77] 在虚拟域下设定.qmail-(user name)文件,如: /home/vpopmail/domains/test.com下有用户aaa,则建文件.qmail-aaa,文件内容如下: |/usr/bin/procmail -p -m ./aaa/Maildir/.procmailrc 在用户aaa的邮箱目录下建过滤规则文件,具体请参考楼定, liuwping 回复于:2003-10-23 08:25:17 总算对 PROCMAIL 有点了解了, 请问如要在 QMAIL VPOPMAIL 下,用PROCMAIL 的过滤怎样对QMAIL 的整个DOMAIN 都起作用, 因为这样我不用建立每个USER的。QMAIL-USERNAME 文件啊! 谢谢! liuwping 回复于:2003-10-23 08:29:58 你 好,请问可以设定 PROCMAIL 将 寄件者是 USER1@DOMAIN。COM 都转寄给 USER2@DOMAIN。COM ? 感谢! reidstone 回复于:2003-10-23 08:44:19 [quote:ec9dc47bb6="liuwping"]你好,请问可以设定 PROCMAIL 将 寄件者是 USER1@DOMAIN。COM 都转寄给 USER2@DOMAIN。COM ? 感谢![/quote:ec9dc47bb6] 系统级的应用我也不会,呵呵~~ 用户级的我还是看了好多资料和帮助才了解的,大部分资料对于系统级的应用不是没有,就是说没有完成,:( :0: * ^From.user1@domain.com ! user2@domain.com liuwping 回复于:2003-10-23 09:01:47 :0: * ^From.user1@domain.com ! user2@domain.com 请问上面的意思是不是 寄给 user1@domain.com 的电邮就 给user2@domain.com 请问上面是 COPY一份给 user2@domain.com, 还是直接转给 user2@domain.com 本来给 user1@domain.com 的邮箱中就没了啊! 感谢你抽空给我看看吧,我找这个功能好久了,刚学LINUX,谢! reidstone 回复于:2003-10-23 09:19:31 直接转发的 如果是要同时发送到多个用户的话 * ^From.user1@domain.com ! (原接收地址) user2@domain.com user3@domain.com ... 相关的应用请参考下面的资料 http://www.stimpy.net/procmail/tutorial/ref/ liuwping 回复于:2003-10-23 10:05:52 感谢中,谢! liuwping 回复于:2003-10-23 10:54:55 can_not_open_new_email_file_errno=2_file=|/usr/bin/procmail_-p_-m_/home/vpopmail/domains/luckytoy.com.hk/backup/Maildir/.procmailrctmp/1066877567.23108.redhat2.luckytoy.com.hk,S=1588/did_0+0+1/ liuwping 回复于:2003-10-23 11:03:21 在MAILLOG 中发现在有上面错误, 我的环镜是: QMAIL VPOPMAIL MYSQL 下用QMAILSCANNER 并有设定QMAIL 下发的所有电邮都给一份BAKCUP@luckytoy.com 我在 /home/vpopmail/domains/luckytoy.com.hk/backup/ 下建 。QMAIL 文件,文件内容是 |/usr/bin/procmail -p -m /home/vpopmail/domains/luckytoy.com.hk/backup/.procmailrc 。PROCMAILRC 的文件内容是: :0: * ^From.liuwping@luckytoy.com.hk ! wongjun@luckytoy.com.hk 即将 liuwping@luckytoy.com.hk寄出的电邮(因为所有人发电邮BACKUP都有一份的)给一份给 wongjun@luckytoy.com.hk, 但出现上面错误 我主要想做的是 上面的功能, 谁能给我看看,还有其它方法,或怎样改吗? 谢了! reidstone 回复于:2003-10-23 14:22:34 你的.qmail-backup文件应该在虚拟域目录下,即:/home/vpopmail/domains/luckytoy.com.hk/,而.procmailrc文件应该建在backup/Maildir/目录下,如果是将寄出的信做过滤,我也不清除的,呵呵~~ liuwping 回复于:2003-10-23 14:57:30 请问你有QQ吗? 我的QQ 37193287 有空吗? 想请教你一下! 我的QMAILBACKUP 是QMAIL 本身的功能, 即KEEP ALL IN AND OUT MAIL 到 backup@luckytoy.com.hk 下的, 所以我要在BACKUP 下再过滤, 将liuwping@luckytoy.com.hk 发出的电邮都 给一份给 wongjun@luckytoy.com.hk 的, 请问现在 我这种情况, .qmail 同 .procmailrc 文件都要放到:/home/vpopmail/domains/luckytoy.com.hk/backup/Maildir 下吗? 谢! liuwping 回复于:2003-10-23 14:58:25 我在线等! reidstone 回复于:2003-10-23 15:00:59 我是通过代理上网,公司不让用QQ的,你是不是修改qmail的extra.h文件来备份邮件的? liuwping 回复于:2003-10-23 15:19:44 正是的, 这样将所有的电邮都给 backup@luckytoy.com.hk 之后我想在 BACKUP 邮箱中 作过滤, 将 一些人发的所有电邮 给另一个人,上面的列子是 将liuwping 发的电邮都给 wongjun ,这样可以做到 SEND A COPY 功能啊, 也就是将 一些用户只要他发电邮都 自动给他的上司一份电邮! 这个功能 在企业内很有用的, 能帮忙解决吗? reidstone 回复于:2003-10-23 15:31:32 这好像侵权哦,呵呵 既然你已经修改了extra.h文件,你发邮件的时候已经自动发了一个COPY过去啊,还要加什么规则啊,让你的老板用log用户登录就可以看了啊 liuwping 回复于:2003-10-23 15:54:01 要看的人不是一个,即BACKUP 中的所有电邮不能给一个人看, 不是给给BOSS 看,是自已给他的上司,上司的自动给他的上司, 如全部给BOSS 看,他哪有时间,他只是看他直属的几个经理, 经理的只看他下的主管,主管看他下的马仔, 这样只是方便而已, 因为彼此间不需问 “你那个什么事搞定了没有?” ,因为下属发的电邮上司都可以看到,这样办公室中好安静的,并是有条有理,因为有明文电邮作证, 如口头讲,有时下属忘了,或下属讲上司没同他讲,有时就是有理讲不清,有了电邮后,大家做事都通过电邮, 这就是电邮的用途吧, BOSS 同过电邮可知天下事啊! 有SEND A COPY 功能的电邮SERVER 4年前国外的软件很多有的, 在WINDOWS下用的 FTGATE OFFICE 都有的!所以没这个功能 我们公司不用QMAIL, 我都搞这个功能2个月了,还搞不定,麻烦你们想想办法吧! reidstone 回复于:2003-10-23 16:41:33 也很简单的,只要在这个备份用户下设置过滤规则就可以啊,相关的发件人和收件人的邮件COPY发送到指定的用户邮箱里就可以了哦 liuwping 回复于:2003-10-23 16:55:30 我现在就是不知具体怎么写啊,能帮我抽空写写吗,我对写那些不会啊, 将liuwping@luckytoy.com.hk 发的电邮都给 wongjun@luckytoy.com.hk 就可以了! 谢谢先! 帮帮我吧! liuwping 回复于:2003-10-23 17:06:59 总是在MAILLOG 中发现出现 can_not_open_new_email_file_errno=2_file=|/usr/bin/procmail_-p_-m_/home/vpopmail/domains/luckytoy.com.hk/backup/Maildir/.procmailrctmp/1066877567.23108.redhat2.luckytoy.com.hk,S=1588/did_0+0+1/ 这个错误,估计是什么问题啊!~ reidstone 回复于:2003-10-24 08:49:27 [quote:76b7a01363="liuwping"]我现在就是不知具体怎么写啊,能帮我抽空写写吗,我对写那些不会啊, 将liuwping@luckytoy.com.hk 发的电邮都给 wongjun@luckytoy.com.hk 就可以了![/quote:76b7a01363] 如果备份用户为backup,则在虚拟域下建文件.qmail-backup,内容如下: |/usr/bin/procmail -p -m ./backup/Maildir/.procmailrc 而backup的.procmailrc过滤规则为: VERBOSE=off PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin #LOGFILE=/var/log/procmail.log MAILDIR="./backup/Maildir/" :0 * ^From.*liuwping ! wongjun(只转发) ! liuwping wongjun(同时发送) liuwping 回复于:2003-10-24 09:20:27 感谢, 我试试先! liuwping 回复于:2003-10-24 13:41:51 感谢reidstone ,总算成功了!

