我正在使用 Google App Engine 和 JavaMail。在特定事件发生后,我需要向用户发送一些电子邮件大小的 html 邮件消息。如何使用 JavaMail 发送它们?(它们是 60 - 100 行 HTML,因此尝试一次添加一行是相当不合理的。有什么方法可以一次添加所有内容?
3 回答
您将需要使用模板框架来帮助生成您的电子邮件内容。这些实现起来很简单,其中一些在 App Engine 环境中运行良好。
我使用了以下内容:
并发现两者都做得很好。这些模板引擎相当强大,确实包括条件逻辑、处理类似数据的记录等。
在高层次上,它会是这样的: 1) 定义您的电子邮件模板(在 HTML 中)并将它们放入某个WEB-INF/email-templates
文件夹中。这些模板格式将取决于您使用的模板引擎。它们中的大多数将具有可替换的参数,例如 Hello ${name} 等。
2) 在运行时,确定您要发送的电子邮件。您只需要告诉模板引擎将被引擎本身替换的模板文件和参数映射。输出将是您可以使用的 HTML 格式的字符串。
简单的:
String message ="<b>This is my message!</b>"
Message msg = new MimeMessage(session);
msg.setContent(message, "text/html");
您真正需要做的就是将文件读入字符串。
例如查看how-to-create-a-java-string-from-the-contents-of-a-file 或java-how-to-read-complete-text-file
如果你想要更现代一点的东西,你可以试试Handlebars。
或者,我构建了一个轻量级的 web 框架,专为在 AppEngine 上使用而设计,名为thundr。使用它,您可以使用它支持的任何模板语言呈现电子邮件正文,包括 jsps。这使您可以为 Web 演示文稿和电子邮件使用统一的模板语言。与使用一种语言用于网络和一种语言用于电子邮件相比,让生活更轻松一些。