Java-E-mail ohne ssl - PKIX path building failed:
Bin ich mit dem java-mail-zum senden von E-Mails über smtp. Die smtp-Einstellungen, die unten gegeben werden:
Properties props = new Properties();
Object put = props.put("mail.smtp.host", smtpHost);
props.put("mail.smtp.user", smtpUser);
props.put("mail.smtp.auth", true);
props.put("mail.debug", mailDebug);
props.put("mail.smtp.port", port);
Den smtp-Anmeldeinformationen überprüft wurden, indem Sie die Telnetverbindung zu Port meine smtpHost mit den oben genannten details. Jedoch bekomme ich folgende exception, wenn ich den obigen Einstellungen in der java-mail.
250-AUTH PLAIN LOGIN
250-STARTTLS
250 HELP
DEBUG SMTP: Found extension "SIZE", arg "52428800"
DEBUG SMTP: Found extension "8BITMIME", arg ""
DEBUG SMTP: Found extension "PIPELINING", arg ""
DEBUG SMTP: Found extension "AUTH", arg "PLAIN LOGIN"
DEBUG SMTP: Found extension "STARTTLS", arg ""
DEBUG SMTP: Found extension "HELP", arg ""
DEBUG SMTP: Attempt to authenticate
DEBUG SMTP: check mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM
DEBUG SMTP: AUTH LOGIN command trace suppressed
DEBUG SMTP: AUTH LOGIN failed
Nov 29, 2012 11:54:40 AM com.Test main
SEVERE: null
javax.mail.AuthenticationFailedException: 535 Incorrect authentication data
Wenn ich die Zeile hinzufügen :
props.put("mail.smtp.starttls.enable", false);
Wieder erzeugt die gleiche Authentifizierung fehlgeschlagen Ausnahme.
Wenn ich mail.smtp.starttls.aktivieren zu wahr, die Authentifizierung erfolgreich ist, aber ich bekomme die folgende exception:
220 TLS go ahead
Nov 28, 2012 5:32:36 PM com.Test main
SEVERE: null
javax.mail.MessagingException: Could not convert socket to TLS;
nested exception is:
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at com.sun.mail.smtp.SMTPTransport.startTLS(SMTPTransport.java:1918)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:652)
at javax.mail.Service.connect(Service.java:317)
Nachdem Sie durch verschiedene forum-threads über die zweite Ausnahme, lief ich in den InstallCert Programm zum abrufen der server selbst signiertes Zertifikat. Die InstallCert wirft die folgende Ausnahme:
Opening connection to mydomain.com.au:443...
Starting SSL handshake...
javax.net.ssl.SSLException: Unrecognized SSL message, plaintext connection?
at sun.security.ssl.InputRecord.handleUnknownRecord(InputRecord.java:542)
at sun.security.ssl.InputRecord.read(InputRecord.java:374)
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:850)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1190)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1217)
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1201)
at InstallCert.main(InstallCert.java:100)
Could not obtain server certificate chain
So, sieht aus wie mein server nicht mit ssl, aber starttls aktiviert ist. Was sind die richtigen Parameter für das senden von E-mail mit STARTTLS auf, auf einem server ohne ssl?
InformationsquelleAutor janenz00 | 2012-11-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
Diese JavaMail FAQ-Eintrag sollte helfen.
Versuchen Sie es mit MailSSLSocketFactory wie diese:
Bearbeitet meine Frage mit der InstallCert Ausnahme zu.
Das problem mit InstallCert ist, dass es nur funktioniert, wenn Sie eine SSL-Verbindung zu beginnen. Wenn Ihr server unterstützt nur plain-text-verbindungen zu konvertieren, um SSL (TLS) Verbindung, InstalCert nicht helfen. Vielleicht möchten Sie sich an der MailSSLSocketFactory Klasse, das macht es einfacher für Sie zu handhaben, selbst-signierte Zertifikate, die sonst nicht überprüfen.
Wie verwende ich MailSSLSocketFactory?
Welcher Teil des MailSSLSocketFactory javadocs war das nicht klar?
InformationsquelleAutor Bill Shannon
War für mich
:)
InformationsquelleAutor Danyal Sandeelo
Ich hatte das problem auch mit java 8. Nach der Aktualisierung dieser Eigenschaft problem gelöst
Ich denke, das wird helfen.
InformationsquelleAutor Asanka