- 论坛徽章:
- 1
|
如果邮件来源包括test.com:
if(/^From:.*test.com*/ || /^From:.*test.com*/ || /^From:.*TEST.COM*/)
==> 這個也只能從 Mail Header 中來看,不代表就一定是 Envelope Sender
==> 要我來用這個 test.com 一定寫成一個變數且忽略大小寫, Ex:
WHITE_LIST=`cat list_file1|tr '\n' '|'`
BLACK_LIST=`cat list_file2|tr '\n' '|'`
if (/^From:.*($WHILE_LIST).*/ <== 這裏是 : D , 連在一起,因為轉成表情符號, 意指忽略大小寫
這邊通常我都是用 mysql 而不是由 file 而來,如此 user 做 White/Black List 的 增/刪/修 都會容易處理許多
其他就同理了,不管是 To, Subject 等等的,用這類的東西最好先把 變數的使用方法及語法的定義等都看清楚,可以
節省自己許多事的
Ex: 我的 mysql + procmail 例子:
- MYSQL="mysql -h $host -u abel -pXXXXX $DB"
- WHITE_LIST=`echo "SELECT WHITE_NAME FROM WHITE_LIST WHERE USERNAME='$LOGNAME' AND instr(lower('$FROM'),lower(WHITE_NAME)) or instr(lower(WHITE_NAME),lower('$SUBJ') )"| $MYSQL | tr '\n' '|' ; echo "jklrjkljrkl295jljkfa"`
- :0 H
- * $($WHITE_LIST)
- $ORGMAIL
复制代码
只要郵件表頭 (header) 中 From/Subject 含了 mysql 取出來的字,那就算是白名單
夠簡單吧,不過這可是要經過無數的焠練才能理解
[ 本帖最后由 abel 于 2007-6-5 11:02 编辑 ] |
|