【问题标题】:What is the best way to generate HTML mail templates for the Grails mail plugin?为 Grails 邮件插件生成 HTML 邮件模板的最佳方法是什么?
【发布时间】:2013-05-30 18:16:12
【问题描述】:

使用 Grails Mail plugin,您可以发送纯文本或 html 邮件。当发送这样的 html 邮件时:

sendMail {
  to "fred@g2one.com"
  subject "Hello John"
  html(view: htmlTemplate, model: args)   
}

建议在邮件html中内嵌css,这样会被更多的邮件客户端接受。问题是,这些 html 文件很难阅读和维护。

有没有办法以比编写内联 css 更智能的方式生成这些邮件模板?生成 html 邮件模板的最佳做法是什么?

【问题讨论】:

  • 您是否遇到任何问题,使用资源插件在您将用于邮件正文的模板/gsp 中评估您的css?您是否尝试过使用
  • 当您将 css 添加为外部文件时,某些邮件客户端会截断此 css 文件。应该如何寻求帮助?

标签: grails html-email grails-plugin grails-2.0


【解决方案1】:

我创建了一个关于如何按照良好模式进行操作的要点。

https://gist.github.com/biniama/7ec152189512c318c6fa

【讨论】:

  • 你能在这里发布一个sn-p并解释你的意思。我去了链接,根本找不到任何css。
【解决方案2】:

模板可以包含使用g:render 标签的其他模板。

如果您不希望内联 css 与您的邮件 html 混合,请将其放在自己的模板中,并使用 render 标签将其插入到 html 模板中:

邮件/_css.gsp:

<style type="text/css">
    body {
      /* styles! */
    }
</style>

邮件/_message.gsp:

<html>
    <head>
        <g:render template="/mail/css" /> <!-- render stylesheet into this template -->
    </head>
    <body>
        <!-- content -->
    </body>
</html>

【讨论】:

  • 但这不是我遇到的问题吗?在某些邮件客户端中,css 文件将从头部删除。
  • 渲染标签不会渲染链接到css,它会将模板的内容渲染到调用模板中。
  • 所以你的意思是生成内联 css 而不是单独的 css 文件?
  • +1 @confile:理想情况下,如果需要模块在邮件中附加 css 文件,这应该是最佳解决方案。将 css 渲染为模板。注意新 gsp 的命名方式 _css.gsp(模板 + gsp 而不是 .css
  • 我的考虑更多是一些邮件客户端从邮件中删除了包含css的标题。
猜你喜欢
  • 2011-01-25
  • 2010-09-26
  • 2013-04-08
  • 2021-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多