我不想实际发送电子邮件,我只是希望能够查看动作邮件程序为HTML和TEXT电子邮件类型生成的电子邮件。
类似于:
html = UserMailer.welcome_email(@user).html
text = UserMailer.welcome_email(@user).text
这可能吗?
更新
我正在尝试此backport渲染:https://github.com/brainopia/backport_new_renderer/blob/master/backport_new_renderer.rb
到目前为止,我有这个:
class EmailController < ActionController::Base
layout "email"
def welcome
end
end
我的/app/views/email/welcome.html.erb只是:
Hello <%= @name %>
然后我创建了一个类似于:
的lib / rasks / render.rake文件desc "testing controller rendering backport"
task :render do
puts "hello render"
@name = "adf"
EmailController.render(:welcome)
end
错误是:
hello render
rake aborted!
NameError: uninitialized constant EmailController
/Users/path/to/apps/myapp/lib/tasks/render.rake:5:in `block in <top (required)>'
Tasks: TOP => render
(See full trace by running task with --trace)
答案 0 :(得分:1)
如果您使用的是Rails 5,则可以使用以下方式呈现模板:
ActionController.render('mailer/mymailer.html.erb', assigns: { a: b })
但正如上面提到的海报,您可能只想预览电子邮件。 letter_opener宝石很好。我最近发现并喜欢Mailcatcher。
答案 1 :(得分:0)
大概你想要这个,这样你就可以验证电子邮件的外观。
RailsCasts的创建者Ryan Bates写了一个名为letter_opener
的宝石。
它允许您将开发中的投放方式设置为:letter_opener
(而不是:smtp
或其他任何内容),当您的应用发送电子邮件时,会打开一个浏览器窗口,向您显示内容和布局你的电子邮件。