首页 > 解决方案 > ActionMailer Rails:invitation_email.html.erb 文件未读取

问题描述

我在 Rails 上使用 Action Mailers。我遵循了文档,但我的浏览器无法正确读取invitation_email.html.erb。这是invitation_email.html.erb 上的代码:

<!DOCTYPE html>
<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type" />

    </head>
  <body>
    <h1><%= @sender.first_name %> vous invite à débattre.</h1>
      <p><%= @group_invitation.key %></p>
      <p> Cliquez ici : <%= link_to "Rejoindre", group_accept_invite_url(:key => @group_invitation.key) %>
      </p>
      <div class="button-test">
        button
      </div>
    </body>
</html>

这是我在 group_mailer.rb 上的代码:

  class GroupMailer < ActionMailer::Base
  default from: 'Logora <contact@logora.fr>'
  layout 'mailer'

  def invitation_email(group_invitation)
    @to = group_invitation.guest
    @sender = group_invitation.sender
    @subject = @sender.first_name + ' vous invite à débattre sur Logora'
    @group_invitation = group_invitation
    m = mail(to: @to, subject: @subject, content_type: "text/html")
  end

end

最后,这是我给自己发送电子邮件时收到的信息:

Logora 21:29(Il ya 7 分钟)À moi

----==_mimepart_5c32651265cd8_16f563ff3a1d01db04642e 内容类型:文本/html;charset=UTF-8 Content-Transfer-Encoding:quoted-printable 测试邀请 =C3=A0 d=C3=A9battre。uh9sNDoDQbYU7ZYixKZHCCjG

Cliquez ici : Rejoindre

按钮----==_mimepart_5c32651265cd8_16f563ff3a1d01db04642e 内容类型:文本/html;charset=UTF-8 Content-Transfer-Encoding:quoted-printable 测试邀请 =C3=A0 d=C3=A9battre。Cliquez ici : Rejoindre ----==_mimepart_5c32651265cd8_16f563ff3a1d01db04642e--

任何帮助将非常感激 !

标签: ruby-on-railsactionmailermime

解决方案


如文档中所述,传递:content_type也期望:body将被传递(这将跳过模板渲染步骤)。因此,要正确呈现模板,我怀疑您需要删除content_type: "text/html"

mail(to: @to, subject: @subject)

推荐阅读