Java 无法从Yahoo IMAP帐户中删除邮件

Java 无法从Yahoo IMAP帐户中删除邮件,java,jakarta-mail,imap,Java,Jakarta Mail,Imap,我的要求是,我想删除我的雅虎帐户的邮件,所有的代码运行良好,我的Gmail帐户 下面是删除代码- Message msg[] = inbox.getMessages(); inbox.setFlags(msg, new Flags(Flags.Flag.DELETED), true); 执行上述代码行后,我不会关闭文件夹。因为我无法在设置删除标志后关闭文件夹,因为我的代码正在并行运行,用于删除多个文件夹中的多封邮件 下面是Gmail和Yahoo的协议跟踪,用于删除两条消息- 我发现

我的要求是,我想删除我的雅虎帐户的邮件,所有的代码运行良好,我的Gmail帐户

下面是删除代码-

   Message msg[] = inbox.getMessages();
   inbox.setFlags(msg, new Flags(Flags.Flag.DELETED), true);
执行上述代码行后,我不会关闭文件夹。因为我无法在设置删除标志后关闭文件夹,因为我的代码正在并行运行,用于删除多个文件夹中的多封邮件

下面是Gmail和Yahoo的协议跟踪,用于删除两条消息-

我发现,在设置删除标志和不关闭文件夹的两种情况下,然后如果我调用-

 Message msg[] = inbox.getMessages();
协议跟踪的主要区别在于-

Gmail显示

* 1 EXPUNGE
* 1 EXPUNGE
* 0 EXISTS
雅虎展示-

* 2 EXISTS
* 0 RECENT
虽然我的代码没有更改,也没有调用
文件夹。关闭(true)。但两个邮件服务器使用相同的代码对删除有不同的响应

一件有趣的事情是,设置DELETED标志可以删除雅虎和Gmail账户中给定文件夹中的邮件。在雅虎的情况下,只有JavaMail显示他们还活着。

完成详细的协议跟踪-

Gmail删除协议跟踪-

DEBUG: setDebug: JavaMail version ${mail.version}
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc.,${mail.version}]
DEBUG IMAPS: mail.imap.fetchsize: 16384
DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
DEBUG IMAPS: mail.imap.appendbuffersize: -1
DEBUG IMAPS: mail.imap.minidletime: 10
DEBUG IMAPS: trying to connect to host "imap.gmail.com", port 993, isSSL true
* OK Gimap ready for requests from 59.99.161.5 ky9if13244828pbc.236
A0 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
A0 OK Thats all she wrote! ky9if13244828pbc.236
DEBUG IMAPS: AUTH: XOAUTH
DEBUG IMAPS: AUTH: XOAUTH2
DEBUG IMAPS: AUTH: PLAIN
DEBUG IMAPS: AUTH: PLAIN-CLIENTTOKEN
DEBUG IMAPS: protocolConnect login, host=imap.gmail.com, user=mymail@gmail.com, password=<non-null>
DEBUG IMAPS: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAPS: AUTHENTICATE PLAIN command result: A1 OK mymail@gmail.com mymail authenticated (Success)
A2 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH
A2 OK Success
imaps://mymail%40gmail.com@imap.gmail.com
DEBUG IMAPS: connection available -- size: 1
A3 SELECT Inbox
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen XAOL-RECEIVED XAOL-BILLPAY-MAIL XAOL-READ $hasEmbedded $NotJunk $hasAttached NotJunk XAOL-GOOD XAOL-CERTIFIED-MAIL $Junk XAOL-GOODCHECK-DONE)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen XAOL-RECEIVED XAOL-BILLPAY-MAIL XAOL-READ $hasEmbedded $NotJunk $hasAttached NotJunk XAOL-GOOD XAOL-CERTIFIED-MAIL $Junk XAOL-GOODCHECK-DONE \*)] Flags permitted.
* OK [UIDVALIDITY 622695996] UIDs valid.
* 2 EXISTS
* 0 RECENT
* OK [UIDNEXT 136] Predicted next UID.
* OK [HIGHESTMODSEQ 48713]
A3 OK [READ-WRITE] Inbox selected. (Success)
DEBUG IMAPS: IMAPProtocol noop
A4 NOOP
A4 OK Success
A5 STORE 1:2 +FLAGS (\Deleted)
* 1 FETCH (FLAGS (\Deleted))
* 2 FETCH (FLAGS (\Deleted))
A5 OK Success
A6 SEARCH DELETED ALL
* SEARCH
A6 OK SEARCH completed (Success)
DELETED MAILS: 0
DEBUG IMAPS: IMAPProtocol noop
A7 NOOP
* 1 EXPUNGE
* 1 EXPUNGE
* 0 EXISTS
A7 OK Success
TOTAL MAILS: 2
A8 SEARCH DELETED ALL
* SEARCH
A8 OK SEARCH completed (Success)
DELETED MAILS: 0
FOLDER: Inbox
DEBUG:setDebug:JavaMail版本${mail.version}
调试:getProvider()返回javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,sun Microsystems,Inc.,${mail.version}]
调试IMAPS:mail.imap.fetchsize:16384
调试IMAPS:mail.imap.ignorebodystructuresize:false
调试IMAPS:mail.imap.statuscachetimeout:1000
调试IMAPS:mail.imap.appendbuffersize:-1
调试IMAPS:mail.imap.minidletime:10
调试IMAPS:尝试连接到主机“imap.gmail.com”,端口993,isSSL true
*OK Gimap准备好接受59.99.161.5 ky9if13244828pbc.236的请求
A0能力
*功能IMAP4rev1取消选择空闲命名空间配额ID XLIST子项X-GM-EXT-1 XYZZY SASL-IR AUTH=XOATH AUTH=XOATUH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN
好的,她就写这些!ky9if13244828pbc.236
调试IMAPS:AUTH:XOAUTH
调试IMAPS:AUTH:XOAUTH2
调试IMAPS:AUTH:PLAIN
调试IMAPS:AUTH:PLAIN-CLIENTTOKEN
调试IMAPS:protocolConnect登录,主机=imap.gmail.com,用户=mymail@gmail.com,密码=
调试IMAPS:取消验证普通命令跟踪
调试IMAPS:验证普通命令结果:A1正常mymail@gmail.commymail已验证(成功)
A2能力
*功能IMAP4rev1取消选择空闲命名空间配额ID XLIST子项X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH
A2 OK成功
imaps://mymail%40gmail.com@imap.gmail.com
调试IMAPS:连接可用--大小:1
A3选择收件箱
*标志(\Answeed\Flagged\Draft\Deleted\Seen XAOL-RECEIVED XAOL-BILLPAY-MAIL XAOL-READ$hasEmbedded$NotJunk$hasAttached NotJunk XAOL-GOOD XAOL-CERTIFIED-MAIL$Junk XAOL-GOOD Check-DONE)
*允许使用[PERMANENTFLAGS(\Answeed\Flagged\Draft\Deleted\Seen XAOL-RECEIVED XAOL-BILLPAY-MAIL XAOL-READ$hasEmbedded$NotJunk$hasAttached NotJunk XAOL-GOOD XAOL-CERTIFIED-MAIL$Junk XAOL-GOODCHECK-DONE\*)标志。
*确定[UID有效性622695996]UID有效。
*2存在
*0最近
*正常[UIDNEXT 136]预测下一个UID。
*正常[最高ModSeq 48713]
A3已选择OK[读写]收件箱。(成功)
调试IMAPS:IMAPProtocol noop
A4Noop
A4 OK成功
A5商店1:2+标志(\已删除)
*1获取(标志(\已删除))
*2获取(标志(\已删除))
A5 OK成功
A6搜索已全部删除
*搜寻
A6正常搜索已完成(成功)
已删除邮件:0
调试IMAPS:IMAPProtocol noop
A7努普
*1删去
*1删去
*0存在
A7 OK成功
邮件总数:2
A8搜索已全部删除
*搜寻
A8确定搜索已完成(成功)
已删除邮件:0
文件夹:收件箱
雅虎删除消息协议跟踪

DEBUG: setDebug: JavaMail version ${mail.version}
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Sun Microsystems, Inc.,${mail.version}]
DEBUG IMAPS: mail.imap.fetchsize: 16384
DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
DEBUG IMAPS: mail.imap.appendbuffersize: -1
DEBUG IMAPS: mail.imap.minidletime: 10
DEBUG IMAPS: trying to connect to host "imap.mail.yahoo.com", port 993, isSSL true
* OK [CAPABILITY IMAP4rev1 ID NAMESPACE X-ID-ACLID UIDPLUS LITERAL+ CHILDREN XAPPLEPUSHSERVICE XYMHIGHESTMODSEQ AUTH=PLAIN AUTH=LOGIN AUTH=XYMCOOKIE AUTH=XYMECOOKIE AUTH=XYMCOOKIEB64 AUTH=XYMPKI] IMAP4rev1 imapgate-0.7.68_14.446672 imap424.mail.bf1.yahoo.com
DEBUG IMAPS: AUTH: PLAIN
DEBUG IMAPS: AUTH: LOGIN
DEBUG IMAPS: AUTH: XYMCOOKIE
DEBUG IMAPS: AUTH: XYMECOOKIE
DEBUG IMAPS: AUTH: XYMCOOKIEB64
DEBUG IMAPS: AUTH: XYMPKI
DEBUG IMAPS: protocolConnect login, host=imap.mail.yahoo.com, user=mymail@yahoo.com, password=<non-null>
DEBUG IMAPS: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAPS: AUTHENTICATE PLAIN command result: A0 OK AUTHENTICATE completed - Mailbox size in bytes is 70034
A1 CAPABILITY
* CAPABILITY IMAP4rev1 ID NAMESPACE X-ID-ACLID UIDPLUS LITERAL+ XAPPLEPUSHSERVICE XYMHIGHESTMODSEQ
A1 OK CAPABILITY completed
imaps://mymail%40yahoo.com@imap.mail.yahoo.com
DEBUG IMAPS: connection available -- size: 1
A2 SELECT nsharma
* 2 EXISTS
* 0 RECENT
* OK [UIDVALIDITY 1379585757] UIDs valid
* OK [UIDNEXT 17] Predicted next UID
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft)
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft)] Permanent flags
* OK [HIGHESTMODSEQ 5926770610774517536]
A2 OK [READ-WRITE] SELECT completed; now in selected state
DEBUG IMAPS: IMAPProtocol noop
A3 NOOP
A3 OK NOOP completed
DEBUG IMAPS: IMAPProtocol noop
A4 NOOP
A4 OK NOOP completed
A5 STORE 1:2 +FLAGS (\Deleted)
* 1 FETCH (FLAGS (\Deleted))
* 2 FETCH (FLAGS (\Deleted))
A5 OK STORE completed
A6 SEARCH DELETED ALL
* SEARCH 1 2 
A6 OK SEARCH completed
DELETED MAILS: 2
DEBUG IMAPS: IMAPProtocol noop
A7 NOOP
* 2 EXISTS
* 0 RECENT
A7 OK NOOP completed
TOTAL MAILS: 2
A8 SEARCH DELETED ALL
* SEARCH 1 2 
A8 OK SEARCH completed
DELETED MAILS: 2
FOLDER: nsharma
...details of both mails was printed...
DEBUG:setDebug:JavaMail版本${mail.version}
调试:getProvider()返回javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,sun Microsystems,Inc.,${mail.version}]
调试IMAPS:mail.imap.fetchsize:16384
调试IMAPS:mail.imap.ignorebodystructuresize:false
调试IMAPS:mail.imap.statuscachetimeout:1000
调试IMAPS:mail.imap.appendbuffersize:-1
调试IMAPS:mail.imap.minidletime:10
调试IMAPS:尝试连接到主机“imap.mail.yahoo.com”,端口993,isSSL true
*OK[CAPABILITY IMAP4rev1 ID NAMESPACE X-ID-ACLID UIDPLUS LITERAL+CHILDREN XAPPLEPUSHSERVICE XYMHIGHESTMODSEQ AUTH=PLAIN AUTH=LOGIN AUTH=XYMCOOKIE AUTH=XYMCOOKIE AUTH=XYMCOOKIE AUTH=XYMCOOKIEB64 AUTH=XYMPKI]IMAP4rev1 imapgate-0.7.68_14.446672 imap424.mail.bf1.yahoo.com
调试IMAPS:AUTH:PLAIN
调试IMAPS:AUTH:LOGIN
调试IMAPS:AUTH:XYMCOOKIE
调试IMAPS:AUTH:XYMECOOKIE
调试IMAPS:AUTH:XYMCOOKIEB64
调试IMAPS:AUTH:XYMPKI
调试IMAPS:protocolConnect登录,主机=imap.mail.yahoo.com,用户=mymail@yahoo.com,密码=
调试IMAPS:取消验证普通命令跟踪
调试IMAPS:AUTHENTICATE普通命令结果:A0 OK AUTHENTICATE completed-邮箱大小(字节)为70034
A1能力
*功能IMAP4rev1 ID命名空间X-ID-ACLID UIDPLUS文字+XAPPLEPUSHSERVICE XYMHIGHESTMODSEQ
A1正常能力完成
imaps://mymail%40yahoo.com@imap.mail.yahoo.com
调试IMAPS:连接可用--大小:1
A2选择恩沙玛
*2存在
*0最近
*正常[UID有效性1379585757]UID有效
*正常[UIDNEXT 17]预测下一个UID
*标志(\response\Flagged\Deleted\Seen\Draft)
*确定[永久性标志(\response\Flagged\Deleted\Seen\Draft)]永久性标志
*正常[最高ModSeq 5926770610774517536]
A2确定[读写]选择完成;现在处于选定状态
调试IMAPS:IMAPProtocol noop
A3 NOOP
A3 OK NOOP已完成
调试IMAPS:IMAPProtocol noop
A4Noop
A4 OK NOOP已完成
A5商店1:2+标志(\已删除)
*1获取(标志(\已删除))
*2获取(标志(\已删除))
A5 OK商店完工
A6搜索已全部删除
*搜索1 2
A6 OK搜索已完成
已删除邮件:2
调试IMAPS:IMAPProtocol noop
A7努普
*2存在
*0最近
A7 OK NOOP已完成
邮件总数:2
A8搜索已全部删除
*搜索1 2
A8确定搜索已完成
已删除邮件:2
文件夹:nsharma
…两封邮件的详细信息都打印出来了。。。