客户完成预订后,我需要向他们发送确认电子邮件。它将是美学的 HTML 电子邮件。
电子邮件将包含用户输入的数据。
我已经查看了有关如何发送电子邮件的各种指南。
但我需要一些关于如何构造HTML 电子邮件的指示。我在考虑jatl,因为它在单独的帖子中提到过。但不确定这是否是最好的方法。
谢谢!:)
客户完成预订后,我需要向他们发送确认电子邮件。它将是美学的 HTML 电子邮件。
电子邮件将包含用户输入的数据。
我已经查看了有关如何发送电子邮件的各种指南。
但我需要一些关于如何构造HTML 电子邮件的指示。我在考虑jatl,因为它在单独的帖子中提到过。但不确定这是否是最好的方法。
谢谢!:)
听起来您想要一个可以重复使用的模板电子邮件,即时填充用户名等(当您发送电子邮件时)。我建议你看看http://www.stringtemplate.org/
字符串模板为我创造了奇迹。
我建议您使用速度模板。您可以使用 Velocity Template 构建 HTML 电子邮件模板,并使用 VelocityEngine 从您的 Java 代码中调用它。
您可能想查看此文档以使用 Velocity
有关更多详细信息,请查看此 url,了解如何将其用于电子邮件模板:
http://www.java2s.com/Code/Java/Velocity/UseVelocitytogenerateHTMLbasedemail.htm
我之前解决此问题的方法是将 JSP 打印到字符串,然后将该字符串作为电子邮件正文发送。如果您已经在 web 应用程序中(我曾经是),这很容易。如果您不在网络应用程序中,我不推荐它。
这是有关如何执行此操作的stackoverflow答案。 这是我使用的一些示例代码:
public static String generateEmailBodyAsString(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, ServletContext servletContext) throws Exception {
StringWriter stringWriter = new StringWriter();
final PrintWriter printWriter = new PrintWriter(stringWriter);
final ServletOutputStream outputStream = new ServletOutputStream() {
@Override
public void write(int b) throws IOException {
printWriter.write(b);
}
};
HttpServletResponseWrapper wrapper = new HttpServletResponseWrapper(httpServletResponse) {
@Override
public PrintWriter getWriter() throws IOException {
return printWriter;
}
@Override
public ServletOutputStream getOutputStream() throws IOException {
return outputStream;
}
};
httpServletRequest.setAttribute("youCanAccessThisAsAVariableInYourJsp", "some value"); //in your jsp refer to it as ${youCanAccessThisAsAVariableInYourJsp}
servletContext.getRequestDispatcher("/emailBody.jsp").include(httpServletRequest, wrapper);
return stringWriter.toString();
}
(注意:此代码可以编译,但我已对其进行了修改以隐藏我的应用程序的细节,因此它在运行时可能对您不起作用。如果您有任何问题,请添加评论,我会尽力提供帮助)
我以前总是用 Velocity 来做那种事情,但是当我在 Objective-C 中做一个 OSX 项目时,我遇到了 Mustache 模板引擎。. 有一个很酷的名字,效果很好。它几乎适用于所有语言。这是java版本:https ://github.com/spullara/mustache.java
对于实际的发送部分,我推荐 Spring 而不是纯 javax.mail api(我总是觉得这有点令人费解——我猜它是为灵活性而设计的,而不是易于使用)。. 文档:http ://static.springsource.org/spring/docs/2.0.8/reference/mail.html