Email

從郵箱文件處理/分類郵件?

  • January 16, 2017

我有一個郵箱文件(“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:

引用自:https://unix.stackexchange.com/questions/337646