Javamail 无法连接到 postfix localhost 服务器
Javamail cannot connect to postfix localhost server
我正在尝试使用 javamail 连接到本地 postfix+dovecot 服务器。
我已经使用 Thunderbird 成功连接到服务器,所以我知道我的用户名和密码是正确的,但我总是得到
Javax.mail.AuthenticationFailedException: [AUTHENTICATIONFAILED] Authentication failed.
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:661)
at javax.mail.Service.connect(Service.java:295)
at servers.MailEngine.initMailServer(MailEngine.java:661);
我所知道的唯一一件事就是更改 java.security 以禁用一些不太安全的协议。 Dovecot 需要什么协议?还是我看错方向了。
如果这是协议问题,有什么方法可以将参数传递给编译器吗?我确实有其他服务不想支持禁用的协议
编辑:
Session emailSessionObj;
Store storeObj;
Properties props = new Properties();
props.put("mail.imap.host", 127.0.0.1);
props.put("mail.imap.port", 143);
emailSessionObj = Session.getDefaultInstance(props);
storeObj = emailSessionObj.getStore("imap");
storeObj.connect("127.0.0.1", 143, "username","password");
这是我使用的代码
这是调试输出
DEBUG: setDebug: JavaMail version 1.5.0-b01
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle]
DEBUG IMAP: mail.imap.fetchsize: 16384
DEBUG IMAP: mail.imap.ignorebodystructuresize: false
DEBUG IMAP: mail.imap.statuscachetimeout: 1000
DEBUG IMAP: mail.imap.appendbuffersize: -1
DEBUG IMAP: mail.imap.minidletime: 10
localhost : 143 : from@smsmail.pittsburgfoundry.com : smsmailpass:DEBUG IMAP: trying to connect to host "localhost", port 143, isSSL false
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot (Ubuntu) ready.
DEBUG IMAP: AUTH: PLAIN
DEBUG IMAP: protocolConnect login, host=localhost, user=from@smsmail.pittsburgfoundry.com, password=<non-null>
DEBUG IMAP: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAP: AUTHENTICATE PLAIN command result: A0 NO [AUTHENTICATIONFAILED] Authentication failed.
最后,它最终成为一个过时的 javamail 和我的地图身份验证的一些问题的组合。
另一个问题是用户名输入为 xxx@yyy.zzz
它只是想要 xxx。
来自 dovecot 和 pam 的调试消息太模糊了,因为它没有找到用户名
我正在尝试使用 javamail 连接到本地 postfix+dovecot 服务器。 我已经使用 Thunderbird 成功连接到服务器,所以我知道我的用户名和密码是正确的,但我总是得到
Javax.mail.AuthenticationFailedException: [AUTHENTICATIONFAILED] Authentication failed.
at com.sun.mail.imap.IMAPStore.protocolConnect(IMAPStore.java:661)
at javax.mail.Service.connect(Service.java:295)
at servers.MailEngine.initMailServer(MailEngine.java:661);
我所知道的唯一一件事就是更改 java.security 以禁用一些不太安全的协议。 Dovecot 需要什么协议?还是我看错方向了。
如果这是协议问题,有什么方法可以将参数传递给编译器吗?我确实有其他服务不想支持禁用的协议
编辑:
Session emailSessionObj;
Store storeObj;
Properties props = new Properties();
props.put("mail.imap.host", 127.0.0.1);
props.put("mail.imap.port", 143);
emailSessionObj = Session.getDefaultInstance(props);
storeObj = emailSessionObj.getStore("imap");
storeObj.connect("127.0.0.1", 143, "username","password");
这是我使用的代码
这是调试输出
DEBUG: setDebug: JavaMail version 1.5.0-b01
DEBUG: getProvider() returning javax.mail.Provider[STORE,imap,com.sun.mail.imap.IMAPStore,Oracle]
DEBUG IMAP: mail.imap.fetchsize: 16384
DEBUG IMAP: mail.imap.ignorebodystructuresize: false
DEBUG IMAP: mail.imap.statuscachetimeout: 1000
DEBUG IMAP: mail.imap.appendbuffersize: -1
DEBUG IMAP: mail.imap.minidletime: 10
localhost : 143 : from@smsmail.pittsburgfoundry.com : smsmailpass:DEBUG IMAP: trying to connect to host "localhost", port 143, isSSL false
* OK [CAPABILITY IMAP4rev1 LITERAL+ SASL-IR LOGIN-REFERRALS ID ENABLE IDLE STARTTLS AUTH=PLAIN] Dovecot (Ubuntu) ready.
DEBUG IMAP: AUTH: PLAIN
DEBUG IMAP: protocolConnect login, host=localhost, user=from@smsmail.pittsburgfoundry.com, password=<non-null>
DEBUG IMAP: AUTHENTICATE PLAIN command trace suppressed
DEBUG IMAP: AUTHENTICATE PLAIN command result: A0 NO [AUTHENTICATIONFAILED] Authentication failed.
最后,它最终成为一个过时的 javamail 和我的地图身份验证的一些问题的组合。
另一个问题是用户名输入为 xxx@yyy.zzz 它只是想要 xxx。 来自 dovecot 和 pam 的调试消息太模糊了,因为它没有找到用户名