(本文第三次修改於2004-03-23)
[Author & License]
本文的作者是
kmd@ccca.ntut.edu.tw(Kuo-Cheng Yeu)
本文所採用的執照是
GNU Free Documentation License
Version 1.2, November 2002
http://www.gnu.org/licenses/fdl.txt
[前言]
隨著 email 的普及(及濫用?)
每天收到的電子郵件中含有廣告信及病毒的情況是在所難免,
最近週遭有人抓取工作站上的郵件,被 client 端的 mail scanner 攔截下來,
不斷出現的 pop-up視窗實在是不堪其擾。
拜請咕狗大神(Google),拜讀了前人的一些文章之後,
總算歸納出了一個簡單的 solution。
這篇文章對你有用的大前提是,你必須有一個可登入的工作站帳號
如果你的所用的工作站很少接到病毒信或是廣告信,那恭喜你,
工作站的管理員可能已經設定好 system-wide 的 mail filter。
[系統需求]
*基本上,絕大部分 *NIX-like(或任何相容 POSIX) 的系統都可以安裝
*一個與 RFC-822 相容的 MTA (Sendmail、Postfix 或其他)
*一套完整且功能正常的C compiler
[作業環境]
*筆者使用的是FreeBSD 4.8-RELEASE
*tcsh 6.12
*gcc 2.95.4
[安裝]
1.到官方網站抓取 source code,並解壓縮在你的家目錄,
type: tar zxvf procmail-3.22.tar.gz
寫這篇文章時最新的穩定版本是3.22。
2.
type: cd procmail-3.22 ; make
編譯後,如果沒有問題,可以在 new 這麼目錄底下看到編譯好的檔案
type: cp new/* ~bin/
把編譯好的 binary copy 到 $HOME/bin
3.1如果你的MTA是sendmail或postfix,edit $HOME/.forward: 加入以下敘述
“|exec /path/to/procmail ||exit 75”
3.2如果你的MTA是qmail,edit $HOME/.fprocmail: 加入以下敘述
“|preline /path/to/procmail”
4.edit $HOME/.procmailrc: 自訂 rule set
PATH=$HOME/bin: /usr/bin: /bin: /usr/local/bin:.
SHELL=/bin/sh
MAILDIR=$HOME/mail
DEFAULT=$MAIL
LOGFILE=/dev/null#過濾標題有下列字串的
:0:
* ^Subject:.*(sex|pron|virgin)
/dev/null#過濾附件有下列副檔名的
:0:
* ^.*name=.*\.(hta|com|pif|vbs|vbe|js|jse|exe|bat|cmd|vxd|scr|shm|dll|SCR)/dev/null
使用者可以自行增加其他的 rule set
5.大功告成!!
[參考資料]
http://www.procmail.org Procmail 的官方網站
http://freebsd.sinica.edu.tw FreeBSD 的台灣站,中研院
http://www.google.com Google 搜尋引擎