- 论坛徽章:
- 1
|
原帖由 linuxren 于 2006-1-24 19:31 发表
sendmail系统中用procmail过滤,当挡掉有后缀带.zip的附件的邮件后,怎样实现通知邮件的发送者,请问大家在procmail中如何写这一句,感谢!!
你檔掉的時候做一個記錄 (我是做到 mysql 中留記錄)
- # 主旨,parser_subj 是做 QP/MIME decode
- SUBJ=`/etc/parser_subj "$tmp"| sed -e "s/[\$,\(,\),\',\\]//g"`
- # 寄件人
- FROM=`formail -zxFrom:| sed -e 's/.*<\(.*\)>.*/\1/g'`
- # 收件人
- TO=`formail -zxTo:|tr ',' '\n'| sed 's/\(.*\) \(.*\)/\2/'`
- # 暫存檔名
- FILE=`echo $HOME`/procmail/mail_folder/mail-`date +%Y%m%d%H%I%S`-`echo $$`.eml
- # 將信件另存新檔
- tmp=`formail > $FILE; chmod 644 $FILE`
- # mysql 連接參數
- MYSQL="mysql -h MY_HOST -u abel -pXXXXX procmail"
- # 主旨 spam
- :0 HD
- * ^Subject: .*spam.*
- {
- # 做 mysql 記錄
- :0 fw
- | echo "insert into SPAM(MAIL_FROM,RCPT_TO,SUBJ,FILE_NAME,MAIL_TYPE,USERNAME,REASON,PATTEN,IP,MAIL_SIZE) values('$FROM ','$TO ','$SUBJ ','$FILE',1,'$LOGNAME','SPAM','標題 SPAM','$IP',$MAIL_SIZE)" | $MYSQL
- # 丟掉
- :0
- /dev/null
- }
复制代码
您可以自己參考看看...
另外給您一個有用的 rule
- # 白名單記錄, LOGNAME 值為收件者,主旨或是收件人符合條件直接放行,條件直接存於 MYSQL 中
- WHITE_LIST=`echo "SELECT WHITE_NAME FROM WHITE_LIST WHERE USERNAME='$LOGNAME' AND instr('$FROM', WHITE_NAME ) or instr('$SUBJ', WHITE_NAME )"| $MYSQL | tr '\n' '|' ; echo "aaafgaafaaaafaazzzzzzzzzggggggggg"`
- :0 H
- * $($WHITE_LIST)
- $ORGMAIL
复制代码 |
|