将IMAPMessage移动(复制)到邮件服务器上的另一个文件夹

时间:2014-07-22 12:57:44

标签: java email javamail imap javax.mail

我的应用程序正在检查收件箱服务器文件夹中邮件主题的模式,如果找到某个模式,我们应该将电子邮件(com.sun.mail.imap.IMAPMessage)移动到另一个文件夹 - 名为'test '例如(复制也可以完成这项工作)。

我在互联网上搜索了解决方案,但我找不到任何有用的东西。

您能告诉我如何将IMAPMessage从收件箱移动/复制到服务器上的另一个文件夹?

谢谢

3 个答案:

答案 0 :(得分:6)

据推测,您已经在使用com.sun.mail.imap.IMAPFolder

该类的方法为addMessages(Message[] msgs)。使用它将Message添加到新文件夹。

或者,如@gospodin所述,有一个copyMessages(Message[] msgs, Folder destinationFolder)方法,它提供了将消息从原始文件夹复制到新文件夹的快捷方式。

答案 1 :(得分:3)

        List<Message> tempList = new ArrayList<>();
        tempList.add(myImapMsg);
        Message[] tempMessageArray = tempList.toArray(new Message[tempList.size()]);
        fromFolder.copyMessages(tempMessageArray, destFolder);

答案 2 :(得分:0)

使用copyMessages()addMessages()appendMessage()之类的方法移动一条消息并删除旧消息是一个坏主意,因为这些方法会产生一个 >消息。新邮件的标题中有一个不同的Message-ID。如果您对新消息做出响应,则接收者无法将响应与其发送的邮件相关联,因为他不知道新的Message-ID。您必须将文件夹转换为IMAPFolderIMAPFolder使用方法moveMessages(Message[] msgs, Folder targetFolder)来移动邮件而不会篡改标头Message-ID