0

HTML形式でメールを送信しようとしています。テキスト/プレーンで機能しています。しかし、コンテンツ タイプを text/html に設定すると、メールが転送されません (例外はスローされませんが、メールも受信されません)。以下は私のコードです。

public void postMail() throws Exception {
            boolean debug = false;

            Properties props = new Properties();
            props.put("mail.smtp.host", smtpServer);
            props.put("mail.smtp.port", smtpServerPort);
            props.put("mail.smtp.auth", "false");
            props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
            props.put("mail.smtp.socketFactory.fallback","false");
            lgr.debug(lgr.isDebugEnabled()?"SMTP Server --->" + smtpServer : null);
            Session session = Session.getInstance(props, null);
            session.setDebug(debug);

            Message msg = new MimeMessage(session);

            InternetAddress addressFrom = new InternetAddress(from);
            msg.setFrom(addressFrom);
            // Here is some logic to add TO and CC and BCC
            msg.setSubject(subject);
            //    writer.println("Subject : " + subject);
            lgr.debug(lgr.isDebugEnabled()?"Subject : " + subject : null);
            msg.setContent(message, "text/html");
            Transport.send(msg);
            lgr.info(lgr.isInfoEnabled() ?"Mail sent": null);
}

この点でどんな助けでも大歓迎です。

4

2 に答える 2

1

ソケットファクトリのものを取り除きます。必要ありません。

debug を true に設定すると、デバッグ出力にエラーが表示されますか? または、メール サーバーは問題なくメッセージを受け入れていますか? エラーがない場合は、受信者のメール サーバーがメッセージをスパムと見なしている可能性がありますが、単純なテスト メッセージではそうではないようです。

別の受信者、特に別のメール サーバーを使用している別の受信者に送信しようとしましたか? 問題が受信者のメール サーバーにあるのか、それとも送信に使用しているメール サーバーにあるのかを調べると役立ちます。

于 2013-04-01T18:25:46.653 に答える