为什么我必须指定文本格式才能使用 ActionMailer 呈现模板?
我正在使用 ActionMailer 3.0.7
根据文档,纯文本电子邮件是默认设置。因此,如果我有一个带有通知方法的 EnquiryNotifier 邮件程序,那么我希望将呈现 app/views/enquiry_notifier/notify.text.plain.erb
。
如果我只是在通知方法中使用 mail(someparams)
,则电子邮件正文为空。
我读到 ActionMailer 旨在扫描视图目录以查找所有类型的模板。
但是,如果我在块中指定格式并执行
mail(:to => 'somebody', :subject => 'something') do |format|
format.text
end
此操作,那么我的模板 notify.text.plain.erb
就会被渲染。
也许不相关:如果我不指定格式,但将模板重命名为notify.erb,那么它可以工作,但电子邮件以文本/html 形式发送。
I'm using ActionMailer 3.0.7
According to the docs plain text emails are the default. So if I have an EnquiryNotifier mailer with a notify method then I expect that app/views/enquiry_notifier/notify.text.plain.erb
will be rendered.
If I simply use mail(someparams)
within the notify method then the body of the email is empty.
I read that ActionMailer is meant to scan the view directory to look for all types of templates.
However, if I specify the format within a block and do
mail(:to => 'somebody', :subject => 'something') do |format|
format.text
end
then my template notify.text.plain.erb
does get rendered.
Maybe unrelated: If I don't specify the format but rename the template to notify.erb then it works but the email is sent as text/html.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这似乎在 Rails 3.0.6 中对我有用:
Here's what seems to work for me in rails 3.0.6: