rails mailer无法发送到Gmail;适用于sendgrid

时间:2016-04-10 15:19:22

标签: ruby-on-rails email gmail

我有一个rails 4应用程序正在生产(多年)突然上周它停止成功发送邮件到gmail。

错误消息是:

  

E,[2016-04-09T17:16:49.293552#14465]错误 - :   2016-04-09T17:16:49 + 0000:[工人(delayed_job主持人:ip-10-18-148-31   pid:14465)]工作类#email_sample_complete(id = 292861)失败(5   先前的尝试)与EOFError:达到文件结尾

配置(已经工作了一年/密码和域名为安全隐藏)是:

ActionMailer::Base.smtp_settings = {
  :enable_starttls_auto => true,
  :address        => "smtp.gmail.com",
  :port           => 587,
  :domain         => "system@mydomain.org",
  :authentication => :plain,
  :user_name      => "system@mydomain.org",
  :password       => "mypassword"
}

我手动测试了凭据,并且能够使用它们登录,因此没有更改。

在预感中,我将电子邮件服务器和信用卡更改为指向sendgrid,这些电子邮件已通过。所以一切都有效,除了与gmail的连接。

我们没有进行任何代码更改或部署。为了安全起见,我重新部署了以前已知安全的已知代码版本,并重新启动了Web服务器和delayed_job以使所有内容都被选中。没有快乐。

我搜索了错误消息,并且普遍的共识是,这是由电子邮件服务器关闭引起的...所以我在接下来的几天再次尝试了旧配置几次。仍然没有工作。

在这里抓我的头。一个已知的工作配置突然停止工作,没有代码更改或环境更改。谷歌方面有什么变化吗?

2 个答案:

答案 0 :(得分:1)

Google已使用普通用户名和密码阻止了SMTP身份验证。

是的,转移到像SendGrid这样的交易电子邮件传递服务,AWS SES将是一个很好的举措。

答案 1 :(得分:1)

解决方案在配置中。

我从....改变了域名

:domain         => "system@mydomain.org",

到....

:domain         => "gmail.com",

EOF错误消失了。谷歌必须做出改变,要求域名为gmail.com。我无法想到另一个原因,为什么配置突然停止工作超过一年没有问题。