当我尝试使用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
可能是文件名的长度是这里的问题。但是,我希望它会给它带来一些错误。我也不确定。这个特定的消息会有什么问题?请有人帮忙!
答案 0 :(得分:0)
看起来你在调试输出中用一些假内容替换了主体。查看实际内容可能有助于确保协议消息的格式化没有错误。
您是否有线程转储以查看程序的确切位置?是否挂起试图从IMAP连接读取数据?你的程序在挂起时调用了什么方法?
正如下面的评论中所提到的,你需要确保你的程序没有抛出你没有捕获的运行时异常,使得程序看起来已经挂起,而实际上它已经被中止了。