Email 如何使用Grails发送包含text/plain和text/html部分的多部分电子邮件?
我已经浏览了Grails邮件插件(版本0.9)的代码和文档,但它没有我想要的支持。您只能设置单个正文,然后提供指向静态文件的mime附件。我需要将一个模型实际传递到GSP中,让它同时呈现HTML和纯文本版本,然后在消息中提供这两个版本。这将允许非基于HTML的电子邮件客户端显示文本/纯文本部分,并允许支持HTML的客户端显示文本/HTML部分Email 如何使用Grails发送包含text/plain和text/html部分的多部分电子邮件?,email,grails,mime,Email,Grails,Mime,我已经浏览了Grails邮件插件(版本0.9)的代码和文档,但它没有我想要的支持。您只能设置单个正文,然后提供指向静态文件的mime附件。我需要将一个模型实际传递到GSP中,让它同时呈现HTML和纯文本版本,然后在消息中提供这两个版本。这将允许非基于HTML的电子邮件客户端显示文本/纯文本部分,并允许支持HTML的客户端显示文本/HTML部分 有人用Grails做过这个吗?有没有一种简单的方法可以做到这一点,或者我必须修改邮件插件,或者直接转到Java邮件库?我们使用多部分电子邮件和标准电子邮件
有人用Grails做过这个吗?有没有一种简单的方法可以做到这一点,或者我必须修改邮件插件,或者直接转到Java邮件库?我们使用多部分电子邮件和标准电子邮件插件。以下代码段位于服务类中,这就是我们使用标准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')
}
Template Template=groovyPagesTemplateEngine.createTemplate()
可写emailBody=template.make()
StringWriter bodyWriter=新StringWriter()
emailBody.writeTo(bodyWriter)
字符串xml=
mailService.sendMail{
多部分真
到
主题
人体写手
附件字节“filename.xml”、“text/xml”、xml.getBytes('UTF-8')
}
关键的是“multipart true”出现在闭包的开头。如果你加上
html '<b>Hello</b> World'
<代码>html“Hello World”
对于上面的结束语,我假设您将收到一封带有附件的文本和html电子邮件。这似乎是邮件插件1.0版的潜在内容,请参阅并发布。看看第一期的补丁,我认为html和文本多部分消息可以这样简单地创建:
mailService.sendMail {
multipart true
to <recipient>
subject <subject>
dualBody(template:<template>, model:<model>)
}
mailService.sendMail{
多部分真
到
主题
双体(模板:,型号:)
}
那太酷了!但不知道是否/何时发布。自1.0版以来,邮件插件本机支持多部分替代内容,如中所述
mailService.sendMail{
多部分真
到
主题
文本“我的纯文本”
html“我的html文本”
}
我现在不使用Grails,所以我没有时间测试,但我相信你的话。;-)
mailService.sendMail {
multipart true
to <recipient>
subject <subject string>
text 'my plain text'
html '<html><body>my html text</body></html>'
}