2017-05-26 2 views
0

Quelle est la meilleure façon de rendre dynamiquement le modèle de courrier électronique dans le client de messagerie Java? Tous les cadres abordent-ils déjà cela?Java Email avec corps HTML dynamique

+1

Il est pas clair ce que vous demandez. JavaMail est juste un client mail (pop3, smtp, imap, ...). Il ne fait aucun rendu/présentation à l'interface utilisateur. La création de modèles est quelque chose que vous pouvez utiliser du côté serveur pour créer des messages HTML (et peut-être les envoyer via SMPT et donc JavaMail aux destinataires du courrier) – andih

+0

Il n'y a pas de rendu de modèle d'e-mail dynamique dans Java Mail. –

+0

vous voulez dire que vous voulez envoyer le modèle html dans un e-mail qui contient des données dynamiques? – nilesh

Répondre

0

Il existe une variété de frameworks qui peuvent être utilisés pour rendre quelque chose au HTML du côté serveur. Il devrait être capable de les utiliser pour générer du HTML dynamique aussi.

Cependant ...

Cela ne va probablement pas aider. Comme l'explique this Q&A, un client de messagerie type ne supporte pas Javascript ou CSS. Si le client de messagerie ne prend pas en charge les mécanismes que vous souhaitez utiliser pour rendre le HTML dynamique, cela ne fait aucune différence sur ce que vous faites du côté serveur.


D'autre part, si vous voulez juste pour générer statique HTML à partir d'un modèle, il y a quelques moteurs de matriçage 3 parties pour le faire. This Wikipedia page énumère certains d'entre eux.

Et this page décrit un moyen de rendre un JSP à une chaîne, qui pourrait ensuite être intégré dans un e-mail.

0

Conserver le modèle dans la base de données ou dans une variable statique. Gardez le contenu dynamique dans l'étiquette de hachage. permet de considérer suivant modèle simple est dans la variable « modèle »

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

    </body> 
</html> 

remplacer cette contect dynamique avec la méthode replaceFirst de chaîne

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

envoyer maintenant courrier ayant ce corps

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);