【问题标题】:Why do I have to specify text format to render template with ActionMailer?为什么我必须指定文本格式才能使用 ActionMailer 呈现模板?
【发布时间】:2011-05-11 17:57:14
【问题描述】:

我正在使用 ActionMailer 3.0.7

根据文档,纯文本电子邮件是默认设置。因此,如果我有一个带有 notify 方法的 EnquiryNotifier 邮件程序,那么我希望 app/views/enquiry_notifier/notify.text.plain.erb 会被渲染。

如果我只是在 notify 方法中使用 mail(someparams),那么电子邮件的正文是空的。

我读到 ActionMailer 旨在扫描视图目录以查找所有类型的模板。

但是,如果我在一个块中指定格式并执行

mail(:to => 'somebody', :subject => 'something') do |format|
    format.text
end

然后我的模板notify.text.plain.erb 会被渲染。

可能不相关:如果我没有指定格式,而是将模板重命名为 notify.erb,那么它可以工作,但电子邮件是以 text/html 形式发送的。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 actionmailer


    【解决方案1】:

    这似乎在 rails 3.0.6 中对我有用:

    1. 我在邮件类中根本没有指定格式,我只是让它自动找到视图。
    2. 我将我的视图命名为“notify.text.erb”

    【讨论】:

    • 当我说“似乎对我有用”时,我的真正意思是“它对我有用”。刚刚验证我的邮件是使用内容类型“text/plain”发送的。
    猜你喜欢
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多