mailxを使用してPOP3サーバーからのすべての電子メールを単一のテキストファイルとしてダウンロードするには?

mailxを使用してPOP3サーバーからのすべての電子メールを単一のテキストファイルとしてダウンロードするには?

以前のメールサーバーからすべてのメールをダウンロードしたいと思います。 POP3を使用し、「受信トレイ」と「送信トレイ」フォルダの電子メールに興味があります。すべての電子メールをダウンロードしたら、私の電子メールアドレスと特定の電子メールアドレスの間のすべての電子メールを時系列で単一のテキストファイルとして一覧表示するスクリプトを作成したいと思います。

しかし、最初にすべてのメッセージを日付を含むヘッダーを含むファイルにダウンロードしてからソートスクリプトを作成する必要があると思います。この問題をどのように処理しますか?

私のスクリプトはmailxを使ってメールを送信しています。しかし、mailxを使用してPOP3サーバー上のすべてのメールをファイルにダウンロードできますか?

答え1

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

特定の問題の場合は、代わりに使用することをお勧めしますfetchmail。あなたはそれを使用することができます--mdafetchmailダウンロードした各メッセージに対して選択したスクリプトを実行するオプションです。コマンドラインで%Fおよびをプレースホルダとして使用している場合は、「from」アドレスと「to」アドレスをパラメータとしてスクリプトに渡すこともできます。%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

関連情報