Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaMail Gmail问题&引用;“准备好启动TLS”;然后失败了_Java_Ssl_Smtp_Gmail - Fatal编程技术网

JavaMail Gmail问题&引用;“准备好启动TLS”;然后失败了

JavaMail Gmail问题&引用;“准备好启动TLS”;然后失败了,java,ssl,smtp,gmail,Java,Ssl,Smtp,Gmail,我还在我的密钥库中安装了gmail smtp证书 openssl s_客户端-连接smtp.gmail.com:465 mailServerProperties = System.getProperties(); mailServerProperties.put("mail.smtp.port", "587"); mailServerProperties.put("mail.smtp.auth", "true"); mailServerProperties.put

我还在我的密钥库中安装了gmail smtp证书 openssl s_客户端-连接smtp.gmail.com:465

    mailServerProperties = System.getProperties();
    mailServerProperties.put("mail.smtp.port", "587");
    mailServerProperties.put("mail.smtp.auth", "true");
    mailServerProperties.put("mail.smtp.ssl.trust", "*");
    mailServerProperties.put("mail.smtp.starttls.enable", "true");
    mailServerProperties.put("mail.debug", "true");

    getMailSession = Session.getDefaultInstance(mailServerProperties, null);
    generateMailMessage = new MimeMessage(getMailSession);
    generateMailMessage.addRecipient(Message.RecipientType.TO, new InternetAddress("blah@gmail.com"));
    generateMailMessage.addRecipient(Message.RecipientType.CC, new InternetAddress("blah@gmail.com"));
    generateMailMessage.setSubject("Greetings");
    String emailBody = "Test email";
    generateMailMessage.setContent(emailBody, "text/html");
    System.out.println("Mail Session has been created successfully..");

    Transport transport = getMailSession.getTransport("smtp");

    transport.connect("smtp.gmail.com", 587, "user", "password");
    transport.sendMessage(generateMailMessage, generateMailMessage.getAllRecipients());
    transport.close();

有人能帮忙吗?在过去的几个小时里,您一直在为这个问题苦苦挣扎。

您使用的是什么TLS协议?另外,为什么密钥库使用端口465而不是587?我使用端口587。检查代码中的邮件服务器属性我指的是您对已安装的gmail smtp证书的评论。抱歉更正。一个在线参考指向我从该位置获取证书。我假设该证书将覆盖该主机下的所有端口
DEBUG: getProvider() returning    javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Oracle]
DEBUG SMTP: useEhlo true, useAuth true
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL false
220 smtp.gmail.com ESMTP i80sm10888185wmf.11 - gsmtp
DEBUG SMTP: connected to host "smtp.gmail.com", port: 587

EHLO uk-lon01-mws07
250-smtp.gmail.com at your service, [2.220.210.180]
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 (BOMBS OUT AT THIS POINT)
Exception in thread "main" javax.mail.MessagingException: Could not convert socket     to TLS;
  nested exception is:
javax.net.ssl.SSLHandshakeException: Remote host closed connection during     handshake
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:2046)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:711)
at javax.mail.Service.connect(Service.java:366)
at com.lawrenceadams.Mail.generateAndSendEmail(Mail.java:50)
at com.lawrenceadams.Mail.main(Mail.java:16)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at     sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
Caused by: javax.net.ssl.SSLHandshakeException: Remote host closed connection     during handshake
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:992)
at     sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1375)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1403)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1387)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:598)
at com.sun.mail.util.SocketFetcher.startTLS(SocketFetcher.java:525)
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:2041)
... 9 more
 Caused by: java.io.EOFException: SSL peer shut down incorrectly
at sun.security.ssl.InputRecord.read(InputRecord.java:505)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:973)
... 15 more