我正在尝试从我的Rails 4应用程序发送Devise电子邮件。我不想更改模板或任何东西,我只想使用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 = 'no-reply@sociedadeavalia.com.br'
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 :(得分:1)
看起来您可能遇到阻塞端口的问题。我们建议您使用问题排查步骤here。更具体地说,尝试更改您正在使用的端口 - 2525通常不会被阻止,或者使用465并启用SSL。许多主机阻止了25和587,以帮助防止垃圾邮件。
答案 1 :(得分:0)
尝试将身份验证更改为“plain”。这对我有用。
:authentication => 'plain',