如何查看Active生成的html和文本

How to view the html and text generated by Active

我不想实际发送电子邮件,我只想查看操作邮件程序为 HTML 和 TEXT 电子邮件类型生成的电子邮件。

所以像这样:

html = UserMailer.welcome_email(@user).html
text = UserMailer.welcome_email(@user).text

这可能吗?

更新

我正在尝试此向后移植渲染: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)

大概您想要这个,以便您可以验证电子邮件的外观。

有一个 gem 由 RailsCasts 的创建者 Ryan Bates 编写,名为 letter_opener

它允许您将开发中的交付方法设置为 :letter_opener(而不是 :smtp 或其他任何方式),当您的应用程序发送电子邮件时,浏览器 window 打开显示你的电子邮件的内容和布局。

https://github.com/ryanb/letter_opener

如果您使用的是 Rails 5,您可以使用以下方式呈现模板:

ActionController.render('mailer/mymailer.html.erb', assigns: { a: b })

但是正如上面的发帖者所提到的,您可能只想预览电子邮件。 letter_opener gem is good. I recently discovered and love Mailcatcher.