古い電子メールサーバーにあるすべての電子メールをダウンロードしたいのですが。 POP3を使用しており、「受信トレイ」フォルダと「送信済み」フォルダ内のメールに興味があります。すべてのメッセージをダウンロードしたら、私の電子メールアドレスと1つの特定の電子メールアドレスの間のすべての電子メールを時系列で単一のテキストファイルに一覧表示するスクリプトを作成します。
ただし、最初は、すべてのメッセージを日付を含むヘッダーを含む単一のファイルにダウンロードしてから、並べ替えスクリプトを作成する必要があると思います。これにどのように取り組みますか?
メールを送信するスクリプトでmailxを使用しましたが、mailxを使用してPOP3サーバーからすべてのメールを単一のファイルにダウンロードできますか?
従来のmailxはIMAPまたはPOPをサポートしていませんが、Linuxに付属しているものはサポートしています。
特定の問題については、代わりにfetchmail
を使用することをお勧めします。 --mda
オプションを使用して、ダウンロードしたメッセージごとに選択したスクリプトをfetchmail
で実行できます。コマンドラインで%F
および%T
をプレースホルダーとして使用する場合、FromおよびToアドレスをパラメーターとしてスクリプトに渡すこともできます。
まず、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
フラグを付けて、誤ってメールを削除しないようにしてください。