我可以在没有实际发送电子邮件的情况下查看Mailer视图吗?

时间:2010-01-30 17:00:51

标签: ruby-on-rails actionmailer

我认为这可能是一种常见的情况......我正在为Rails应用程序开发密码恢复系统,该应用程序向用户发送链接以触发新的密码表单。非常标准的东西。

在我的开发服务器上,我没有启用或配置任何邮件发送软件(sendmail,SMTP设置等)。config/environments/development.rb我有config.action_mailer.raise_delivery_errors = false来抑制自我以来出现的任何错误没有启用本地邮件服务器。这一切都很好。

但是,我想在生产过程中查看电子邮件的内容而不实际发送邮件。我知道可以通过测试来做到这一点,断言已发送(或虚假发送)的邮件具有正确的内容。有没有办法重新路由视图或其他东西,只是暂时在生产中,查看HTTP服务版本的电子邮件,而不是盲目地做出断言?

1 个答案:

答案 0 :(得分:1)

如果您使用“password_reminder”方法设置了UserMailer,则可以调用create_password_reminder而不是deliver_password_reminder,它会在不实际发送的情况下创建消息。然后您可以将输出发送到日志文件:

你将拥有:

UserMailer.deliver_password_reminder

您可以替换为:

logger.info UserMailer.create_password_reminder.encoded

或者如果您想将其发送到文件,您也可以这样做。

话虽这么说,生产环境真的不适合这种事情。我从来没有必要这样做,因为我的邮件有完整的测试覆盖率。我会调查那个选项,但我给出了你要求的答案,因为我不知道你的全部情况。快乐的编码:)