字體:  

利用 Procmail 自動幫你分類信件

adj 發表於: 2007-11-29 18:04 來源: ADJ網路控股集團


最近剛好客戶有這樣的需求...例如:

Question:
有廠商向公司下訂單...收件者是經理...不過董事長也想要有這封信...不過董事長不想要所有寄給經理的信他也一份...他只想要這些特定廠商訂單的信件...這時該怎麼做呢?

Answer:
在找了一些資料後...發現利用 Procmail 應該是最簡單的方法...因為他不想要經理的所有信件...所以不能用 .forward  的方式...而且要指定來源信箱...當然在經理Client 端的郵件過濾那邊也可以做...不過董事長不想讓經理知道的話...也許就可以利用 Procmail 的強大功能囉...

不懂有關 Procmail 的設定? 可以先參考之前的說明囉...
http://www.adj.idv.tw/phpBB2/viewtopic.php?t=946

做法...底下以自己的設定為例:

#vi /etc/procmailrc
加入這一行...

CODE:

#轉信給本機帳號
:0 c
* ^From:.*adj@msa.hinet.net
* ^To:.*adj@adj.idv.tw
service
這樣的話...只要來源是 adj@msa.hinet.net 的信件...寄給 adj@adj.idv.tw 的信...都會轉寄一份給本機的帳號 service...

CODE:

#轉信給外部帳號
:0 c
* ^From:.*adj@msa.hinet.net
* ^To:.*adj@adj.idv.tw
! adj@msa.hinet.net
這樣就會把信轉寄一份給外部信箱 adj@msa.hinet.net

CODE:

#直接導信給本機帳號...收件者收不到
:0 Hw
* ^From:.*adj@msa.hinet.net
* ^To:.*adj@adj.idv.tw
service
這樣的話...收件者 adj@adj.idv.tw 會收不到信...直接將信寄給 service
注意它只差在 ":0 Hw" 而已...

CODE:

#轉信包含中文主旨
:0 c
* ^From:.*adj@msa.hinet.net
* ^To:.*adj@adj.idv.tw
* ^Subject:.*?B?rXGz5g=
service
?B?rXGz5g= 是"訂單"的意思

CODE:

#來源有兩個E-Mail 以上
:0 c
* ^From:.*adj@msa.hinet.net
* ^To:.*adj@adj.idv.tw
service

:0 c
* ^From:.*adj@giga.net.tw
* ^To:.*adj@adj.idv.tw
service
以上是如果要過濾來自兩個不同來源的話...必須多寫一段...像如果不止service 要收的話...也是多加上一段去就可以...

目前這樣的做法可以處理比較單純的過濾...如果還有其它需求的話...就要再Try 看看囉..
有興趣的人可以試試看...滿好玩的...^_^...
要是大家有更好的 idea ...也歡迎一起討論囉...