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



我刚刚写了一个phoenix电子邮件渲染器。当我通过应用程序发送电子邮件时,外部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

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

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

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

最新更新