2017-03-06 21 views
0

は私がのJavaMail APIを使用して電子メールを送信するためのthisチュートリアルに従ったが、私は、コードを実行しようとすると、それは私に、このエラーを示していますのJavaMail APIエラー

Exception in thread "main" java.lang.RuntimeException: 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 SendEmail.main(SendEmail.java:64) 

私はクラスでjavax.mail.jarファイルを持っていますパスと私はコードをダブルチェック、それはまだ動作していません。

これはコードです:

import java.util.Properties; 
import javax.mail.Message; 
import javax.mail.MessagingException; 
import javax.mail.PasswordAuthentication; 
import javax.mail.Session; 
import javax.mail.Transport; 
import javax.mail.internet.InternetAddress; 
import javax.mail.internet.MimeMessage; 

public class SendEmail { 
public static void main(String[] args) { 
    // Recipient's email ID needs to be mentioned. 
    String to = "[email protected]"; 

    // Sender's email ID needs to be mentioned 
    String from = "[email protected]"; 
    final String username = "[email protected]";//change accordingly 
    final String password = "password";//change accordingly 

    // Assuming you are sending email through relay.jangosmtp.net 
    String host = "smtp.gmail.com"; 

    Properties props = new Properties(); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.starttls.enable", "true"); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.port", "587"); 

    // Get the Session object. 
    Session session = Session.getInstance(props, 
    new javax.mail.Authenticator() { 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication(username, password); 
    } 
    }); 

    try { 
    // Create a default MimeMessage object. 
    Message message = new MimeMessage(session); 

    // Set From: header field of the header. 
    message.setFrom(new InternetAddress(from)); 

    // Set To: header field of the header. 
    message.setRecipients(Message.RecipientType.TO, 
      InternetAddress.parse(to)); 

    // Set Subject: header field 
    message.setSubject("Testing Subject"); 

    // Now set the actual message 
    message.setText("Hello, this is sample for to check send " + 
    "email using JavaMailAPI "); 

    // Send message 
    Transport.send(message); 

    System.out.println("Sent message successfully...."); 

    } catch (MessagingException e) { 
    throw new RuntimeException(e); 
    } 

}}

+0

私はうまく動作します... –

+0

例外メッセージはありますか? {\ f2} httpsターゲットとなるSA = G&gbv = 1&sei = CNC9WLTuNJ64jAP55ragAw – Robert

+0

はい、役に立たなかった –

答えて

0

これを追加し、再試行してください。

props.put("mail.smtp.ssl.trust", "smtp.gmail.com"); 
+0

動作しません:(別のエラーを表示スレッド "main"の例外java.lang.RuntimeException:javax.mail.AuthenticationFailedException:534-5.7.14

+0

問題は証明書に関連しています。これを試してくださいhttp://stackoverflow.com/questions/9619030/resolving-javax-net-ssl-sslhandshakeexception-sun- security-validator-validatoreが役に立ちましたら、 – Maverick

+0

実際にはそれは機能しました –

関連する問題