首页 > 解决方案 > 无法通过将 JavaxMail 与 POP3 服务器一起使用来删除电子邮件

问题描述

我一直在使用 JavaxMail pop3 服务器来阅读用户电子邮件收件箱。有时虽然我在处理后删除了消息,但仍然可以阅读该消息。事实上,它实际上并没有删除消息,因此服务器多次处理相同的消息。

这是一个示例代码片段

         Folder folderInbox = store.getFolder("INBOX");
         folderInbox.open(Folder.READ_WRITE);

         // fetches new messages from the server
         Message[] messages = folderInbox.getMessages();
         for(Message msg : messages){
           try {
              if(!msg.getFolder().isOpen()) {   //Determine whether to open specific message folder
                 msg.getFolder().open(Folder.READ_WRITE); //If close, reopen 
              }

              prcocessMessage(msg);
              msg.setFlag(Flag.DELETED, true);
           } catch(Throwable ex) {
                //If exception happens message will not be deleted
                logger.error("Unexpected Exception: ", ex);
           }
        }
        // disconnect
        folderInbox.close(true);
        store.close();

我曾尝试在删除后对消息使用 saveChanges(),但无法达到结果。如何停止对单个电子邮件的多次处理?

标签: javapop3

解决方案


推荐阅读