Rails 4在“测试”环境中发送电子邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rails 4在“测试”环境中发送电子邮件相关的知识,希望对你有一定的参考价值。

每次我运行测试时,实际上都会发送电子邮件。我的config/environments/test.rb有这种配置

config.action_mailer.delivery_method = :test

所以我认为每当我运行测试时,它们都不应该被真正发送,而是当我运行命令时

RAILS_ENV="test" rake test

电子邮件以任何方式发送。有那么一刻,我想也许我没有使用合适的环境。但后来我完全删除db/test.sqlite3后立即再次运行测试。该文件再次恢复,这证明我实际上是在test环境中运行。

到底是怎么回事?为什么我的测试发送真实邮件?它与我在我的应用程序上使用deliver_now的事实有什么关系吗?

答案

你应该至少能够通过放置来禁用它们

config.action_mailer.perform_deliveries = false

在您的环境/ test.rb中,Brent Sullivanhis answer中建议。

另一答案

ActionMailer::Base.delivery_method = :smtp中的config/environment.rb线覆盖了ActionMailer::Base.delivery_method = :test中的config/environments/test.rb

ActionMailer::Base.delivery_method = :smtp'删除该行config/environment.rb并将其放入config/environments/production.rb。这允许你把ActionMailer::Base.delivery_method = :test放在config/environments/test.rb和你想要的版本config/environments/development.rb

以上是关于Rails 4在“测试”环境中发送电子邮件的主要内容,如果未能解决你的问题,请参考以下文章

延迟作业无法在 Rails 应用程序中发送电子邮件。

mutt+msmtp实现在shell环境中发送电子邮件

在测试 php 以在 xampp 中发送电子邮件验证时遇到问题

在 PHP 和 Localhost 中发送电子邮件 [重复]

如何在 VC++ 中发送电子邮件?

如何在 Android 中发送电子邮件? [复制]