1999年6月2日
ネットワークのプロトコルに関して共通なものの処理を集めたクラスとして NetworkProtocol を作る。これを親として、SmtpClinet, PopClient, ImapClient などの子クラスを作り、そのプロトコルに特化したコマンドの送信・応答の単純な処理を受け持つようにする。更に、送信・受信の面倒をそれぞれみるクラスを作り、先のクラスのメソッドを操作して一連の送受信の操作を行い、メッセージの queue からの取り出し、inbox への格納なども行うようにする。
送信に関しては次の3つの処理が考えられる。
2,3 は自前で MTA を持つ場合である。1,2 は指定するサーバーを変えれば済むことなので同じことである。3 は外部のプログラムを呼び出すことになるので簡単にできるかどうかまだ検討が付いていないが、できそうであれば実装する。
受信に関して次の4つの処理が考えられる。
1,2 に関してはそのままの意味通りなので特に説明しない。3,4 は UNIX 上でのメイルの保管形式である。Maildir 形式は簡単に実装できそうである。mbox 形式は MDA もこのファイルにアクセスするため、ロックをかける必要があるが、安全に行えるか不安がある。一応実装する予定ではあるが、安全性は保証しない。JavaVM はどのようなロック機構を持つのだろうか?