電子郵件是互聯網上最重要的通訊手段和工具。從電子郵件誕生的那天起,無聊的垃圾郵件就成為了人們最頭疼的問題之一。據說,世界上每年由於垃圾電子郵件給人們帶來的損失就高達數億美元。在Windows操作系統中也許您已經嘗夠了垃圾郵件給您帶來的苦頭,讓您防不勝防。但是,不要以為在Linux操作系統平台中就能避免垃圾電子郵件給我們帶來的騷擾,反擊和過慮掉我們不需要的電子郵件就是一件很重要的工作。本文將詳細介紹如何利用procmail來對付垃圾郵件。 無用的電子郵件通常會影響我們的網絡生活。在Linux操作系統下標准的電子郵件配置方案就是Sendmail 和 POP郵件服務器。很多使用Linux的朋友都在自己的Linux平台中安裝了Sendmail和POP郵件服務器來接收和發送電子郵件。但是,Sendmail和POP郵件服務器只是作為Linux下發送電子郵件的工具,它們無法對付各式更樣的垃圾郵件。在Windows平台中過慮垃圾電子郵件的軟件和工具非常多,大多數軟件采取的是過慮郵件主題和郵件名稱等方式來判斷一封電子郵件是否是垃圾郵件。不過,這樣的做法是不能完全的過慮掉所有的垃圾郵件的,因為發垃圾郵件的無聊者早就考慮到了這一點,他們可以把郵件的主題寫的和普通郵件相似,或者采用匿名郵件發送,這樣就很輕易的欺騙了過慮垃圾郵件的工具軟件。 在Linux操作系統中,過慮垃圾郵件我們需要很好的配置procmail這個程序,讓它盡可能的過慮掉我們不需要的郵件。無論您在Linux中使用的是MTA (郵件傳輸代理,aka Sendmail) 還是 MUA(郵件用戶代理, aka Netscape Mail),使用procmail這個程序一樣可以過慮掉垃圾電子郵件。Procmail無需額外的下載安裝,在您安裝Linux系統的時候就可以默認安裝Procmail了,Procmail是一個可以自定義的強大的過慮工具。系統管理員可以通過在客戶端或者服務器端配置Procmail來對付惱人的垃圾郵件。 舉例說明,如果你想過慮掉來自比爾·蓋茨微軟公司
[email protected]所有郵件,那麼通過配置Procmail可以使得來自
[email protected]的郵件直接被送到Linux系統中的/dev/null目錄裡。具體的配置可以參考如下: :0 * ^From.*
[email protected] { :0 /dev/null } 所有的procmail過濾器都保存在一個叫做procmailrc 的文件裡。procmailrc 就保存在 /etc 目錄中,或者在$HOME/.procmailrc 也能找到該文件。用戶只要重新定義修改procmailrc文件就能使得procmail起作用,$HOME 對用戶來說是一個HOME目錄中的變量。典型的procmailrc文件裡通常有下面的參數: # # # Begin /etc/procmailrc # # ORGMAIL /var/spool/mail/$LOGNAME MAILDIR $HOME/ Sendmail /usr/sbin/Sendmail :0 * ^From.*
[email protected] { :0 /dev/null } # # End /etc/procmailrc # 對編程熟悉的朋友一看就知道這個文件的參數和變量是可以根據需要而改動的。 其中ORGMAIL變量是設定郵件目錄在系統中全局變量的。以上的清單表明ORGMAIL已經把用戶登陸目錄指定為 /var/spool/mail/,$LOGNAME 就是用戶的登陸名。MAILDIR 一看就知道是指定了當前procmail使用和執行的目錄所在。上面的清單說明了MAILDIR是ROOT用戶的HOME目錄。 前面已經說過了,procmail是一個強大的反垃圾郵件的程序。只要修改它其中參數它就會起相應的作用。如果我們不像把所有從
[email protected] 來的郵件直接送到/dev/null目錄中,我們像把這些郵件留下來有時間來仔細分析是否它們都是垃圾郵件,那麼我們可以進行以下的配置: :0 * ^From.*
[email protected] { :0 antitrust } 這樣,從
[email protected] 發過來的電子郵件就會被保存到一個叫做antitrust的目錄中,當然,那必須要通過修改MAILDIR變量才能生效。為了使得從
[email protected] 發過來的電子郵件被Linux系統保存的更好,我們還可以進一步進行修改,例如: :0 * ^From.*
[email protected] { :0 mail/antitrust } 這樣,antitrust就不必使用$HOME/mail目錄,安全系數就要比原來的修改方式要高一些。您想過慮的垃圾郵件和您的正常郵件就不會放在同樣的一個目錄中了。如果把要過慮的垃圾電子郵件和有用的郵件都放在/ROOT目錄中是不夠安全的。 以上只是介紹了過慮發郵件地址的方法,現在我們還可以把過慮地址和過慮主題等多種方式結合起來使用,那樣過慮垃圾電子郵件的效果會更好一些,下面就是多種方法結合過慮垃圾郵件的方法: :0 * ^From.*
[email protected] * ^Subject:.*competition { :0 mail/antitrust } 從上面的清單可以看出,我們這次不但可以過慮掉來自
[email protected] 的電子郵件,而且只要電子郵件中帶有“competition”字樣的主題郵件也被過慮掉了。當然,根據實際需要,用戶可以設定過慮的電子郵件的主題,不僅僅限制與competition這個單詞。符合以上條件的電子郵件將被送入mail/antitrust 這個指定的區域。 有時候我們需要轉發某些電子郵件,這時候我們也可以通過以下配置來完成: :0 * ^From.*
[email protected] * ^Subject:.*competition { :0 c !
[email protected] :0 mail/antitrust } 從以上清單可以知道,來自
[email protected]並且帶有"competition" 的電子郵件就會被Linux系統轉寄到
[email protected],然後這些郵件也被送到mail/antitrust中。 還有以下這樣的配置也非常實用: :0 * ^From.*
[email protected] * ^Subject:.*competition { :0 c !
[email protected] :0 mail/antitrust } :0 * ^From.*sexcity { :0 /dev/null } 第一行參數很好理解,第二行則是把來自sexcity的郵件送到/dev/null中。 從上面那麼多個配置清單中我們可以看到要配置procmail不是一件困難的事情,但是您還是要注意,如果您在配置procmail的時候出了錯,那麼您可能會破壞掉整個系統中的電子郵件配置,配置好procmail後不要忘記對系統進行測試。 最後要提醒大家的是,procmail盡管是一個強大的反垃圾郵件的程序,但是我們也要遵循Sendmail的基本原則,不能隨便修改procmail的參數,不然您的Linux發送郵件的系統可能不能正常工作,如果您在配置反垃圾郵件方面遇到了問題,請到Sendmail的主頁上查看FAQ,那裡有許多解決此類問題的辦法。 參考網址: Sendmail: http://www.sendmail.org Procmail: http://www.procmail.org