Java邮件API-Can';无法正确设置端口
如前所述,您应该使用更多或更少的方法—始终使用Java Mail API的getInstance()方法来正确设置属性 让我们检查一下我的代码:Java邮件API-Can';无法正确设置端口,java,jakarta-mail,Java,Jakarta Mail,如前所述,您应该使用更多或更少的方法—始终使用Java Mail API的getInstance()方法来正确设置属性 让我们检查一下我的代码: [...] Properties properties = new Properties(); properties.put("mail.store.protocol", "imaps"); properties.put("mail.imap.port", "143"); properties.put("mail.imap.ssl.enable", "
[...]
Properties properties = new Properties();
properties.put("mail.store.protocol", "imaps");
properties.put("mail.imap.port", "143");
properties.put("mail.imap.ssl.enable", "true");
properties.put("mail.imaps.partialfetch", "false");
properties.put("mail.mime.base64.ignoreerrors", "true");
Session session = Session.getInstance(properties);
session.setDebug(true);
Store store = session.getStore("imaps");
store.connect(host, userName, password);
Folder imapFolder = store.getFolder(folderName);
imapFolder.open(Folder.READ_WRITE);
Message[] messages = imapFolder.search(new FlagTerm(new
lags(Flags.Flag.SEEN), false));
[...]
是否看到我的端口属性设置为“143”?让我们跳到mail api调试控制台输出:
DEBUG: setDebug: JavaMail version 1.5.6
DEBUG: getProvider() returning javax.mail.Provider[STORE,imaps,com.sun.mail.imap.IMAPSSLStore,Oracle]
DEBUG IMAPS: mail.imap.partialfetch: false
DEBUG IMAPS: mail.imap.ignorebodystructuresize: false
DEBUG IMAPS: mail.imap.statuscachetimeout: 1000
DEBUG IMAPS: mail.imap.appendbuffersize: -1
DEBUG IMAPS: mail.imap.minidletime: 10
DEBUG IMAPS: closeFoldersOnStoreFailure
DEBUG IMAPS: trying to connect to host "imap.gmail.com", port 993, isSSL true
* OK Gimap ready for requests from 213.189.150.34 r25-v6mb373781038edd
A0 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 XYZZY SASL-IR AUTH=XOAUTH2 AUTH=PLAIN AUTH=PLAIN-CLIENTTOKEN AUTH=OAUTHBEARER AUTH=XOAUTH
A0 OK Thats all she wrote! r25-v6mb373781038edd
DEBUG IMAPS: AUTH: XOAUTH2
DEBUG IMAPS: AUTH: PLAIN
DEBUG IMAPS: AUTH: PLAIN-CLIENTTOKEN
DEBUG IMAPS: AUTH: OAUTHBEARER
DEBUG IMAPS: AUTH: XOAUTH
DEBUG IMAPS: protocolConnect login, host=imap.gmail.com, user="myuser", password="mypassword"
DEBUG IMAPS: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAPS: AUTHENTICATE PLAIN command result: A1 OK "myuser" authenticated (Success)
A2 CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE ENABLE MOVE CONDSTORE ESEARCH UTF8=ACCEPT LIST-EXTENDED LIST-STATUS LITERAL- SPECIAL-USE APPENDLIMIT=35651584
A2 OK Success
DEBUG IMAPS: connection available -- size: 1
A3 SELECT WhiteListedMembers
* FLAGS (\Answered \Flagged \Draft \Deleted \Seen $NotPhishing $Phishing)
* OK [PERMANENTFLAGS (\Answered \Flagged \Draft \Deleted \Seen $NotPhishing $Phishing \*)] Flags permitted.
* OK [UIDVALIDITY 12] UIDs valid.
* 379 EXISTS
* 0 RECENT
* OK [UIDNEXT 386] Predicted next UID.
* OK [HIGHESTMODSEQ 65275]
A3 OK [READ-WRITE] WhiteListedMembers selected. (Success)
A4 SEARCH UNSEEN ALL
* SEARCH
A4 OK SEARCH completed (Success)
Unreaded messages in inbox: 0
A5 UNSELECT
A5 OK Returned to authenticated state. (Success)
DEBUG IMAPS: added an Authenticated connection -- size: 1
A6 LOGOUT
我的问题是:为什么java mail api仍然使用端口993?是否有自动端口映射?
我就是不明白
有人能给这带来光明吗
非常感谢您的回答和赞助时间
致意
马特
操作系统:Windows 10、Eclipse Oxygen 4.7.0、Java Oracle JRE 1.8.0 131、Java Mail API 1.5.6您真的在端口143上使用SSL运行IMAP吗?这充其量是“不寻常的”
如果使用默认端口,则无需设置端口属性。只需使用“imap”协议并设置“mail.imap.ssl.enable”属性,JavaMail就会选择正确的默认端口。尝试
mail.imaps.port=143
?亲爱的Usagi,正确。现在一切正常。非常感谢!比尔,谢谢你的评论。143只是一个肯定会失败的测试端口。Iirc google mail使用带有ssl端口的标准imap(您可以在第二个代码段中看到)。无论如何,要求在数据库中配置端口。