Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在生产中使用Mandrill发送设计电子邮件_Ruby On Rails_Ruby_Email_Devise_Mandrill - Fatal编程技术网

Ruby on rails 在生产中使用Mandrill发送设计电子邮件

Ruby on rails 在生产中使用Mandrill发送设计电子邮件,ruby-on-rails,ruby,email,devise,mandrill,Ruby On Rails,Ruby,Email,Devise,Mandrill,我正在尝试从我的Rails 4应用程序发送Desive电子邮件。我不想更改模板或任何东西,我只想使用Mandrill在生产环境中传递消息 我的production.rb如下: config.action_mailer.raise_delivery_errors = true config.action_mailer.perform_deliveries = true config.action_mailer.default_url_options = {:host => 'so

我正在尝试从我的Rails 4应用程序发送Desive电子邮件。我不想更改模板或任何东西,我只想使用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'
  }
我的
design.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
类MyDevisionEmailer
现在,每当我尝试在生产中发送电子邮件(用于创建新用户帐户的确认电子邮件)时,我的应用程序就会崩溃,并出现在日志中:

31 <190>1 2014-12-03T22:17:07.987969+00:00 app web.1 - - Net::OpenTimeout (execution expired):
3112014-12-03T22:17:07.987969+00:00应用程序web.1--Net::OpenTimeout(执行已过期):

在这种情况下我应该怎么做?

尝试将身份验证更改为“普通”。这就是我的工作

:authentication => 'plain',

看起来您可能遇到端口被阻止的问题。我们推荐故障排除步骤。更具体地说,请尝试更改您正在使用的端口-2525通常不会被阻止,或者在启用SSL的情况下使用465。许多主机阻止25和587以帮助防止垃圾邮件。

也许您在web服务器和mandrill上有一些IP限制?我不知道。但是我试着从Mandrill仪表板发送一封电子邮件到我在应用程序中使用的同一地址,结果成功了。在仪表板中工作,但在应用程序中不工作。