- - PR -
JavaMailの受信処理について
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2006-12-01 12:02
こんにちは
「getMessages」を使用してメールを取得しているのですが この時に「Message[]」へ格納されるメールの順番は何になるのですか? また、受信メールを削除(setFlag)せず再度「getMessages」にて 受信メールを確認すると前回の順番と入れ替わっています。 (途中で受信したメールが間に割り込んでいます。) さらに、「getMessageNumber」にて取得された番号と受信メールの割付も 受信のたびに入れ替わってしまってます。 当方のしたい事は 受信内容の一覧をユーザに表示(ブラウザ)し、その後ユーザの操作により 該当メールを削除したいと思っているのですが受信メールとその番号が 固定されていないので困っています。 何か特定する方法があるのでしたら教えてください。 (受信日付/件名でチェックすべきなのでしょうか?) メールサーバはJamesを使用しております。 よろしくお願いします。 |
|
投稿日時: 2006-12-01 12:50
MessageNumberは単にサーバ側が返してきた一覧のシーケンスで、順番はサーバ側依存でしょう。
messageIdを使うとか、セッションを保持したままでそれぞれのメッセージになんらか一意のIDを振るとか、 そういったことをしないといけないんじゃないでしょうか。 日付や件名では、まったく同じものが存在する可能性も排除できないです。 IMAPであればUIDが使えますが。 |
|
投稿日時: 2006-12-01 13:40
JavaMailは全然わからないのですが、JavaMail特有の実装というわけではないと思いますので(汗
普通のPOPクライアントでもUIDLコマンドで取得したIDと保存しておいた前回処理時のIDをチェックして未処理かどうかを判断しているハズです。 #で、新規の(=未処理のIDが付いた)メール番号だけ取得する。 メール番号は残っているメールについてメールサーバが勝手に割り当てます。普通は1からの連番ですが、サーバの実装に依存するので決め打ちは出来ません。 (蛇足) メーラで「サーバにn日間残す」ような設定があるものはIDと取得日時を関連付けて保存してます。 |
1