Rails邮件发送器:将邮件发送到本地文件

16

有没有办法在Rails 3中将电子邮件发送到本地文件或其他方式,而不是使用SMTP服务器?我想在不使用任何SMTP的情况下测试电子邮件的内容,最好只在DEV环境中。

最好的方法是本地SMTP或其他允许我检查电子邮件、检查电子邮件地址等功能的东西。

2个回答

41
您可以使用:test系统交付。
ActionMailer::Base.delivery_method = :test

还有一个:file交付方式

ActionMailer::Base.delivery_method = :file

您可以使用file_settings定义放置所有电子邮件的位置。

ActionMailer::Base.file_settings = { :location => Rails.root.join('tmp/mail') }

1
注意:这似乎只适用于Rails 3。(所以Rails 2.3的用户就没戏了) - RyanWilcox
1
有没有想法如何打开这些文件并查看它们是否格式正确? - moger777
请查看另一个回答以获取Rails 4的信息。我正在使用https://github.com/ryanb/letter_opener,这个工具非常棒! - josetapadas
1
这在Rails 4.2.4上似乎无法正常工作,尽管它仍然记录在http://api.rubyonrails.org/classes/ActionMailer/Base.html。有人知道为什么吗? - brauliobo
“tmp/mail” 应该是一个文件还是一个目录? - Throw Away Account
显示剩余2条评论

6

还有一个名为letter_opener的宝石,它可以将邮件保存到磁盘并在浏览器中打开。

或者是mails_viewer,它有一个Web界面来查看电子邮件,而不是在浏览器中打开它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接