如何使用 mailx 將所有電子郵件從 POP3 伺服器下載到單一文字檔案?

如何使用 mailx 將所有電子郵件從 POP3 伺服器下載到單一文字檔案?

我想下載舊電子郵件伺服器中的所有電子郵件。它使用 POP3,我對「收件匣」和「已發送」資料夾中的電子郵件感興趣。下載完所有郵件後,我想製作一個腳本,將我的電子郵件地址和某個特定電子郵件地址之間的所有電子郵件按時間順序列出到單一文字檔案中。

但是,首先,我認為我需要將所有訊息下載到一個包含日期的標題的檔案中,然後建立一個排序腳本。如何處理這個問題?

我在腳本中使用了 mailx 來傳送郵件,但是是否可以使用 mailx 將 POP3 伺服器上的所有郵件下載到一個檔案中?

答案1

傳統的 mailx 不支援 IMAP 或 POP,但 Linux 自帶的則支援。

對於您的特定問題,我建議改用fetchmail。您可以使用--mda選項fetchmail為每個下載的訊息執行您選擇的腳本。如果您在命令列中使用%F和作為佔位符,它甚至可以將「寄件者」和「收件者」位址作為參數傳遞給腳本。%T

首先,建立一個mailsorter腳本:

#!/bin/sh

dest_mbox="$1"
from="$2"
to="$3"

case "$from-$to" in
  [email protected])
     echo "From $from  `date`" >> "$dest_mbox"
     cat >> "$dest_mbox"
     ;;
  *)
     cat > /dev/null
     ;;
esac

然後運行fetchmail -u myname popserver.example.com --mda './mailsorter /tmp/mbox %F %T'

測試此解決方案時,請提供和fetchmail標記,以確保您不會意外刪除郵件。--all--keep

相關內容