2012-07-31 180 views
0

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

HtmlEmail htmlEmail = new HtmlEmail(); 
htmlEmail.setHostName("localhost"); 
htmlEmail.addTo(email, "[email protected]"); 
htmlEmail.setFrom("[email protected]", "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

这些人使用哪些电子邮件客户端?也许它真的*不*支持HTML邮件... – 2012-07-31 06:35:24

+0

也是他们使用什么病毒保护,有些如avast导致这个问题http://forum.avast.com/index.php?topic=54349.0 – 2012-07-31 06:38:53

+1

可能是电子邮件客户端配置喜欢HTML上的文本。发送html电子邮件是强制性的,还是可以提供备用的有效txt消息? – 2012-07-31 06:40:08

回答

2

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

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

+0

感谢Mikko的快速回复。我已经使用通用电子邮件,但我不知道如何使用通用日志发送电子邮件 – Deepu 2012-07-31 06:57:12

1

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

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

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

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


我只是给出的例子“热烈欢迎”的,也有很多的html MESGS像超链接。所以我不能以纯文本格式提供这些消息。

我建议你阅读这个建议:

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

底线是,如果你想让你的用户可读的电子邮件,这是你的工作以确保有可用的HTML和纯文本版本。如果您不这样做,您可能会疏远部分因各种原因无法阅读或不会阅读HTML电子邮件的用户。

+0

更加有用的信息的消息或许会是“您的电子邮件客户端配置为不显示HTML,但我们太愚蠢供应纯 - 文本版本,所以你需要屈服于我们的偏好,而不是你的。“ – tripleee 2012-07-31 07:03:21

+0

@triplee - 当然更诚实:-) – 2012-07-31 07:10:56

+0

嗨斯蒂芬感谢答复。我刚刚举了一个“非常热烈的欢迎”的例子,有很多像超链接的html mesgs。所以我不能以纯文本格式提供这些消息。 – Deepu 2012-07-31 07:19:22

相关问题