2012-07-31 196 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