2014-12-03 80 views
0

我試圖從我的Rails 4應用程序發送Devise電子郵件。我不想更改模板或任何其他內容,我只想使用Mandrill在生產環境中傳遞消息。在生產中使用Mandrill發送設計電子郵件

production.rb是這樣的:

config.action_mailer.raise_delivery_errors = true 
    config.action_mailer.perform_deliveries = true 
    config.action_mailer.default_url_options = {:host => 'sociedadeavalia.com.br'} 
    config.action_mailer.delivery_method = :smtp 
    config.action_mailer.smtp_settings = { 
    :address => "smtp.mandrilapp.com", 
    :port => 587, 
    :user_name => ENV['MANDRILL_USERNAME'], 
    :password => ENV['MANDRILL_APIKEY'], 
    :authentication => 'login', 
    :enable_starttls_auto => true, 
    :domain => 'sociedadeavalia.com.br' 
    } 

我在devise.rb

config.mailer_sender = '[email protected]' 
config.mailer = 'MyDeviseMailer' 

有這一點,我創建了以下郵件:

class MyDeviseMailer < Devise::Mailer 
    helper :application 
    include Devise::Controllers::UrlHelpers 
    default template_path: 'devise/mailer' 
end 

現在每當我試圖發送生產中的電子郵件(用於創建新用戶帳戶的確認電子郵件)我的應用程序只是崩潰,這出現在日誌中:

31 <190>1 2014-12-03T22:17:07.987969+00:00 app web.1 - - Net::OpenTimeout (execution expired): 

我應該怎麼做在這種情況下?

回答

0

嘗試將身份驗證更改爲「普通」。這就是爲我工作的。

:authentication => 'plain', 
+0

它沒有在這裏工作。該應用程序不斷崩潰。 – RBrandao 2014-12-03 23:26:26

+0

也許你有一些IP地址限制b/n你的web服務器和mandrill? – 2014-12-03 23:29:42

+0

我不知道。但我嘗試從Mandrill儀表板發送電子郵件到我在應用程序中使用的相同地址,並且它工作正常。在儀表板上工作,但不在應用程序中。 – RBrandao 2014-12-03 23:53:47

1

看起來你可能會遇到端口被阻塞的問題。我們建議您執行故障排除步驟here。更具體地說,嘗試更改您使用的端口 - 2525通常不會被阻止,或者在啓用了SSL的情況下使用465。許多主機阻止25和587以幫助防止垃圾郵件。

相關問題