代码之家  ›  专栏  ›  技术社区  ›  Javid Jamae

如何发送包含文本/纯文本和包含Grails的文本/HTML部分的多部分电子邮件?

  •  5
  • Javid Jamae  · 技术社区  · 14 年前

    我已经浏览了GrailsMail插件(0.9版)的代码和文档,但它没有我要寻找的支持。您只能设置一个主体,然后提供指向静态文件的mime附件。我需要将模型实际传递到GSP中,并让它同时呈现HTML和纯文本版本,然后在消息中同时提供这两个版本。这将允许非基于HTML的电子邮件客户端显示文本/纯文本部分,支持HTML的客户端显示文本/HTML部分。

    有人用圣杯做过这个吗?有没有一个简单的方法,或者我必须修改邮件插件,或者直接去Java邮件库?

    3 回复  |  直到 12 年前
        1
  •  5
  •   martin    12 年前

    由于版本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>'
    }
    
        2
  •  0
  •   Stefan Armbruster    14 年前

    我们使用多部分电子邮件与标准电子邮件插件。以下代码段位于服务类中,这就是为什么我们使用标准的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电子邮件。

        3
  •  0
  •   Jörg Brenninkmeyer    14 年前

    似乎这是邮件插件1.0版的潜在内容,请参阅 this this 问题。看看第一期的补丁,我认为HTML和文本多部分消息可以简单地创建如下:

    mailService.sendMail {
      multipart true
      to <recipient>
      subject <subject>
      dualBody(template:<template>, model:<model>)
    }
    

    会很酷的!但不知道是否/何时发布。