从Spring MVC应用程序发送带有图像的Velocity模板化电子邮件

时间:2011-03-08 16:18:48

标签: java spring email velocity

我感兴趣哪个是从使用Velocity的Spring MVC应用程序发送带有图像的电子邮件的最佳方式。

图像应该在应用程序中,可能与*.vm模板位于同一位置(例如src/main/resources/templates),并且不应使用绝对路径(例如C:\ App ...),这就是为什么我无法弄清楚如何做到这一点。

建议?

2 个答案:

答案 0 :(得分:4)

您需要了解图片和电子邮件如何协同工作。我不是这里的专家,但我认为选项是

  • 将图片作为附件包含在电子邮件中(跛脚,恕我直言;您的带宽使用率将非常高)
  • 发送HTML电子邮件并链接到互联网上托管的图片

查看org.springframework.mail.javamail.MimeMessageHelper

答案 1 :(得分:2)

使用Spring,您可以轻松地从文件系统或类路径(甚至在jar文件中)加载资源而无需绝对路径。您应该使用Resource及其实现,基本上是FileSystemResourceClasspathResource。 这是一个例子:

Resource fileResource = new FileSystemResource("resources/templates");

加载后,您可以直接从资源实例中检索输入流。

此外,您可以将相对路径注入到具有Resource:

类型的实例属性的bean
<bean id="mailer" class="test.Mailer">
    <property name="templateResource" value="file:resource/templates" />
</bean>

我不使用Velocity,但我通常以这种方式加载模板以使用freemarker生成动态内容。您还可以在加载后将图像附加到电子邮件中。