如何使用rails在浏览器中查看电子邮件视图

Joh*_*ohn 8 ruby-on-rails actionmailer

我正在处理我的rails应用程序的电子邮件.现在,我知道查看电子邮件的唯一方法就是将其发送给自己.如何在"views"文件夹下的"notifications"文件夹中获取"daily_summary.html.haml",以便在浏览器中呈现?我在想我应该添加路线:

match 'notifications' => 'notifications/daily_summary'
Run Code Online (Sandbox Code Playgroud)

但后来我不知道如何处理控制器/动作方面的事情.

Dan*_*ier 11

从Rails 4.1开始,电子邮件预览就是原生的.您需要做的就是在此目录中创建一个类:

test/mailers/previews/
Run Code Online (Sandbox Code Playgroud)

课程必须延伸 ActionMailer::Preview

class WeeklyReportPreview < ActionMailer::Preview
    def weekly_report
        WeeklyReport.weekly_report(User.first)
    end
end
Run Code Online (Sandbox Code Playgroud)

编写返回Mail::Message对象的方法.可以使用此URL在开发环境中访问它们:

http://localhost:3000/rails/mailers/[preview_class_name]/[method_name]
Run Code Online (Sandbox Code Playgroud)

就我而言:

http://localhost:3000/rails/mailers/weekly_report/weekly_report
Run Code Online (Sandbox Code Playgroud)

可以在ActionMailer API文档中找到更多信息


Tom*_*m L 9

有一个名为Letter Opener的宝石,听起来就像你正在寻找的那样.它会在浏览器中预览电子邮件,而不是发送它们.我自己没有用过它.如果它有效,我很乐意听到它!

https://github.com/ryanb/letter_opener

还有一个名为Mail Viewer但在相当长的一段时间内没有积极开发.可能更好地避开:

https://github.com/37signals/mail_view


Jor*_*ing 1

我会看一下actionmailer_extensions。它使 ActionMailer 将外发电子邮件作为 .eml 文件写入磁盘。这可能足以满足您的目的(只需设置一个脚本来监视新文件的输出目录并在您首选的电子邮件客户端中打开它们),或者您可以分叉 gem 并直接修改它(其来源非常简单)以编写.html 文件并在浏览器中打开它们。

希望有帮助!