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 
相關問題