繁体   English   中英

无法通过HTML格式发送电子邮件。

[英]Unable to email in HTML format.

我正在尝试以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);
}

在这方面的任何帮助将不胜感激。

摆脱套接字工厂的东西 ,您不需要它。

将debug设置为true时,在调试输出中是否看到任何错误? 还是您的邮件服务器无误地接受了邮件? 如果没有错误,则最有可能的问题是收件人的邮件服务器认为您的邮件是垃圾邮件,尽管使用简单的测试邮件似乎不太可能。

您是否尝试过发送给不同的收件人,尤其是使用不同邮件服务器的不同收件人? 找出问题是出自收件人的邮件服务器还是用于发送的邮件服务器,这将非常有用。

有时我也遇到过类似的问题。 我发现问题出在包含单引号的html内容。

作为测试,请尝试使用text / html格式发送(简单单词)/(完全没有引号的简单html)作为消息。 如果可行,您可以将HTML消息修改为仅包含双引号。

希望有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM