用maildrop實現域過濾規則
發表于:2007-07-02來源:作者:點擊數:
標簽:
時候整個域的管理都要用到過濾規則.琢磨了一下,把我的實現方法整理出來,請大家指正. 先安裝maildrop,不重復了 進入域所在目錄 cd /home/vpopmail/domains/xxx.com 編輯.qmail-default文件 vi .qmail-default 內容為: |/usr/local/bin/maildrop ./.mailfilter
時候整個域的管理都要用到過濾規則.琢磨了一下,把我的實現方法整理出來,請大家指正.
先安裝maildrop,不重復了
進入域所在目錄
cd /home/vpopmail/domains/xxx.com
編輯.qmail-default文件
vi .qmail-default
內容為:
|/usr/local/bin/maildrop ./.mailfilter
| /home/vpopmail/bin/vdelivermail @#@# bounce-no-mailbox
建立過濾規則文件.mailfilter
vi .mailfilter
內容請參考
http://www.chinaunix.net/jh/14/192282.html
但有點注意,此時內容最后不能加to "./Maildir/"(在單用戶中是為了把不符合過濾規則的信件發到用戶目錄里,而現在不符合過濾規則的信件是要去執行.qmail-default的| /home/vpopmail/bin/vdelivermail @#@# bounce-no-mailbox這句話)
同樣注意.mailfilter的屬性
chmod 600 .mailfilter
chown vpopmail:vchkpw .mailfilter
這樣通常情況下,就會對整個域做過濾了.但這里有個小問題.假如某個用戶做了轉發或者別名的話,域目錄下會生成.qmail-user文件,這樣該用戶郵件到達時,就會去執行.qmail-user文件的內容,導致無法進行過濾.
所以需要注意的就是,在設置別名或轉發的時候,要在生成的.qmail-user文件里也加上這一句
|/usr/local/bin/maildrop ./.mailfilter
保證郵件先進行過濾再分發到用戶目錄,這樣就可以實現了.
假設qmail虛擬域為wangxu.com,現要整個域針對主題包含test的郵件進行過濾攔截,被過濾攔截的郵件均保存在/home/vpopmail/domains/wangxu.com/spammail目錄下,以msg.* 命名的文件中,具體實現過程如下:
1、cd /home/vpopmail/domains/wangxu.com/
touch .procmai
lrc
chown vpopmail:vchkpw .procmailrc
mkdir spammail #被過濾文件的存放處
chown vpopmail:vchkpw spammail
touch /var/log/procmail.log
chown vpopmail:vchkpw /var/log/procmail.log
建立.procmailrc文件
vi .procmailrc
[code:1:31f83bb3df]MAILDIR=./
VERBOSE=off
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
LOGFILE=/var/log/procmail.log
:0:
* ^Subject:.*test
./spammail/ [/code:1:31f83bb3df]
注意這里.和
http://www.chinaunix.net/jh/14/194261.html
相比較,會發現域過濾的.procmailrc少了
[code:1:31f83bb3df]:0
*
./Maildir/[/code:1:31f83bb3df]
這一段代碼
2.
修改.qmail-default文件
joe .qmail-default
| preline /usr/local/bin/procmail -t ./.procmailrc
| /home/vpopmail/bin/vdelivermail @#@# bounce-no-mailbox
針對以上信息,系統可以對wangxu.com整個域所接收的郵件進行主題含有test的郵件過濾和攔截.
可以和
http://www.chinaunix.net/jh/14/195027.html
這篇比較一下,應該會很容易看明白實現的思路的
同樣也要注意一點.
假如某個用戶做了轉發或者別名的話,域目錄下會生成.qmail-user文件,這樣該用戶郵件到達時,就會去執行.qmail-user文件的內容,導致無法進行過濾.
所以需要注意的就是,在設置別名或轉發的時候,要在生成的.qmail-user文件里也加上這一句
| preline /usr/local/bin/procmail -t ./.procmailrc
保證郵件先進行過濾再分發到用戶目錄,這樣就可以實現了.
以上的這些以及以前寫的幾篇用maildrop和procmail實現過濾的辦法,都在freebsd上
測試通過.其他系統應該也一樣.
,
原文轉自:http://www.kjueaiud.com