日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

41 FreeBSD連載:在FreeBSD上查看郵件( 三 )


.forward文件可以按照需要設置三種不同的處理方式:定義存儲郵件的郵箱文件名、進行轉(zhuǎn)發(fā)的目的地址或者對電子郵件進行處理的外部應用程序,顯然啟動Procmail是應使用第三種方法 。
.forward文件應該屬于這個用戶(或root),并且其權(quán)限設置應該為不能被其他或同組用戶可寫 。
$ cat ~/.forward"|IFS=" "&&exec /usr/local/bin/procmail -f-||exit 75 wb"這個.forward的例子里,使用"|"字符設置括號內(nèi)的參數(shù)為一個執(zhí)行命令,這樣sendmail就能啟動一個shell執(zhí)行設置的命令,并使用管道的方式讀取sendail的輸出 。執(zhí)行命令中首先定義了IFS環(huán)境變量(用于分隔不同的域),然后執(zhí)行procmail,如果procmail執(zhí)行失敗就執(zhí)行exit 75 wb告訴sendmail,郵件分發(fā)失敗,需要更改wb為使用者自己的登錄名 。
procmail使用用戶個人目錄下的.procmailrc文件,來設置對收到的Email進行處理的過濾規(guī)則 。最簡單的.procmailrc文件為:
:0c: * ^FROM.*@freebsd.org$HOME/mail.backup第一行首先使用冒號開始定義一個過濾規(guī)則,緊隨其后的應該是一個數(shù)字,這個數(shù)字規(guī)定了這個規(guī)則占用的配置行數(shù),一般使用0表示沒有限制配置行,此后的c表示復制(copy),表示下面的規(guī)則只是用于處理郵件的副本,而郵件本身仍然會被其他的過濾處理規(guī)則處理 。這一行最后的冒號,用于表示在處理過程中進行加鎖,防止同另一個procmail進程處理同一個文件時發(fā)生沖突,通常這個機制在存儲郵件文件時非常有幫助 。
第二行就開始了一個過濾規(guī)則的定義,過濾規(guī)則使用*字符開頭 。一個規(guī)則中使用模式匹配來匹配電子郵件信頭或內(nèi)容中的特定行 。上面例子里的這個規(guī)則匹配所有來自于freebsd.org的電子郵件 。在第三行定義了對符合上面規(guī)則的郵件的處理方法,由于給出了一個文件名mail.backup,因此將所有來自于freebsd.org的電子郵件添加到mail.backup文件中保存 。如果使用!開頭定義規(guī)則處理辦法,表示進行轉(zhuǎn)發(fā)處理,!后面就為進行轉(zhuǎn)發(fā)的電子郵件的地址,或者以|開頭,表示啟動后面的命令進行郵件處理 。
procmail不區(qū)分大小寫,它使用Unix最常用的模式匹配方式進行匹配特定的郵件 。因此使用這些匹配模式和procmail規(guī)則,可以定義一個更復雜的.procmailrc:
PATH=$HOME/bin: /usr/bin: /usr/ucb: /bin: /usr/local/bin:.SHELL=/bin/shMAILDIR=$HOME/mailDEFAULT=$MAILDIR/mailboxLOGFILE=/dev/nullSENDMAIL=/usr/lib/sendmail:0:* ^From.*badguy/dev/null/:0c:* ^(From|Cc|To).*freebsd.org| gzip >> freebsdmail.gz:0:* ^From.*@hotmail.com* ^Subject:.*(joke|funny){:0 c! friend1@hotmail.com friend2@usa.net:0joke}:0* ^Subject:.*order* !^FROM_DAEMON* !^X-Loop: marketing@company.com{:0 h c| (formail -r -A"X-Loop: marketing@company.com " ;cat /market/acknowlegement.txt ) | $SENDMAIL -t:0 c! market2@company.com:0market}這個配置文件的第一部分中設置了幾個環(huán)境變量,用于設置procmail的運行環(huán)境,其中將MAILDIR設置為~/mail,與pine使用的目錄相同,因此這將使pine能直接讀取procmail處理過的郵件 。
第二部分中為郵件定義了三個不同的過濾規(guī)則及相應的處理操作,第一個規(guī)則將來自badguy的郵件濾掉(輸出到/dev/null);第二個規(guī)則將與freebsd.org的通信使用gzip保存到freebsdmail.gz中,用于保存相應maillist的郵件;第三個規(guī)則將某個使用hotmail帳號的朋友,并使用joke或funny標題給自己發(fā)送笑話的郵件同時轉(zhuǎn)給其他幾個朋友,并同時保存在joke文件夾中;最后一個規(guī)則是設置了一個自動回復郵件系統(tǒng),對于使用order做標題,并且沒有FROM_DAEMON行(自動郵件回復程序使用FROM_DAEMON作標記,通常不需要回復這些的郵件,否則會造成回復循環(huán)),并且沒有包括X-Loop行的郵件進行處理:
首先將X-Loop行添加到郵件中(使用formail將它們添加到mail的信封上),以免造成對同一個郵件的循環(huán)處理,然后將文件/market/acknowlegement.txt發(fā)回給發(fā)送者;并以及轉(zhuǎn)發(fā)郵件,在market中保存郵件 。

推薦閱讀