2017-05-26 20 views
0

在Java郵件客戶端中動態呈現電子郵件模板的最佳方式是什麼?任何已經解決這個問題的框架?帶動態HTML主體的Java電子郵件

+1

目前還不清楚是什麼發送郵件你在問。 JavaMail只是一個郵件(pop3,smtp,imap,...)客戶端。它不會對UI進行任何呈現/呈現。模板化可以在服務器端用來創建HTML郵件(也可以通過SMPT發送,因此可以通過JavaMail發送給郵件收件人) – andih

+0

在Java Mail中沒有動態的電子郵件模板呈現。 –

+0

你的意思是你想在包含動態數據的電子郵件中發送html模板? – nilesh

回答

0

在服務器端可以使用各種框架來呈現HTML內容。它也應該能夠使用它們來生成動態HTML。

但是...

它可能不會幫助。正如this Q&A所解釋的,一個典型的電子郵件客戶端將不支持Javascript或CSS。如果電子郵件客戶端不支持您希望用來製作HTML動態的機制,那麼您在服務器端執行的操作沒有區別。


在另一方面,如果你只是想生成模板靜態HTML,也有這樣做的幾個第三方模板引擎。 This Wikipedia page列出了其中的一些。

this page描述了一種將JSP呈現爲字符串的方法,該字符串可以嵌入到電子郵件中。

0

將模板保存在數據庫或靜態變量中。保持哈希標籤中的動態內容。讓我們考慮下面這個簡單的模板在變量「模板」

<html> 
    <body> 
     <p> My name is #NAME </p> 

    </body> 
</html> 

與字符串replaceFirst方法代替這種動態contect

template = template.replaceFirst(#NAME, "NIlesh Kemse"); 

現在有這身

javax.mail.Message msg=new MimeMessage(session); 

MimeBodyPart msgBodyPart = new MimeBodyPart(); 
msgBodyPart.setContent(template, "text/html"); 

Multipart multipart = new MimeMultipart(); 
multipart.addBodyPart(msgBodyPart); 
msg.setContent(multipart); 
Transport.send(msg);