【问题标题】:Downloading messages from Gmail using IMAPS hangs使用 IMAPS 从 Gmail 下载邮件挂起
【发布时间】:2014-05-17 11:17:39
【问题描述】:

当我尝试使用 IMAPS 从 GMAIL 下载电子邮件时,我遇到了一个奇怪的问题。我使用 JavaMail API。当它尝试下载特定文件时,它只会挂起并且不会超时。我没有配置任何超时。所以,它简单地呆在那里。但是,控制台中没有错误或任何异常。我已将mail.imaps.prefetch 属性设置为false。我在下面的挂邮件上显示了调试跟踪

A87 FETCH 22 (ENVELOPE INTERNALDATE RFC822.SIZE)
* 22 FETCH (RFC822.SIZE 18474 INTERNALDATE "09-Oct-2012 05:26:11 +0000" ENVELOPE ("Tue, 9 Oct 2012 10:56:11 +0530" "HI" (("XXX" NIL "XXX" "gmail.com")) (("XXX.MCA" NIL "XXX" "gmail.com")) (("YYY" NIL "YYY" "gmail.com")) (("YYY" NIL "YYY" "gmail.com")) NIL NIL NIL "<CAM_EtGJGGOg-AQvMNsnGbbO-AWaVORk8NjwYU2XtsbeOR7MpuA@mail.gmail.com>"))
A87 OK Success
Message subject : HI
A88 FETCH 22 (BODYSTRUCTURE)
* 22 FETCH (BODYSTRUCTURE (("TEXT" "PLAIN" ("CHARSET" "ISO-8859-1") NIL NIL "7BIT" 44 1 NIL NIL NIL)("APPLICATION" "VND.OPENXMLFORMATS-OFFICEDOCUMENT.WORDPROCESSINGML.DOCUMENT" ("NAME" "Servlets are server side components that provide a powerful mechanism for developing server side programs.docx") NIL NIL "BASE64" 15964 NIL ("ATTACHMENT" ("FILENAME" "Servlets are server side components that provide a powerful mechanism for developing server side programs.docx")) NIL) "MIXED" ("BOUNDARY" "bcaec55554467e8be004cb99931c") NIL NIL))
A88 OK Success
A89 FETCH 22 (BODY[1])
* 22 FETCH (BODY[1] {44}
 ur definition is here....................
)
A89 OK Success

可能是文件名的长度是这里的问题。但是,我希望它会引发一些错误。我也不确定。这个特定的消息会有什么问题?请有人帮忙!

【问题讨论】:

    标签: java gmail jakarta-mail imap


    【解决方案1】:

    看起来您在调试输出中用一些虚假内容替换了正文。查看实际内容可能有助于确保协议消息的格式没有错误。

    您是否获得了线程转储以准确查看程序挂起的位置?尝试从 IMAP 连接读取数据时是否挂起?程序挂起时调用什么方法?

    正如下面的 cmets 中所述,您需要确保您的程序没有抛出您没有捕捉到的运行时异常,从而使您的程序看起来像是挂起,而实际上它已被中止。

    【讨论】:

    • 我在问题中提供了实际的身体部位。我刚刚更换了电子邮件地址。它似乎在 Java 邮件 api 的某个地方被阻塞。我不知道如何到达它挂起的地方。什么是线程转储?你能帮我理解吗?我已经放置了 Java 邮件调试跟踪的最后几行,之后它就挂了
    • 谷歌“java线程转储”。如何执行取决于您的操作系统、是否使用 IDE 等。您还可以在程序中放入 print 语句,以确定在程序挂起时调用的方法。哦,确保它不会抛出一些你没有捕获的运行时异常。
    • 你是对的。 IllegalArgumentExceptionFile createTempFile(String prefix,String suffix) 抛出。我没有抓住它。我确实附上了 Java 邮件和 IMAP 源的源并进行了调试。但是,问题出在我的代码中。我确实忘记为基础 Exception 添加一个 catch 块。感谢您的洞察力。请将关于运行时异常的评论添加到答案中。所以,我可以接受你的回答。
    猜你喜欢
    • 2013-01-07
    • 1970-01-01
    • 2014-11-08
    • 2014-03-18
    • 2012-08-13
    • 2014-11-01
    • 2012-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多