Postfix
如何從 /var/mail 一次讀取一條消息
假設我在 /var/mail/ 中有 5 條消息,我想一次閱讀一條消息,然後在該郵件中進行一些字元串搜尋,然後再轉到下一條消息。有沒有可以用來一次解析一條消息的命令?
我正在尋找編寫一個 bash 腳本,它將讀取 mbox 文件中的所有消息,然後一次讀取一條,以便我可以提取消息的主題、收件人、發件人和狀態(反彈程式碼)。我的計劃是使用 grepmail 來獲取文件中的電子郵件計數,然後在 for 循環中使用這個計數來一次獲取一封郵件,然後他們對文本執行操作。就像是:
$count = grepmail -r . /var/mail/user | awk '{print $2}' for($i=1;$i<=$count;$i++) { $content = *GetMessage* -number $i /var/mail/user ... Do string operation on this message & save to $DelimitedData ... } $Delimiteddata
我不知道如何一次提取單個消息以對它們執行字元串操作。有人可以指導我哪個命令/程序可以幫助我以非互動方式執行此操作。
procmail的
formail
工具(在任何發行版中都可用,它是經典的)正是為此目的而設計的。基本用法:
formail -s myprogram --option
myprogram --option
依次在每封郵件上執行。該程序在其標準輸入上接收每封郵件。