我认为这可能是一种常见的情况......我正在为Rails应用程序开发密码恢复系统,该应用程序向用户发送链接以触发新的密码表单。非常标准的东西。
在我的开发服务器上,我没有启用或配置任何邮件发送软件(sendmail,SMTP设置等)。config/environments/development.rb
我有config.action_mailer.raise_delivery_errors = false
来抑制自我以来出现的任何错误没有启用本地邮件服务器。这一切都很好。
但是,我想在生产过程中查看电子邮件的内容而不实际发送邮件。我知道可以通过测试来做到这一点,断言已发送(或虚假发送)的邮件具有正确的内容。有没有办法重新路由视图或其他东西,只是暂时在生产中,查看HTTP服务版本的电子邮件,而不是盲目地做出断言?
答案 0 :(得分:1)
如果您使用“password_reminder”方法设置了UserMailer,则可以调用create_password_reminder
而不是deliver_password_reminder
,它会在不实际发送的情况下创建消息。然后您可以将输出发送到日志文件:
你将拥有:
UserMailer.deliver_password_reminder
您可以替换为:
logger.info UserMailer.create_password_reminder.encoded
或者如果您想将其发送到文件,您也可以这样做。
话虽这么说,生产环境真的不适合这种事情。我从来没有必要这样做,因为我的邮件有完整的测试覆盖率。我会调查那个选项,但我给出了你要求的答案,因为我不知道你的全部情况。快乐的编码:)