无法让Mandrill从Rails App发送电子邮件

时间:2012-07-06 05:48:57

标签: ruby-on-rails

我正在尝试在Rails应用中发送电子邮件。如果我使用Gmail,它可以工作,但如果我使用Mandrill,它就无法使用。我正在使用Mandrill获得此超时错误。不知道我做错了什么。使用Gmail和Mandrill,我使用环境变量设置用户名和密码/ api_key。两个设置之间的唯一区别是您在下面看到的。有任何想法吗?

Timeout::Error in RegistrationsController#create

execution expired
Rails.root: /Users/michaeljohnmitchell/Sites/pre

Application Trace | Framework Trace | Full Trace
app/models/user.rb:38:in `send_welcome_email'

Mandrill不起作用

config.action_mailer.smtp_settings = {
  :address   => "smtp.mandrillapp.com",
  :port      => 25,
  :user_name => ENV["MANDRILL_USERNAME"],
  :password  => ENV["MANDRILL_API_KEY"]
}

Gmail Works

config.action_mailer.smtp_settings = {
  address: "smtp.gmail.com",
  port: 587,
 authentication: "plain",
  enable_starttls_auto: true,
  user_name: ENV["GMAIL_USERNAME"],
  password: ENV["GMAIL_PASSWORD"]
}

2 个答案:

答案 0 :(得分:37)

使用端口587进行mandrill,对我发生同样的事情:)

这是因为端口25正在发送纯文本,端口587发送SSL编码的电子邮件(我认为这是整个mandrill的想法)。

我不知道他们为什么在他们的例子中将它设置为端口25。

答案 1 :(得分:0)

根据您提供的信息,您可以尝试以下几项内容:

  1. 确保每个环境文件(production.rb和development.rb)中都有正确的信息

  2. 尝试硬编码mandrill的用户名和密码,而不是使用环境变量(仅用于测试)