2016-03-30 30 views
2

我試圖連接到基於用戶服務器的imap商店。例如,我有多個服務器,如使用ssl的143和不使用ssl的993。當我嘗試連接到143 ssl服務器時,它說明白連接。有沒有辦法連接到這樣的商店?Java imap連接存儲有和沒有ssl

在java中是否還有其他任何javamail以外的IMAP?

一些代碼如下─>

Properties props = System.getProperties(); 
String imapProtocol = server.getImapSsl() != null && server.getImapSsl() == true ? "imaps" : "imap"; 
props.put("mail.store.protocol", imapProtocol); 
props.put("mail." + imapProtocol + ".port", server.getImapPort()); 
props.put("mail." + imapProtocol + ".host", server.getImapHost()); 

javax.mail.Session mailSession = javax.mail.Session.getInstance(props, null); 
Store store = mailSession.getStore(); 
store.connect(server.getImapHost(), server.getImapPort(), username, password); 

UPDATE(調試) - >

DEBUG IMAP: enable STARTTLS 
DEBUG IMAP: closeFoldersOnStoreFailure 
DEBUG IMAP: trying to connect to host "imap.itheme.mn", port 143, isSSL false 
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE NAMESPACE STARTTLS AUTH=PLAIN AUTH=LOGIN] Dovecot ready. 
DEBUG IMAP: AUTH: PLAIN 
DEBUG IMAP: AUTH: LOGIN 
DEBUG IMAP: protocolConnect login, host=imap.somemail.mn, [email protected], password=<non-null> 
A0 STARTTLS 
A0 OK Begin TLS negotiation now. 
A1 CAPABILITY 
* CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE NAMESPACE AUTH=PLAIN AUTH=LOGIN 
A1 OK Pre-login capabilities listed, post-login capabilities have more. 
DEBUG IMAP: AUTH: PLAIN 
DEBUG IMAP: AUTH: LOGIN 
DEBUG IMAP: AUTHENTICATE LOGIN command trace suppressed 
DEBUG IMAP: AUTHENTICATE LOGIN command result: A2 NO [AUTHENTICATIONFAILED] Authentication failed. 

回答

1

你得到的端口號倒退。 143是純文本。

+0

對不起,如果我不夠清楚,服務器配置設置爲端口143,但也需要ssl。我無法更改服務器配置,它不是我的。在這種情況下我們能做些什麼? –

+0

有人搞砸了你的服務器配置。和/或你誤解了服務器配置。如果你使用** SSL連接端口143 **,並且它抱怨說它是純文本連接,那麼猜猜看它是什麼,它可能確實是純文本連接。試試看。 –

+0

還要注意,只需使用「imap」協議並設置[mail.imap.ssl.enable](https://javamail.java.net/nonav/docs/api/com/sun/)即可簡化程序mail/imap/package-summary.html#mail.imap.ssl.enable)屬性;假設你使用了正確的默認端口號,JavaMail將選擇端口號,所以你不需要設置它。您可能還想使用[mail.imap.starttls.enable](https://javamail.java.net/nonav/docs/api/com/sun/mail/imap/package-summary.html#mail.imap .starttls.enable)屬性,如果您的服務器需要純文本連接。 –