【问题标题】:rails mailer failing to send to gmail; works with sendgridrails mailer 无法发送到 gmail;与 sendgrid 一起使用
【发布时间】:2016-07-31 14:28:12
【问题描述】:

我有一个 Rails 4 应用程序在生产中(多年来),上周它突然停止向 gmail 发送邮件。

错误信息是:

E,[2016-04-09T17:16:49.293552 #14465] 错误——: 2016-04-09T17:16:49 + 0000:[工人(延迟作业主机:ip-10-18-148-31 pid:14465)] 作业类#email_sample_complete (id=292861) FAILED (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 服务器和 delay_job 以使所有内容都被拾取。不开心。

我在谷歌上搜索了错误消息,普遍认为这是由于电子邮件服务器关闭造成的......所以我在接下来的几天里再次尝试了几次旧配置。还是不行。

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

【问题讨论】:

    标签: ruby-on-rails email gmail


    【解决方案1】:

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

    是的,迁移到像 SendGrid、AWS SES 这样的事务电子邮件传递服务将是一个不错的举措。

    【讨论】:

      【解决方案2】:

      解决方案在配置中。

      我将域从....更改为...

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

      到....

      :domain         => "gmail.com",
      

      EOF 错误消失了。 Google 必须在他们方面进行了更改,要求域为 gmail.com。我想不出为什么配置在一年多之后突然停止工作而没有任何问题的另一个原因。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-07-18
        • 1970-01-01
        • 2015-05-16
        • 2012-06-01
        • 2015-07-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多