【发布时间】: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");为非安全连接删除了这个。