使用Java,Gmail和Bouncy Castle Provider发送电子邮件

时间:2012-05-15 17:21:55

标签: java security gmail provider javax.mail

我尝试使用下一个代码发送电子邮件:

...
Security.addProvider(new BouncyCastleProvider());
...
Properties props = new Properties();
props.put("mail.smtp.auth", "true");        
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
Session session = Session.getInstance(props,
      new javax.mail.Authenticator() {
        protected PasswordAuthentication getPasswordAuthentication() {
            return new PasswordAuthentication(username, password);
        }
      });
...
Transport t = session.getTransport("smtp");
try {
     t.connect();
     t.sendMessage(message, message.getAllRecipients());
     System.out.println("Done");
 } finally {
     t.close();
 }  
 ...     

但它抛出了下一个例外:

Exception in thread "main" java.lang.RuntimeException: javax.mail.MessagingException: Could not convert socket to TLS;
nested exception is:
java.net.SocketException: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: com.sun.net.ssl.internal.ssl.DefaultSSLContextImpl) 

如果我不添加提供程序,它可以正常工作,但我需要在我的代码中解决其他问题。

//Security.addProvider(new BouncyCastleProvider());

0 个答案:

没有答案