以前のメールサーバーからすべてのメールをダウンロードしたいと思います。 POP3を使用し、「受信トレイ」と「送信トレイ」フォルダの電子メールに興味があります。すべての電子メールをダウンロードしたら、私の電子メールアドレスと特定の電子メールアドレスの間のすべての電子メールを時系列で単一のテキストファイルとして一覧表示するスクリプトを作成したいと思います。
しかし、最初にすべてのメッセージを日付を含むヘッダーを含むファイルにダウンロードしてからソートスクリプトを作成する必要があると思います。この問題をどのように処理しますか?
私のスクリプトはmailxを使ってメールを送信しています。しかし、mailxを使用してPOP3サーバー上のすべてのメールをファイルにダウンロードできますか?
答え1
従来のmailxはIMAPやPOPをサポートしていませんが、Linuxに付属しているものはサポートしています。
特定の問題の場合は、代わりに使用することをお勧めしますfetchmail
。あなたはそれを使用することができます--mda
fetchmail
ダウンロードした各メッセージに対して選択したスクリプトを実行するオプションです。コマンドラインで%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