mailx を使用して POP3 サーバーからすべての電子メール メッセージを 1 つのテキスト ファイルにダウンロードするにはどうすればよいですか?

mailx を使用して POP3 サーバーからすべての電子メール メッセージを 1 つのテキスト ファイルにダウンロードするにはどうすればよいですか?

古いメール サーバーにあるすべてのメールをダウンロードしたいと思います。POP3 を使用しており、「受信トレイ」と「送信済み」フォルダーにあるメールが対象です。すべてのメッセージをダウンロードしたら、自分のメール アドレスと特定のメール アドレスの間のすべてのメールを時系列で 1 つのテキスト ファイルにリストするスクリプトを作成したいと思います。

ただし、まず、すべてのメッセージを日付を含むヘッダー付きの 1 つのファイルにダウンロードし、並べ替えスクリプトを作成する必要があると思います。これにはどのようにアプローチすればよいでしょうか?

メールを送信するためのスクリプトで mailx を使用しましたが、mailx を使用して POP3 サーバーからすべてのメールを 1 つのファイルにダウンロードすることは可能ですか?

答え1

従来の mailx は IMAP や POP をサポートしていませんが、Linux に付属する mailx はサポートしています。

あなたの特定の問題には、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

関連情報