如何在开发中禁用ActionMailer?

时间:2011-10-11 17:03:51

标签: ruby-on-rails ruby-on-rails-3.1 environment-variables actionmailer

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

getaddrinfo: nodename nor servname provided, or not known

是否有一种简单快捷的方法可以更改配置值,使ActionMailer不会尝试实际发送电子邮件而不会抛出错误?也许是开发环境的一些东西。或者其他一些方法我可以避免抛出错误,我的代码在我调用actionmailer的地方传递?

我正在使用Rails 3.1

2 个答案:

答案 0 :(得分:55)

通常的做法是让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

请参阅此处的文档http://edgeguides.rubyonrails.org/action_mailer_basics.html#action-mailer-configuration

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

config.action_mailer.delivery_method = :test

答案 1 :(得分:13)

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

ActionMailer::Base.perform_deliveries = false