无法发送邮件(jre 7 + tomcat + TLS)

时间:2016-08-03 12:18:23

标签: java tomcat javamail java-7 java-6

我有一个带有jre6的tomcat web应用程序。它以https模式运行。 它发送邮件警报。该应用程序将自生成证书作为使用Keytool - JRE 6生成的信任库文件。

最近使用jre7升级了应用程序。我将应用程序更改为https模式,该模式使用Keytool -JRE7生成信任库文件。在这里,我无法发送邮件。抛出错误。两个应用程序代码之间没有变化。只是jre是差异。

  

javax.mail.MessagingException:无法向SMTP主机发送命令;          嵌套异常是:           的 javax.net.ssl.SSLHandshakeException:       sun.security.validator.ValidatorException:PKIX路径构建失败:sun.security.provider.certpath.SunCertPathBuilderException:无法找到所请求目标的有效证书路径 |       at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1420)|       at com.sun.mail.smtp.SMTPTransport.sendCommand(SMTPTransport.java:1408)|       at com.sun.mail.smtp.SMTPTransport.ehlo(SMTPTransport.java:847)|       at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:384)|       在javax.mail.Service.connect(Service.java:297)|       在javax.mail.Service.connect(Service.java:156)|       在javax.mail.Service.connect(Service.java:105)|       在com.server.util.MailServerHandler.checkMailServer(MailServerHandler.java:145)|

Java Mail Debug就在这里。     它停在EHLO命令。

    DEBUG: !anyLoaded|
    DEBUG: not loading resource: /META-INF/javamail.providers|
    DEBUG: successfully loaded resource: /META-INF/javamail.default.providers|
    DEBUG: Tables of loaded providers|
    DEBUG: not loading resource: /META-INF/javamail.address.map|
    DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc]|
    DEBUG SMTP: useEhlo true, useAuth true|
    DEBUG SMTP: useEhlo true, useAuth true|
    DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false|
    250-smtp.gmail.com at your service
    250-SIZE 35882577
    250-8BITMIME
    250-STARTTLS
    250-ENHANCEDSTATUSCODES
    250-PIPELINING
    250-CHUNKING
    250 SMTPUTF8
    DEBUG SMTP: Found extension "SIZE", arg "35882577"|
    DEBUG SMTP: Found extension "8BITMIME", arg ""|
    DEBUG SMTP: Found extension "STARTTLS", arg ""|
    DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg ""|
    DEBUG SMTP: Found extension "PIPELINING", arg ""|
    DEBUG SMTP: Found extension "CHUNKING", arg ""|
    DEBUG SMTP: Found extension "SMTPUTF8", arg ""|
    STARTTLS
    220 2.0.0 Ready to start TLS
    EHLO rajesh-2668

这是我设置的smtp属性。

mail.smtp.starttls.enable=true
mail.debug=true
mail.smtp.port=587
mail.smtp.auth=true
mail.smtp.host=smtp.gmail.com
mail.smtp.starttls.required=true
mail.smtp.timeout=10000
mail.smtp.connectiontimeout=10000

我无法弄清楚出了什么问题?我是否需要任何代码级别更改或任何conf更改?因为我被困了一个星期,所以请在这里扔一些灯。非常感谢帮助。

0 个答案:

没有答案