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.
對不起,如果我不夠清楚,服務器配置設置爲端口143,但也需要ssl。我無法更改服務器配置,它不是我的。在這種情況下我們能做些什麼? –
有人搞砸了你的服務器配置。和/或你誤解了服務器配置。如果你使用** SSL連接端口143 **,並且它抱怨說它是純文本連接,那麼猜猜看它是什麼,它可能確實是純文本連接。試試看。 –
還要注意,只需使用「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)屬性,如果您的服務器需要純文本連接。 –