Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Email 如何使用Grails发送包含text/plain和text/html部分的多部分电子邮件?_Email_Grails_Mime - Fatal编程技术网

Email 如何使用Grails发送包含text/plain和text/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邮件插件(版本0.9)的代码和文档,但它没有我想要的支持。您只能设置单个正文,然后提供指向静态文件的mime附件。我需要将一个模型实际传递到GSP中,让它同时呈现HTML和纯文本版本,然后在消息中提供这两个版本。这将允许非基于HTML的电子邮件客户端显示文本/纯文本部分,并允许支持HTML的客户端显示文本/HTML部分


有人用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>'
}