※ ChatGPTを利用し、要約された質問です(原文:JavaMailの受信処理で質問)
JavaMailの受信処理で問題発生!メール受信後にメールが残ってしまう
このQ&Aのポイント
JavaMailを使用してメールの送受信ができるようにしましたが、メール受信時に問題が発生しています。受信したメールをメールサーバから取得した後、そのメールをメールサーバに残したままにしてしまうため、同じメールが再度受信されてしまいます。
メール受信ソースを確認すると、メールサーバーに接続し、受信したメールの件数や内容を取得しています。しかし、メールを受信した後にメールサーバから削除する方法がわからず困っています。解決策を教えていただけないでしょうか?
使用しているバージョンはJDK1.3で、javamail-1_2.zipとjaf1_0_1.zipをダウンロードして使用しています。
ヤマトです。
JavaMailを使用してメールの送受信ができるようにしました。
メールの送信も受信も基本的には問題なく動作します。
しかし、一点問題がありまして、メール受信時なのですが、受信したメールをメールサーバから取得した後、
そのメールをメールサーバに残したままにしてしまいます。
(なのでもう一度実行すると同じメールを受信してしまいます)
受信した後メールサーバから削除したいのですが、調べたのですが、分かりません。
どなたか、以上の件に関し、ご教授願えますでしょうか?
以下に、作成したメール受信のソースを載せます。
javamail-1_2.zip とjaf1_0_1.zip をダウンロードして使用しています。JDK1.3です。
宜しくお願い致します。
== メール受信ソース(一部抜粋)
// メールサーバーへ接続
Session session = Session.getDefaultInstance(System.getProperties(), null);
Store store = session.getStore("pop3");
store.connect(PopServerAddress, -1, MailUser, MailPassword);
// メールサーバのフォルダーを開く
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
// フォルダーのメール件数を取得
int totalMessages = folder.getMessageCount();
if (totalMessages == 0) {
System.out.println("メールは0件です");
folder.close(false);
store.close();
return;
}
// フォルダーのメールを取得
Message[] messages = folder.getMessages();
// フォルダーを閉じます
folder.close(false);
store.close();
お礼
kero-piさん。ありがとうございます。 できました。 おまけに、メッセージフォルダのOPENをREAD ONLYに してました^^); READ WRITEにしてできました。