gos*_*din 5 java email imap jakarta-mail javax.mail
我的应用程序正在检查收件箱服务器文件夹中邮件主题的模式,如果找到某个模式,我们应该将电子邮件(com.sun.mail.imap.IMAPMessage)移动到另一个文件夹 - 例如"test" (副本也可以完成这项工作).
我在互联网上搜索了解决方案但我找不到任何有用的东西.
你能告诉我如何将IMAPMessage从收件箱移动/复制到服务器上的另一个文件夹?
谢谢
想必你已经在用com.sun.mail.imap.IMAPFolder?
那个班有这个方法addMessages(Message[] msgs).用它来添加Message到新文件夹.
或者,正如@gospodin所提到的,有一种copyMessages(Message[] msgs, Folder destinationFolder)方法,它提供了将消息从原始文件夹复制到新文件夹的快捷方式.
小智 6
这是一个坏主意,移动消息的方法一样copyMessages(),addMessages()或者appendMessage()和删除旧邮件,因为这些方法生成一个新的消息。新消息Message-ID的标题有所不同。如果您对新消息做出响应,接收者无法将响应与他发送的邮件相关联,因为他不知道新的Message-ID. 您必须将文件夹强制转换为IMAPFolder. IMAPFolder具有在moveMessages(Message[] msgs, Folder targetFolder)不篡改标题的情况下移动消息的方法Message-ID。
List<Message> tempList = new ArrayList<>();
tempList.add(myImapMsg);
Message[] tempMessageArray = tempList.toArray(new Message[tempList.size()]);
fromFolder.copyMessages(tempMessageArray, destFolder);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13269 次 |
| 最近记录: |