[英]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.