【问题标题】:Sending mail, getting ActionView::MissingTemplate <path> with 'mailer'发送邮件,使用 'mailer' 获取 ActionView::MissingTemplate <path>
【发布时间】:2017-06-10 00:09:13
【问题描述】:

尝试使用 Sidekiq 发送电子邮件时,我收到此错误

ActionView::MissingTemplate:缺少带有“mailer”的模板campaign_mailer/hugh_email。搜索:*“campaign_mailer”

在控制器中

CampaignMailer.hugh_email(email, user).deliver_later

在campaign_mailer.rb中

layout 'mailer'

def hugh_email(email, user)
    mail(to: @user.email, subject: email.subject)
end

app/views/campaign_mailer/hugh_email.html.slim有html,我在layouts/mailer有模板

注意:我已经尝试了所有我能找到的东西,甚至是重新生成的邮件。当我使用deliver_now 发送时,它似乎可以与新邮件一起使用,但是一旦我尝试deliver_later,错误就会返回(即使回到尝试deliver_now 时也是如此)。

更新:

我的解决方案可能对很多人没有帮助,但我会在此处添加以防万一。

我现在将电子邮件保存在我的系统上,并使用CampaignMailer.hugh_email(email.subject, html).deliver_later 将 html 传递到邮件程序中。在campaign_mailer.rb 我跑了

mail(to: to_address, subject: email_subject) do |format|
      format.text { render(text: "") }
      format.html { html }
    end

同样,不幸的是,这可能对大多数遇到此问题的人没有帮助。但我基本上通过指定 html 而不是使用邮件视图解决了这个问题。

【问题讨论】:

    标签: ruby-on-rails email actionmailer sidekiq mailer


    【解决方案1】:

    hugh_email.html.slim 必须在

    /app/views/campaign_mailer/hugh_email.html.slim
    

    ma​​iler.html.slim

    /app/views/layouts/mailer.html.slim
    

    ma​​iler.text.erb

    /app/views/layouts/mailer.text.erb
    

    【讨论】:

    • 对不起,我忘了说这是我的 html 文件的路径。我更新了问题以参考这个,谢谢。
    • 我错过了mailer.text.erb,所以我添加了它并重新启动了所有东西(rails、sidekiq、redis、刷新了 Q)。还是没有运气。
    • @ChrisBrisson 您的问题的任何更新然后请在此处发布.. 因为我面临同样的问题。谢谢。
    猜你喜欢
    • 2017-01-27
    • 1970-01-01
    • 1970-01-01
    • 2018-01-02
    • 1970-01-01
    • 2015-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多