Postfix过滤垃圾邮件

在main.cf配置文件中的header_checks参数可以扫描邮件头,在邮件中查找特定的词语,包含这些词语的邮件将不被发送。下面是header_checks参数格式: header_checks=regexp:/etc/postfix/header_checks header_checks查找表规则表达式为: parttern action 注:parttern是对字段头进行匹配的规则表达式
action是当parttern符合时候采取的动作,有三种
.REJECT----拒绝邮件;
.OK----接受邮件;
.IGNORE---不考虑邮件头中的头字段 例如:header_checks有如下格式:
/^Subject: make money/ REJECT
/^Subject: our valued customer/ REJECT 则会拒绝more money,our valued customer 标题的信笺。  
postfix还提供body_checks参数,该参数对邮件整体内容与文件中列出的词语进行匹配扫描,起用法与header_checks参数相同。 注意:body_checks消耗大量邮件系统处理时间,请谨慎使用。     POSTFIX 补充   『.』:代表任意字元 『*』:代表重复零个或多个前一个RE的字元,例如『.*』则代表任意零个或多个字元的意思; 『$』:代表这一行的最后一个字元必须要符合这个字元的意思, /规则/动作显示在登录档里面的讯息 请注意,要使用两个『 / 』将规则包起来喔!举个例子来说明:例如我想要(1)抵挡掉标题为A funny game的信件,(2)并且在登录档里面显示drop headerdeny,我可以这样写:
             /^Subject:.*A funny game/ DISCARD drop header deny      *如果有两条以上的规则,那么就必须要使用if了,例如底下的案例:
             if /^Content/-Type:.*audio.*x/-midi/
             /^.*name/=.*/.scr/ DISCARD drop the header inavalid
             endif上面的意思是,当一封邮件里面同时包含『 Content-Type:audio.x-midi 』与『name=*.scr』时,该封信件就会被丢弃了!那么如果有三条以上的规则时呢?呵呵!就是使用多个if来进行啦!
             if /rule1/
             if /rule2/
             /rule3/动作显示字眼
             endif
             endif不过请特别留意,这个if ....endif的设定我仅在2.x版本上面试过,是没有问题的,不过,已经有很多的朋友提出说,在1.xx版本上面执行时会有问题发生,所以如果您的 Postfix不是2.xx版本,那么底下鸟哥列出的两个范例就参考看看即可,不可直接套用喔!关于动作有底下几个动作:              REJECT :将该封信件退回给原发信者;
             WARN :将信件收下来,但是将该封信的基本资料记录在登录档内;
             DISCARD:将该封信件丢弃,并不给予原发信者回应!一般来说我是比较喜欢以DISCARD将信件直接丢弃的啦!

你可能感兴趣的:(Postfix过滤垃圾邮件)