このページは福井県立大学の田中求之が2006年1月まで運用していた Mac のサーバ運用に関する会議室 「Web Scripter's Meeting」の記録です。情報が古くなっている可能性がありますのでご注意ください。

別のメールサーバからPOP3のまま自動取得する方法ありませんか?

発言者:tutuzaki
( Date Tuesday, December 09, 1997 01:08:47 )


自分のローカルなメールサーバにプロバイダーのメールサーバからPOP3のままメールを時間指定で自動取得したいのですが、何か方法がないでしょうか?
UNIXではfetchmailというのが、pop3対応でこれでまとめてメールとってきてローカルのメールスプールに入れることが出来るそうです。
MACでも似たような機能が使えないでしょうか?
また、これとは関係ないのですが、メールをDB、出来ればファイルメーカに書き出したいのですが、これもなにか良い方法があるでしょうか?

前薗 健一 さんからのコメント
( Tuesday, December 09, 1997 03:28:42 )

forward じゃ駄目なのでしょうか?

修司 さんからのコメント
( Tuesday, December 09, 1997 23:06:44 )

プロバイダには、ダイヤルアップで接続しているのですか?
そうならば、ちょっと参考になるかも知れません。
僕は一日160通くらいメールを受信するのですが、ほとんどがいろんなMLのもの。
年末年始の帰省時にどうやってメール管理しようかと考えました。

・帰省する時はINTERTop(携帯端末)だけ持って帰りたい
・帰省時は全て読む必要はない。特定のMLのものと、ML以外のものだけで良い
・全てのメールはMacintoshのメーラで管理したい

という条件で、EudoraProとAppleScriptを使った方法を考えました。
動作としては、

定期的に(3時間おきくらい)、EudoraProが普通にプロバイダにメールを取りにいく
EudoraProは受信したメールのサブジェクトをみて箱に振り分ける。
AppleScriptで、特定の箱の未読メールを別のアカウントに転送。転送したメールを既読にする。

僕は転送先のメールをINTERTopで受信する。

てな具合になれば良いのではないでしょうか。
ただ、メールヘッダに転送した旨がついてしまいますが。

後は、Fetchをコントロールして、プロバイダのメールサーバのスプールをそのまま
Getするというのはいかがでしょう。/var/mail/[ユーザ名]のファイルの場合が多いです。
取ってきたファイルをローカルのサーバにPutしたらまずいかな。

ただこの方法では、本サーバにメールがたまる一方なので、何か手を打つ必要があります。

田中求之 さんからのコメント
( Wednesday, December 10, 1997 00:25:41 )

POP 用のリストサーバー( Macjordomo )を動かして、メールの転送処理を
やらせるという方法が使えるかもしれませんね。

リストサーバーは、メーリングリストを運用する以外にも、色々とメール関連の
処理をやらせるツールとして活用できますよ。


メールを DB に登録というのは、データベースが直接メールを読みに行って、
データとして取り込むようにしたいということですか?

Eudora Pro で受信したメールであれば、AppleScript でファイルメーカーに
データとして移すことは簡単にできますが…

tutuzaki さんからのコメント
( Wednesday, December 10, 1997 13:47:43 )

すみません。説明が足りませんでした。
Eudora等で、自動取得及びファイルメーカーへの書き出しが出来ることは知って
いました。ただ、一度Eudora等でメールを取得してしまうと、メーラーを別の物
に変えた場合、古いメールは直接読めなくなってしまいます。
そこで、PO3ならばAIMSなどを自分のMACに立ち上げておけば、これにアクセスすれば
他のメーラーでもメールが読み出せると思った次第です。
また、サーバを立てて、深夜から早朝(つまりテレホーダイの時間ですね)に
自動でメールを落として、朝Pilot(PDA)で読み込んで電車の中で読めれば便利だなと。
それで、どうせならPOP3→Eudora→DB(ファイルメーカー)よりは、POP3→DBが
できないかと。
やっぱり、無理でしょうか?

ついでに、付随して質問させて下さい。
同じMACにメールサーバとEudoraをインストールして、
プロバイダーのサーバ→Eudora→自分のローカルメールサーバというのは可能
なのでしょうか?一応、2台MACがありますのでサーバーとクライアントは分けれる
のですが、1台で済めばうれしいです。
また、Eudoraのファイルメーカー書き出しはフリー版の方のEudoraでもできますか?

たまちゃん さんからのコメント
( Wednesday, December 10, 1997 14:35:36 )

>>ただ、一度Eudora等でメールを取得してしまうと、メーラーを別の物
>>に変えた場合、古いメールは直接読めなくなってしまいます

ということが一番問題なのですね。

であれば、

(1)(取り込んでしまうともう読めませんから)サーバーにメールを残すオプ
ションをしておき、UIDLを解するメールソフトを使う。例えば、Eudora Proと
クラリスメール2。

(2)プロバイダーのpopperのバージョンが古く、(1)が出来なくて、どうしても
AIMSを使いたいのであれば、プロバイダーの側の自分のアカウント上で

\hogehoge,hoghoge@AIMSの走っているマシン

とした、「.forward」を書くか、いっそのこと、AIMSに全部転送して、(1)で挙
げたようなソフトを使う。

というようなことが考えられますが、(1)で済むのではないでしょうか(別の
メールソフトではなく、Eudora Proやクラリスメール2だけでも出来ますが)。

>>自動でメールを落として

メールソフトだけで可能ですね。

>>プロバイダーのサーバ→Eudora→自分のローカルメールサーバ

は「プロバイダーのサーバ→自分のローカルメールサーバ→Eudora」ではない
のですね。POP3で何をイメージされているのかがわかりません。

田中求之 さんからのコメント
( Wednesday, December 10, 1997 15:13:12 )

>それで、どうせならPOP3→Eudora→DB(ファイルメーカー)よりは、POP3→DBが
>できないかと。

AppleScript でメールをダウンロードしてファイルメーカーに転送するスクリプトを
作っておくという方法があります。ただし、メールをダウンロードする部分の処理が
難しいです( NetEvents では POP サーバーとのコミュニケーションがうまくいか
ない場合があります)。


>また、Eudoraのファイルメーカー書き出しはフリー版の方のEudoraでもできますか?

日本語のフリー版は AppleScript に対応していませんので、かなり難しいです。
(Eudora のメールファイルを直接開いて処理するという方法はありますが)。

修司 さんからのコメント
( Thursday, December 11, 1997 20:44:59 )

POP3で何をイメージしているのか分かりかねます。
自宅のMacintoshにAIMSなどのPOP3サーバを立ち上げておく。
ただ、テレホーダイの時間にプロバイダに接続して、
EudoraProかクラリスメールで普通にメールチェック。
AppleScriptで、メールソフトに今受信したメールを
AIMSのアカウントに送信させる。
これでいいのではないですか。
プロバイダの場合、メールスプールに数MBという制限がありますから、
ずっとサーバに残す設定でやっていくことはできないでしょう。
Pilotに転送するのは、HotSync(?)経由ですか?その点はどうなさるのでしょう。
ファイルメーカーに書き出すというよりは、EudoraProから取得したデータを
ファイルメーカーにセットするというAppleScriptが必要なわけです。
EudoraProなどを買う程でもないというのでしたら、
Fetchでメールサーバの/var/mail/IDファイルをgetさせ、それを解析するというのはどうですか。
ただのテキストファイルです。
ヘッダがどこからどこまでなのか判別するところを工夫する必要があります。
タブ区切りテキストに整形して、ファイルメーカーに読み込ませることもできますね。