【问题标题】:Send Devise E-mails using Mandrill in Production在生产中使用 Mandrill 发送设计电子邮件
【发布时间】:2023-03-11 08:09:01
【问题描述】:

我正在尝试从我的 Rails 4 应用程序发送设计电子邮件。我不想更改模板或任何东西,我只想在生产环境中使用 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):

在这种情况下我该怎么办?

【问题讨论】:

    标签: ruby-on-rails ruby email devise mandrill


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      尝试将身份验证更改为“普通”。这对我有用。

      :authentication => 'plain',
      

      【讨论】:

      • 也许您的网络服务器和山魈有一些 IP 限制?
      • 我不知道。但我尝试从 Mandrill Dashboard 向我在应用程序中使用的地址发送一封电子邮件,并且成功了。可在仪表板中使用,但不能在应用中使用。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-11-26
      • 2016-02-28
      • 2023-03-28
      • 2014-05-04
      • 2013-12-09
      • 2016-07-04
      • 2015-04-23
      相关资源
      最近更新 更多