我正在尝试使用 JavaMail API 通过 IMAP 访问 Yahoo 邮件。我可以成功连接到雅虎邮件服务器,并且能够使用folder.getMessages()
文件夹是javax.mail.Folder
类对象的调用来获取邮件。
我需要遍历此调用返回的所有消息,并获取此迭代中每条消息的接收日期。迭代适用于少量消息,因为它不需要很长时间,但是如果返回的消息数量很大(例如大约 10000 条)并且迭代需要超过 30 分钟,则在 30 分钟后会出现以下异常:
javax.mail.FolderClosedException: * BYE IMAP4rev1 Server logging out
at com.sun.mail.imap.IMAPMessage.loadEnvelope(IMAPMessage.java:1234)
at com.sun.mail.imap.IMAPMessage.getReceivedDate(IMAPMessage.java:378)
at mypack.ImapUtils.getReceivedDate(ImapUtils.java:193)
...
请注意,在此迭代期间,我不再使用 Folder 对象。
谁能告诉我:
如果有办法让雅虎邮件服务器上的文件夹保持打开状态,直到它被明确关闭?
如果有一些属性或设置可用于增加此“30 分钟”间隔,之后雅虎的 IMAP 服务器将关闭该文件夹。
谢谢。