【问题标题】:Send HTML template emails without using Spring不使用 Spring 发送 HTML 模板电子邮件
【发布时间】:2014-05-24 23:32:23
【问题描述】:

我有一个仅使用 java-servlet 构建的 Web 应用程序。没有使用弹簧。前端是使用 HTML 和 Javascript 开发的。我想从应用程序发送电子邮件。我有电子邮件的 HTML 文件。但是有两个或三个参数应该在 HTML 中使用变量进行更改。有没有最好的方法可以在不使用 Spring 的情况下实现这一点

如果你使用Spring我看过这段代码

       MimeMessagePreparator preparator = new MimeMessagePreparator() {
             public void prepare(MimeMessage mimeMessage) throws Exception {
                MimeMessageHelper message = new MimeMessageHelper(mimeMessage,true,"UTF-8");
                message.setTo(to);
                message.setFrom(from);
                message.setSubject(subject);
                String text = VelocityEngineUtils.mergeTemplateIntoString(velocityEngine, template, model);
                message.setText(text, true);
             }
         };
         mailSender.send(preparator);

org.springframework.mail.javamail.MimeMessagePreparator

String org.springframework.ui.velocity.VelocityEngineUtils.mergeTemplateIntoString(VelocityEngine velocityEngine, String templateLocation, Map model) 抛出 VelocityException

【问题讨论】:

  • 如果你不使用 Spring,为什么还要提到 Spring?你听说过 Spring 有一个很好的方法吗?
  • 请看m问题更新

标签: java email servlets jakarta-mail html-email


【解决方案1】:

一种解决方案是使用模板库,如Thymeleaf

Thymeleaf 允许您编写提供 Thymeleaf 特定属性和占位符的 HTML。在处理 HTML 时,Thymeleaf 通过为这些占位符赋值并生成正确的 HTML 来呈现 HTML。

【讨论】:

    【解决方案2】:

    HTML 模板是 Velocity 的问题,与 Spring 无关。 Spring 有助于简化发送电子邮件的编码,但如果您使用 HTML 模板进行电子邮件,它应该是模板框架,如 Velocity、FreeMark

    【讨论】:

      猜你喜欢
      • 2016-11-03
      • 1970-01-01
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-11
      • 2020-09-08
      • 1970-01-01
      相关资源
      最近更新 更多