Ruby on rails 如何在开发中禁用ActionMailer?

Ruby on rails 如何在开发中禁用ActionMailer?,ruby-on-rails,ruby-on-rails-3.1,environment-variables,actionmailer,Ruby On Rails,Ruby On Rails 3.1,Environment Variables,Actionmailer,有时,当我在开发时,我没有互联网连接。这会导致我的应用程序发送电子邮件时出错: getaddrinfo: nodename nor servname provided, or not known 有没有一种简单快捷的方法可以让ActionMailer更改一个配置值,使其不发送电子邮件,也不抛出错误?可能是针对开发环境的东西。或者我可以通过其他方式避免抛出错误,并避免代码在调用actionmailer交付的任何地方传递 我使用的是Rails 3.1,通常的做法是让Rails忽略邮件错误。在con

有时,当我在开发时,我没有互联网连接。这会导致我的应用程序发送电子邮件时出错:

getaddrinfo: nodename nor servname provided, or not known
有没有一种简单快捷的方法可以让ActionMailer更改一个配置值,使其不发送电子邮件,也不抛出错误?可能是针对开发环境的东西。或者我可以通过其他方式避免抛出错误,并避免代码在调用actionmailer交付的任何地方传递


我使用的是Rails 3.1,通常的做法是让Rails忽略邮件错误。在
config/environments/development.rb
文件中添加、取消注释或修改:

# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = false
您还可以设置:

config.action_mailer.perform_deliveries = false
请参阅此处的文档

您还可以将交付方法设置为:test,但我实际上还没有尝试过

config.action_mailer.delivery_method = :test

如果您想在rails应用程序初始化后(创建示例数据时、迁移期间等)禁用邮件传递:


对于那些对
.delivery\u method=:test
:不发送任何电子邮件的人,ActionMailer只是将它们存储在
ActionMailer::Base.deliveries
上的一个数组中。这可能是大多数人的首选选项,因为它允许您在代码中放置断点,并确保ActionMailer收到您的发送请求(看起来应该),或者在测试中使用它。(src:)
ActionMailer::Base.perform_deliveries = false