Pour l'ajout de JSP à la volée, je pense que ça dépend du serveur web (donc risque de perte en portabilité).
Sinon, si tu as une mise en page standard pour toutes tes lettres, tu peux utiliser une feuille de style XSL.
Donc tu peux procéder de la manière suivante :
-Tu écris un XML pour représenter les données de la lettre, avec des tags comme <adresse>, <champ_utilisateur>, ...
-Tu le passes par un parseur XSL qui transorme tout ça en source pour une JSP
-Tu de débrouilles pour que le serveur web trouve ta JSP
Là un déclic me vient... Cocoon. J'ai participé à un projet qui utilisait en partie cocoon, mais je n'ai pas fait cocoon directement, et ceux qui s'en sont occupés étaient un peu à la ramasse (faut dire que les tutoriels et l'aide ne sont pas très pratiques pour cocoon), mais je pense que ça pourrait t'aider. Mais attention, prévois une semaine entière au moins pour comprendre comment cocoon marche. Avec le peu d'expérience que j'en ai, je serais plutot pour le déconseiller, mais tu auras peut-être d'autres avis.