0

Glashfish3.1.1でJavaMailを使用して電子メールを送信する際に問題が発生しています。

サーバーは例外をスローせず、ヘッダーのみを含む空のメッセージを受信者に送信するだけです。Glashfishな​​しでJavaMailを実行すると、すべてが正常に機能します。

   public void sendHtmlMessage(String subject, String html){
    // Creates a email Session and
    // and Authenticator attached to it
    Session session = getMailSession();

    try{
        MimeMessage message = createMessage(session, subject, MailSender.MIME_Type.TEXT_HTML, html); // creates message
        transportSMTPMessage(session, message); // transport message

    } catch(AddressException e){ log("Internet address is invalid!"); e.printStackTrace(); }
    catch(NoSuchProviderException e){ log("Host is invalid!"); e.printStackTrace(); }
    catch(MessagingException e){ log("Message is invalid!"); e.printStackTrace(); }
    catch(Exception e){ log("Gereric Exception!"); e.printStackTrace(); }
}

// Helper to obtain Mail Session
private Session getMailSession(){

    Properties props = new Properties();
    return Session.getInstance(props,
        new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                return new PasswordAuthentication(userName, password);
            }
        });
}
    // Helper to create MimeMessage
private MimeMessage createMessage(Session session, String subject, MailSender.MIME_Type mime, String content)
        throws AddressException, MessagingException{

    // Some code to create the message...

    message.saveChanges();
    return message;
}

// Helper to transpot the message thru the SMTP protocol
private void transportSMTPMessage(Session session, Message message)
    throws NoSuchProviderException, MessagingException{

    // Creates the transport connection and
    // Send the message
    Transport transport = session.getTransport("smtp");
    transport.connect(host, userName, password);
    transport.sendMessage(message, message.getAllRecipients());
    transport.close();
}

コードはすべて問題ないと思いますが、Glassfishで機能しないのはなぜですか?

誰かが私を助けてくれたらありがたいです。前もって感謝します。

4

1 に答える 1

0

セッションの作成後、アプリケーションでsession.setDebug(true)を呼び出します。次に、サーバーログファイルを調べて、JavaMailのデバッグ出力に何が問題になっているのかについての手がかりがあるかどうかを確認します。例外は発生していないと思います。

于 2012-07-25T19:32:24.787 に答える