获取电子邮件客户端不支持通过Java发送电子邮件的HTML消息

时间:2012-07-31 06:32:55

标签: java email apache-commons-logging

我使用 apache-commons-logging.jar 发送电子邮件。我能够成功发送html电子邮件,但很少有人在邮件中收到您的电子邮件客户端不支持HTML邮件邮件。以下是代码示例 -

HtmlEmail htmlEmail = new HtmlEmail();
htmlEmail.setHostName("localhost");
htmlEmail.addTo(email, "demo1@sample.com");
htmlEmail.setFrom("demo2@sample.com", "Demo2");
htmlEmail.setSubject("Subject Line");

String msg = "<html>Hi Demo1,";
msg       += "<br><br> &nbsp;&nbsp;&nbsp;&nbsp; A very warm Welcome";
msg       += "</html>";
htmlEmail.setHtmlMsg(msg);

// set the alternative message
htmlEmail.setTextMsg("Your email client does not support HTML messages");

// send the email
htmlEmail.send();

我不明白如何解决这个问题。

请大师帮助我。

提前致谢。

2 个答案:

答案 0 :(得分:2)

可能您使用的是Commons Email而不是Commons Logging来发送电子邮件。

预计那些将他们的电子邮件客户端配置为喜欢文本的人实际上看到的是文本而不是HTML。你作为发件人所能做的唯一事情就是写出更有意义的纯文本信息。

答案 1 :(得分:1)

解决这个“问题”的方法是改变:

htmlEmail.setTextMsg("Your email client does not support HTML messages");

htmlEmail.setTextMsg("A very warm Welcome");

......或者完全不管它。用户是否选择将其电子邮件客户端配置为显示电子邮件正文的HTML或纯文本版本。理想情况下你应该发送两个版本,但是如果你只发送一个版本,那么你应该简单地留下另一个版本。


  

我刚刚给出了“非常热烈欢迎”的例子,有许多像Hyperlink这样的html mesgs。所以我不能以纯文本格式提供这些消息。

我建议你阅读这个建议:

(我知道它主要针对电子邮件市场营销人员......但大多数建议同样适用于软件生成的电子邮件。)

最重要的是,如果您希望用户可以阅读您的电子邮件,这是您的工作,以确保有可行的HTML和纯文本版本。如果不这样做,您可能会因为各种原因疏远一些不能或不会阅读HTML电子邮件的用户。