2015-11-25 30 views
0

當服務器沒有響應時,我仍然在readresponse()處掛起。這個功能有沒有超時?ImapProtocol.readResponse超時Javamail

Properties prop =new Properties(); 
prop.setProperty("mail.imap.port","993"); 
prop.setProperty("mail.imap.ssl.enable", "true"); 
prop.setProperty("mail.imaps.timeout", "5000"); 
Session session = Session.getDefaultInstance(prop); 
IMAPProtocol protocol=new IMAPProtocol("username","imap.gmail.com",993,true,session.getDebugOut(), session.getProperties(),true); 
protocol.login("username","password"); 
protocol.select("inbox"); 
protocol.idleStart(); 
protocol.readResponse(); 

回答

1

com.sun.mail.imap documentation有一個表中,列出了所有你能爲IMAP設置會話屬性的底部。將mail.imap.timeout和或mail.imaps.timeout設置爲以毫秒爲單位的超時。

+0

它不會超時讀取操作 –

+0

如果您使用SSL上的IMAP,則必須設置mail.imaps.timeout屬性。你使用的是什麼版本的JavaMail? – jmehrens

+0

上午使用imap over ssl。 javamail版本1.4.3 –