2016-09-21 7 views
0

Я имел следующую ошибку относительно сертификата Java SSL для отправки электронной почты:Java почты Ошибка: 550 аутентификации SMTP

Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target 
at sun.security.provider.certpath.SunCertPathBuilder.build(SunCertPathBuilder.java:141) 
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:126) 
at java.security.cert.CertPathBuilder.build(CertPathBuilder.java:280) 
at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:382) 
... 23 more 

Я создал сертификат с помощью InstallCert.java, и теперь я получаю следующее сообщение об ошибке:

com.sun.mail.smtp.SMTPSendFailedException: 550 SMTP authentication mandatory 

at com.sun.mail.smtp.SMTPTransport.issueSendCommand(SMTPTransport.java:1388) 
at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:959) 
at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:583) 
at com.MailerPecUtility.sendMail(MailerPecUtility.java:201) 
at com.MailerPecUtility.main(MailerPecUtility.java:266) 

Кто-нибудь знает, как я должен это решить ?? Спасибо

ответ

0

Вместо этой линии:

transport.connect(specProps.getProperty("mail.smtp.host"), port, user, pass); 

я должен был использовать это:

transport.connect(null,smtpUser,smtpPassword); 

Поэтому, следующим образом, я мог бы отправить электронную почту без ошибок:

  message.setText("The email body text"); 
     Transport transport = session.getTransport("smtp"); 
     transport.connect(null,smtpUser,smtpPassword); 
     message.saveChanges(); 
     Transport.send(message); 
     System.out.println("Message Has been sent!");