19

有时当我正在开发时,我没有互联网连接。这将导致一个错误的地方我的应用程序应该发送电子邮件:如何在开发中禁用ActionMailer?

getaddrinfo: nodename nor servname provided, or not known 

有一个简单,快捷的方式,我可以改变一个配置值,使的ActionMailer只是没有尝试实际发送的电子邮件,而不是抛出一个错误?也许有些东西适用于开发环境。或者我可以通过其他方式避免错误被抛出,并且我的代码将传递到我称之为actionmailer的地方。

我使用Rails 3.1

回答

47

这是常见的做法只是让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

您还可以设置传送方法:测试,但我还没有试过

config.action_mailer.delivery_method = :test 
+1

完美地工作! – alik

10

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

ActionMailer::Base.perform_deliveries = false 
相关问题