從郵箱文件處理/分類郵件?
我有一個郵箱文件(“Mboxrd”)由創建
getmail
,我想通過對來自不同(組)發件人的郵件進行分類來“處理”它,並將它們移動到單獨的郵箱文件中(我猜 3-5現在)。理想情況下,這樣移動的郵件消息應該從原始郵箱文件中刪除。我很可能希望按發件人地址對郵件進行分類 - 儘管能夠按主題(即某些單詞/片語)對其進行分類也很好……
現在,如果這是剛剛在我的電腦 MTA 上收到的消息 - 或者如果我設置為
getmail
向 MTA 發送郵件 - 我想我可以使用procmail
正常的方式……但是,我得到的是“死”已儲存郵件消息的文件,因此這不是一個選項。我想我可以通過 MTA 發送郵件,但肯定有辦法按原樣處理郵件(在文件中)?那麼,是否有程序或命令(或某些特殊選項
procmail
或類似命令)可以讓我根據郵件的發件人/主題將郵箱文件中的郵件“分類”到其他幾個郵箱文件中?一個小例子(例如配置文件)也將不勝感激……
該
formail -s
方法記錄在procmail
手冊頁中的展示腳本中;尋找這句話:還可以呼叫 Procmail 來對已填充的系統郵箱進行後處理。
您還可以在http://www.iki.fi/era/procmail/mini-faq.html#split中找到它
如果您的郵箱不是 Berkeley mbox 單個文件,那麼您很可能有一個目錄,其中每個文件都是一條單獨的消息。在這種情況下,您可以簡單地處理它
for f in folder/*; do procmail -options <"$f" # maybe rm "$f" to remove the original after processing completes done
作為如何按發件人過濾的範例,一個簡單的食譜將類似於
# If your mailbox destination is maildir, no locking is required :0: # so you could lose the second colon here, and in subsequent examples * ^From:.*\<alice@example\.com\> alice :0: * ^From:.*\<bob@example\.net\> bob
等等。這將檢查“發件人:”標頭,這通常是人們所說的“發件人”的意思,儘管還有兩個常用欄位(信封發件人,通常在 中
Return-Path:
,實際Sender:
標頭是可選的,但經常當From:
標頭不是實際發送者時由發送軟體填充)。同樣,要按 分類
Subject:
,只需指定與您要擷取的主題匹配的正則表達式。:0: * ^Subject: *((Fwd?|Re): *)*\[gunk] gunk-list
將找到帶有包含標籤的主題標頭的消息
[gunk]
,可選地以空格和/或Re:
和/或Fw:
和/或開頭Fwd:
。