【问题标题】:Remote host closed connection during handshake exception while sending out mail using Java Mail使用 Java Mail 发送邮件时,在握手异常期间远程主机关闭连接
【发布时间】:2013-01-04 08:04:42
【问题描述】:

我正在使用 Java 邮件 API 版本。 1.4.2 用于在基于 JSF 1.2-Spring 的 Web 应用程序中发送电子邮件。我正在使用非安全 SMTP 连接发送邮件。此电子邮件配置独立运行良好。还使用 JUnit 4 测试验证了此实用程序,并且我能够使用非安全连接发送邮件。

当我将此电子邮件模块与主 Web 应用程序集成时,我在发送邮件时在运行时收到以下异常。

javax.mail.MessagingException:异常读取响应;嵌套异常是:javax.net.ssl.SSLHandshakeException:远程主机关闭 握手期间的连接 com.sun.mail.smtp.SMTPTransport.readServerResponse(SMTPTransport.java:1764) 在 com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1523) 在 com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:453) 在 javax.mail.Service.connect(Service.java:317) 在 javax.mail.Service.connect(Service.java:176) 在 javax.mail.Service.connect(Service.java:125) 在 javax.mail.Transport.send0(Transport.java:194) 在 javax.mail.Transport.send(Transport.java:124)

使用安全 SMTP 连接验证此电子邮件模块,它工作正常。

有人对这个问题有想法吗?为什么非安全 SMTP 连接无法与 Web 应用程序集成?

【问题讨论】:

  • 您的远程主机是否接受来自您发送的服务器?您是否尝试过通过 Java 从服务器发送电子邮件但在您的 Web 应用程序外部?您说它独立工作正常并且您使用 JUnit 进行了验证,但它是独立于您的开发站还是独立于服务器本身?
  • 您还尝试使用哪个端口,SSL 端口还是非 SSL 端口?默认为端口 25。
  • 以下属性导致问题:props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");为非安全连接删除了这个。

标签: java ssl email


【解决方案1】:

我将电子邮件模块用于安全和非安全连接。 在以下属性中导致了问题: props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");

删除了非安全连接的此属性,现在我的非安全 SMTP 连接正在与 Web 应用程序集成。

【讨论】:

    猜你喜欢
    • 2017-03-03
    • 1970-01-01
    • 2012-08-12
    • 2018-09-27
    • 1970-01-01
    • 2019-07-19
    • 2018-07-29
    相关资源
    最近更新 更多