古いメール サーバーにあるすべてのメールをダウンロードしたいと思います。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