Elixir Phoenix电子邮件呈现css和布局

时间:2015-12-03 15:26:01

标签: elixir phoenix-framework

我刚写了一个凤凰电子邮件渲染器。当我通过应用程序发送电子邮件时,外部css不会被渲染,也没有拾取mailer.html布局。

我在下面做错了吗?

  def invitation_email(conn, to_email) do
    html = View.render_to_string(MailerView, "invitation.html", layout: {LayoutView, "mailer.html"}, conn: conn)
    send_email to: to_email,
               from: "hi@#{conn.host}",
               subject: "Invitation from #{conn.host}!",
               html: html
  end

2 个答案:

答案 0 :(得分:2)

这对我来说很好看。您确定不仅仅是电子邮件客户端没有加载CSS吗?我认为大多数都不会加载外部CSS,因此您需要将其放入<style>标记。

我会在IO.inspect(html)行后加html = ...并在调用该函数时检查输出。这包括布局和CSS吗?

答案 1 :(得分:1)

我在工作的初创公司也遇到过这个问题,问题可能是内联样式没有内联。某些电子邮件客户端不支持样式表,因此您必须在每个标记中指定css样式。我最近发布了Smoothie,它会自动进行内联样式转换,因此html模板可以保持干净。此外,它还会创建html电子邮件的纯文本版本。