rails 邮件程序无法发送到 gmail;与发送网格一起工作
rails mailer failing to send to gmail; works with sendgrid
我有一个 rails 4 应用程序在生产中(多年),上周它突然停止向 gmail 成功发送邮件。
错误信息是:
E, [2016-04-09T17:16:49.293552 #14465] ERROR -- :
2016-04-09T17:16:49+0000: [Worker(delayed_job host:ip-10-18-148-31
pid:14465)] Job Class#email_sample_complete (id=292861) FAILED (5
prior attempts) with EOFError: end of file reached
配置(已经工作了一年/为了安全而隐藏了密码和域)是:
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"
}
我手动测试了凭据并能够使用它们登录,所以这没有改变。
凭直觉,我更改了电子邮件服务器和 creds 以指向 sendgrid,这些电子邮件通过了。所以一切正常,除了与 gmail 的连接。
我们没有进行任何代码更改或部署。为了安全起见,我重新部署了一个已知版本的代码,该版本以前被认为是安全的,并重新启动了 Web 服务器和 delayed_job 以使所有内容都被拾取。不开心。
我 googled 错误消息,普遍的共识是这是由电子邮件服务器关闭引起的......所以我在接下来的几天里再次尝试了几次旧配置。还是不行。
在这里挠我的头。一个已知的工作配置突然停止工作,没有代码更改或 env 更改。 google 方面有什么变化吗?
Google 已阻止使用纯用户名和密码的 SMTP 身份验证。
是的,迁移到 SendGrid、AWS SES 等交易电子邮件传送服务将是一个很好的举措。
解决方案在配置中。
我将域名从....
:domain => "system@mydomain.org",
到....
:domain => "gmail.com",
并且 EOF 错误消失了。 Google 一定是他们方面进行了更改,要求域为 gmail.com。我想不出配置在一年多没有任何问题后突然停止工作的另一个原因。
我有一个 rails 4 应用程序在生产中(多年),上周它突然停止向 gmail 成功发送邮件。
错误信息是:
E, [2016-04-09T17:16:49.293552 #14465] ERROR -- : 2016-04-09T17:16:49+0000: [Worker(delayed_job host:ip-10-18-148-31 pid:14465)] Job Class#email_sample_complete (id=292861) FAILED (5 prior attempts) with EOFError: end of file reached
配置(已经工作了一年/为了安全而隐藏了密码和域)是:
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"
}
我手动测试了凭据并能够使用它们登录,所以这没有改变。
凭直觉,我更改了电子邮件服务器和 creds 以指向 sendgrid,这些电子邮件通过了。所以一切正常,除了与 gmail 的连接。
我们没有进行任何代码更改或部署。为了安全起见,我重新部署了一个已知版本的代码,该版本以前被认为是安全的,并重新启动了 Web 服务器和 delayed_job 以使所有内容都被拾取。不开心。
我 googled 错误消息,普遍的共识是这是由电子邮件服务器关闭引起的......所以我在接下来的几天里再次尝试了几次旧配置。还是不行。
在这里挠我的头。一个已知的工作配置突然停止工作,没有代码更改或 env 更改。 google 方面有什么变化吗?
Google 已阻止使用纯用户名和密码的 SMTP 身份验证。
是的,迁移到 SendGrid、AWS SES 等交易电子邮件传送服务将是一个很好的举措。
解决方案在配置中。
我将域名从....
:domain => "system@mydomain.org",
到....
:domain => "gmail.com",
并且 EOF 错误消失了。 Google 一定是他们方面进行了更改,要求域为 gmail.com。我想不出配置在一年多没有任何问题后突然停止工作的另一个原因。