2011-01-31 32 views
1

我使用的郵件存儲在Maildir中的getmail + maildrop + mutt + msmtp鏈。非常大的收件箱困擾我,所以我想通過日期這樣的組織郵件:Maildrop:按日期過濾郵件:標題

Maildir 
|-2010.11->all messages with "Date: *, * Nov 2010 *" 
|-2010.12->same as above... 
|-2011.01 
`-2011.02 

我GOOGLE了很多,閱讀的mailfilter語言,但它畢竟是我很難寫出這樣的過濾器。 Maildrop的郵件列表檔案在這方面幾乎沒有任何內容(據我掃描它)。有一些關於https://unix.stackexchange.com/questions/3092/organize-email-by-date-using-procmail-or-maildrop的半解決方案,但我不喜歡它,因爲我想使用「Date:」標題,並且我想按月排序,如數字中的「YEAR.MONTH」。 任何幫助,想法,鏈接,材料將不勝感激。

回答

1

主要使用man頁面,我提出了以下解決方案以用於Ubuntu 10.04。用下面的內容中創建mailfilter文件調用,例如,mailfilter-archive

DEFAULT="$HOME/mail-archive" 
MAILDIR="$DEFAULT" 

# Uncomment the following to get logging output 
#logfile $HOME/tmp/maildrop-archive.log 

# Create maildir folder if it does not exist 
`[ -d $DEFAULT ] || maildirmake $DEFAULT` 

if (/^date:\s+(.+)$/) 
{ 
    datefile=`date -d "$MATCH1" +%Y-%m` 
    to $DEFAULT/$datefile 
} 

# In case the message is missing a date header, send it to a default mail file 
to $DEFAULT/inbox 

這使用date命令,取date頭內容作爲輸入(假設它是在RFC-2822 format)併產生格式化的日期作爲使用郵件文件名。

然後執行現有的郵件文件歸檔郵件如下:

cat mail1 mail2 mail3 mail4 | reformail -s maildrop mailfilter-archive 

如果mail-archive內容好看,你可以刪除mail1mail2mail3mail4等郵件文件。