【问题标题】:not able to make connection using javamail api无法使用 javamail api 建立连接
【发布时间】:2014-05-29 07:13:42
【问题描述】:

我正在尝试使用 java 邮件 api 与用户 loginId 密码和主机名连接到邮件服务器。但是,如果任何一个 id 无法建立连接,那么即使它们具有正确的凭据,以下 id 也无法授权。

我是否必须在循环后关闭存储值。

      sessions = Session.getDefaultInstance(properties);
      store = sessions.getStore(emailAccType);
      store.connect(emailHost,emailId, emailPwd);

我需要在 try/catch 的 finally 块中关闭什么。

以下错误。

javax.mail.MessagingException: Connect failed; nested exception is: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:161) at javax.mail.Service.connect(Service.java:288) at javax.mail.Service.connect(Service.java:169) at com.scheduler.utils.QuartzImplementation.<init>(QuartzImplementation.java:77) at com.scheduler.utils.SchedulerRedirect.execute(SchedulerRedirect.java:31) at org.quartz.core.JobRunShell.run(JobRunShell.java:202) at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:529) Caused by: javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection? at com.sun.net.ssl.internal.ssl.InputRecord.handleUnknownRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source) at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source) at java.io.BufferedInputStream.fill(Unknown Source) at java.io.BufferedInputStream.read(Unknown Source) at java.io.DataInputStream.readLine(Unknown Source) at com.sun.mail.pop3.Protocol.simpleCommand(Protocol.java:360) at com.sun.mail.pop3.Protocol.<init>(Protocol.java:104) at com.sun.mail.pop3.POP3Store.getPort(POP3Store.java:214) at com.sun.mail.pop3.POP3Store.protocolConnect(POP3Store.java:157)

它是第一次执行,但如果失败,就会出现这个问题。 提前致谢

【问题讨论】:

    标签: java ssl jakarta-mail store


    【解决方案1】:

    Refer the answer to this question

    请确保您已完整阅读 java 邮件 API 常见问题解答。

    【讨论】:

    • 是的,我做到了,但问题是我没有得到它。为什么连接失败会失败
    • 请调用 Session.getInstance(properties);而不是 Session.getDefaultInstance(properties) 并确保为每个帐户创建一个新的会话对象
    • javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?.. 这可能是因为您没有连接到正确的端口。 pop3 的默认端口是 110,对于安全的 SSL pop3 连接,连接到端口 995
    • 这两个我都试过但仍然失败。现在我面临着新问题,因为 'javax.mail.AuthenticationFailedException: Mailbox locked' 使用相同的代码。
    猜你喜欢
    • 1970-01-01
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-26
    • 2015-01-16
    • 1970-01-01
    相关资源
    最近更新 更多