Postfix

如何從 /var/mail 一次讀取一條消息

  • August 9, 2019

假設我在 /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

我不知道如何一次提取單個消息以對它們執行字元串操作。有人可以指導我哪個命令/程序可以幫助我以非互動方式執行此操作。

procmailformail工具(在任何發行版中都可用,它是經典的)正是為此目的而設計的。

基本用法:

formail -s myprogram --option

myprogram --option依次在每封郵件上執行。該程序在其標準輸入上接收每封郵件。

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