繁体中文
设为首页
加入收藏
当前位置:服务器技术首页 >> 邮件服务 >> procmail过滤邮件之我所见.

procmail过滤邮件之我所见.

2004-11-15 08:00:00  作者:  来源:互联网  浏览次数:0  文字大小:【】【】【
简介:在CU各位朋友的帮助下,已经成功实现使用procmail过滤 邮件主题, 发件人地址. 域,附件等功能.现在贴出来,供大家参考. 首先确定服务器是否安装procmail包,可到此处下载procmail-3.22-7.i386.rpm: ftp://202.194.11...
关键字:procmail 邮件

在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 ,总算成功了!

责任编辑:admin
相关文章