以 procmail 實現個人化的郵件過濾

(本文第三次修改於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 搜尋引擎

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *