我查看了Grails Mail插件(版本0.9)的代码和文档,但它没有我正在寻找的支持。您只能设置单个主体,然后提供指向静态文件的mime附件。我需要实际将模型传递给GSP并让它呈现HTML和纯文本版本,然后在消息中提供这些版本。这将允许非基于HTML的电子邮件客户端显示text / plain部分和支持HTML的客户端以显示text / html部分。
有没有人用Grails做过这个?有没有简单的方法,或者我是否必须修改邮件插件或直接转到Java Mail库?
答案 0 :(得分:5)
从版本1.0开始,邮件插件本身支持多部分替代内容,如http://jira.grails.org/browse/GPMAIL-37
中所述mailService.sendMail {
multipart true
to <recipient>
subject <subject string>
text 'my plain text'
html '<html><body>my html text</body></html>'
}
答案 1 :(得分:0)
我们使用标准电子邮件插件的多部分电子邮件。以下代码片段位于服务类中,这就是我们使用标准groovy模板而不是gsp引擎的原因:
Template template = groovyPagesTemplateEngine.createTemplate(<templatename>)
Writable emailBody = template.make(<data model as map>)
StringWriter bodyWriter = new StringWriter()
emailBody.writeTo(bodyWriter)
String xml = <some xml>
mailService.sendMail {
multipart true
to <recipient>
subject <subject string>
body bodyWriter
attachBytes "filename.xml", "text/xml", xml.getBytes('UTF-8')
}
至关重要的是,'multipart true'出现在关闭的开头。如果你添加
html '<b>Hello</b> World'
到上面的闭包,我假设你会收到带附件的文字和HTML电子邮件。
答案 2 :(得分:0)