在生产中使用 Mandrill 发送设计电子邮件
Posted
技术标签:
【中文标题】在生产中使用 Mandrill 发送设计电子邮件【英文标题】:Send Devise E-mails using Mandrill in Production 【发布时间】:2015-02-01 16:16:06 【问题描述】:我正在尝试从我的 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):
在这种情况下我该怎么办?
【问题讨论】:
【参考方案1】:您似乎遇到了端口被阻止的问题。我们推荐故障排除步骤here。更具体地说,尝试更改您正在使用的端口 - 2525 通常不会被阻止,或者在启用 SSL 的情况下使用 465。许多主机阻止 25 和 587 以帮助防止垃圾邮件。
【讨论】:
【参考方案2】:尝试将身份验证更改为“普通”。这对我有用。
:authentication => 'plain',
【讨论】:
也许您的网络服务器和山魈有一些 IP 限制? 我不知道。但我尝试从 Mandrill Dashboard 向我在应用程序中使用的地址发送一封电子邮件,并且成功了。可在仪表板中使用,但不能在应用中使用。以上是关于在生产中使用 Mandrill 发送设计电子邮件的主要内容,如果未能解决你的问题,请参考以下文章