2012-01-12 12 views
3

SSL接続を使用してGmail SMTPサーバー経由で電子メール通知を送信しようとしています。しかし、メールは届かない。エラーは報告されていません。私の方法send()は以下のとおりです。助けてください。私はJSF2を使用しています。SSL接続を使用してGmail SMTPサーバー経由で電子メール通知を送信

public void send() 
{ 
    Properties props = new Properties(); 
    props.put("mail.smtp.host", "smtp.gmail.com"); 
    props.put("mail.smtp.socketFactory.port", "465"); 
    props.put("mail.smtp.socketFactory.class", 
      "javax.net.ssl.SSLSocketFactory"); 
    props.put("mail.smtp.auth", "true"); 
    props.put("mail.smtp.port", "465"); 

    Session session = Session.getDefaultInstance(props, 
      new javax.mail.Authenticator() { 
     protected PasswordAuthentication getPasswordAuthentication() { 
      return new PasswordAuthentication("userName","password"); 
     } 
    }); 

    try { 

     Message message = new MimeMessage(session); 
     message.setFrom(new InternetAddress("[email protected]")); 
     message.setRecipients(Message.RecipientType.TO, 
       InternetAddress.parse("[email protected]")); 
     message.setSubject("Testing Subject"); 
     message.setText("Dear Mail Crawler," + 
       "\n\n No spam to my email, please!"); 

     Transport.send(message); 

     System.out.println("Done"); 

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

これに関連してJSF2とはどのくらい正確ですか? 'main()'メソッドを使ってプレーンなJavaアプリケーションで実行すると、これが正しく動作することを意味していますか?そのように失敗したとしても、それはJSF2とは全く関係がなく、JSF2タグを削除する必要があります。 – BalusC

+0

Ok.Butこれは 'main()'にありません。私はこれを 'send()'と呼んでいました。 – NaaN

+2

私はあなたが私を理解していないと思う。このコードを 'main()'メソッドの中にコピーし、通常のJavaアプリケーションとして実行します。まったく同じ問題が発生した場合、JSF2にはまったく関係しません。結局のところ、通常のJavaアプリケーションとして実行することで、はるかに迅速かつ簡単に開発/テストすることができます。一旦それが機能するようになると、JSF2アクション・メソッドでスタンドアロンJavaクラスをインポート/コールするだけです。 – BalusC

答えて

関連する問題