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

Ruby on rails 如何使用rails在浏览器中查看电子邮件视图,ruby-on-rails,actionmailer,Ruby On Rails,Actionmailer,我正在为我的rails应用程序编写电子邮件。目前,我知道查看电子邮件的唯一方法是将其发送给我自己。如何在浏览器中呈现“视图”文件夹下“通知”文件夹中的“daily_summary.html.haml”?我想我应该加上路线: match 'notifications' => 'notifications/daily_summary' 但是,我不知道如何处理控制器/操作方面的事情。我想看看。它使ActionMailer将发送的电子邮件作为.eml文件写入磁盘。这对于您的目的可能已经足够了(只

我正在为我的rails应用程序编写电子邮件。目前,我知道查看电子邮件的唯一方法是将其发送给我自己。如何在浏览器中呈现“视图”文件夹下“通知”文件夹中的“daily_summary.html.haml”?我想我应该加上路线:

match 'notifications' => 'notifications/daily_summary'
但是,我不知道如何处理控制器/操作方面的事情。

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


希望有帮助

有一种名为开信器的宝石,听起来它能完全满足你的需求。它在浏览器中预览电子邮件,而不是发送它们。我自己没用过。如果它有效的话,我很想听听

还有一个叫做邮件查看器,但它已经有一段时间没有被积极开发了。或许最好避开:


自Rails 4.1以来,电子邮件预览是本机的。 您只需在此目录中创建一个类:

test/mailers/previews/
类必须扩展
ActionMailer::Preview

class WeeklyReportPreview < ActionMailer::Preview
    def weekly_report
        WeeklyReport.weekly_report(User.first)
    end
end
就我而言:

http://localhost:3000/rails/mailers/weekly_report/weekly_report

更多信息可以在Rails 3的

中找到,现在有一个gem,
邮件视图
,它包含在Rails 4.1中。这里是一个链接。这很容易

1.)添加到文件:

gem 'mail_view', :git => https://github.com/basecamp/mail_view.git'
# or
gem "mail_view", "~> 2.0.4"
2.)在routes.rb中:

 # config/routes.rb
 if Rails.env.development?
    mount MailPreview => 'mail_view'
 end
3.)创建邮件预览模型:

 # app/mailers/mail_preview.rb or lib/mail_preview.rb
class MailPreview < MailView
...
 def forgot_password
   user = Struct.new(:email, :name).new('name@example.com', 'Jill Smith')
   mail = UserMailer.forgot_password(user)
 end
end
#app/mailers/mail_preview.rb或lib/mail_preview.rb
类MailView
在这个模型中,您可以随意命名这些方法,但是它们与UserMailer方法相对应是有意义的


4.)要查看邮件预览中所有方法的列表,请转到
/mail\u view
。单击其中一个可以在浏览器中看到HTML预览。

拆信器似乎正在工作。唯一的问题是,它正在打开电子邮件的“plain.html”版本,而不是“rich.html”版本(plain似乎对应于我的电子邮件的文本版本,rich对应于html版本)。你知道我该如何改变这个吗?看起来,在
deliver
块中,你可以指定
text\u部分
块和
html\u部分
块。您必须在html部分块中将
content\u type
设置为
'text/html'
。看看这样行不行我有点无知。你在哪里看到这些块?我在哪里可以设置内容类型?是的,文档有点稀疏。看看github repo中的rspec测试:。第二个测试有一个例子,我想你正在尝试做什么。@Murthy,如果我理解正确,你想验证cc'ed用户是否也收到了消息?在我看来,这超出了开信人的范围。你应该为它写一个测试。任何人都有可能在这里重复-我被许多引用在test/mailers等中创建预览的事实所误导。但是如果你在spec中有测试,它实际上是spec/mailers。。。否则就要请客了!
 # app/mailers/mail_preview.rb or lib/mail_preview.rb
class MailPreview < MailView
...
 def forgot_password
   user = Struct.new(:email, :name).new('name@example.com', 'Jill Smith')
   mail = UserMailer.forgot_password(user)
 end
end