我感兴趣哪个是从使用Velocity的Spring MVC应用程序发送带有图像的电子邮件的最佳方式。
图像应该在应用程序中,可能与*.vm
模板位于同一位置(例如src/main/resources/templates
),并且不应使用绝对路径(例如C:\ App ...),这就是为什么我无法弄清楚如何做到这一点。
建议?
答案 0 :(得分:4)
您需要了解图片和电子邮件如何协同工作。我不是这里的专家,但我认为选项是
查看org.springframework.mail.javamail.MimeMessageHelper
答案 1 :(得分:2)
使用Spring,您可以轻松地从文件系统或类路径(甚至在jar文件中)加载资源而无需绝对路径。您应该使用Resource
及其实现,基本上是FileSystemResource
或ClasspathResource
。
这是一个例子:
Resource fileResource = new FileSystemResource("resources/templates");
加载后,您可以直接从资源实例中检索输入流。
此外,您可以将相对路径注入到具有Resource:
类型的实例属性的bean<bean id="mailer" class="test.Mailer">
<property name="templateResource" value="file:resource/templates" />
</bean>
我不使用Velocity,但我通常以这种方式加载模板以使用freemarker生成动态内容。您还可以在加载后将图像附加到电子邮件中。