2014-12-03 48 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以帮助防止垃圾邮件。

相关问题