1

我正在尝试使用 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 对象。

谁能告诉我:

  1. 如果有办法让雅虎邮件服务器上的文件夹保持打开状态,直到它被明确关闭?

  2. 如果有一些属性或设置可用于增加此“30 分钟”间隔,之后雅虎的 IMAP 服务器将关闭该文件夹。

谢谢。

4

0 回答 0