2017-08-31 52 views
0

我使用的procmail保存電子郵件的身體,這樣的事情:如何使用procmail保存郵件正文作爲文件名?

:0: tmpProcmail.lock 
* ^From:.*(SOME EMAIL).* 
* ^Subject: SOME SUBJECT.* 
| cat > /SOME DIRECTORY/$(date +\%Y\%m\%d).txt 

我不知道我是否可以使用整個主題作爲我的文件名,而不是日期。

回答

0

這不是一個特別好的主意,但這並不難。只需使用\/捕獲令牌將匹配文本轉換爲$MATCH即可。

:0: 
* ^From:.*(SOME EMAIL) 
* ^Subject: \/SOME SUBJECT.* 
| cat > "/SOME DIRECTORY/$MATCH.txt" 

你說你救了身體,但你的食譜不這樣做;它保存了整個消息。 (如果只需要文件中的主體,請添加一個b標誌。)

另請注意,我如何省略指定的鎖定文件(在此場景中讓Procmail找出鎖定文件名更爲有效......雖然鎖定如果您覆蓋文件,則可能沒有多大關係)以及From:正則表達式中多餘的.*。 (它在主題中沒有多餘,因爲您想要捕獲整個標題。)

如果主題包含斜線並且磁盤上沒有相應的目錄名稱,這當然會失敗。

如果你不想覆蓋,默認是追加,所以沒有cat是必需的或有用的。

:0: 
* ^From:.*(SOME EMAIL) 
* ^Subject: \/SOME SUBJECT.* 
/SOME DIRECTORY/$MATCH.txt 
+0

百分號沒有元字符含義,因此不需要反斜槓,順便說一下。 – tripleee

+0

感謝您的答案兄弟! – ywu

+0

我嘗試了一些其他的組合,現在覺得我很好。 – ywu

相關問題