为了在我们的应用程序中测试通知,我正在使用JavaMail验证这些通知。我有无附件的通知测试。第一次测试适用于没有附件的电子邮件。验证后,我会删除该电子邮件,并发送另一封包含该应用程序附件的通知。现在我面对这个问题。因为我的收件箱有1封电子邮件但有两个主题(第一封没有附件的电子邮件和最新的附件都有相同的主题,因此最终在同一封邮件中有两个主题)。我的代码抛出一个错误,因为它期望一封带有附件的电子邮件,而不是没有附件。这意味着早期的通知未正确删除?我就这样做了:
//If all messages are read, mark the latest read message as deleted
if(folder.getUnreadMessageCount() == 0){
message.setFlag(Flags.Flag.DELETED, true);
}
//If any message is marked deleted, delete that message from folder
if(message.isSet(Flags.Flag.DELETED)){
folder.expunge();
}
我还添加了以下内容,以确保第一个通知被永久删除:
folder.close(true);
我错过了什么吗?或者有没有办法区分电子邮件中的线程?
答案 0 :(得分:1)
看起来您正在正确删除消息,但最好打开会话调试并查看协议跟踪以查看实际发生的情况。有关说明,请参阅JavaMail FAQ。
答案 1 :(得分:0)
试过这个并且像魅力一样工作。
//Get Trash folder to copy messages that are read
Folder trash = store.getFolder("[Gmail]/Trash");
trash.open(folder.READ_WRITE);
//If all messages are read, delete the latest message
if(folder.getUnreadMessageCount() == 0)
{
folder.copyMessages(new Message[] {message}, trash);
}