Rails 4 ActionMailer 与 gmail Net::SMTPAuthenticationError: 534-5.7.14

Posted

技术标签:

【中文标题】Rails 4 ActionMailer 与 gmail Net::SMTPAuthenticationError: 534-5.7.14【英文标题】:Rails 4 ActionMailer with gmail Net::SMTPAuthenticationError: 534-5.7.14 【发布时间】:2015-01-12 12:50:37 【问题描述】:

我正在尝试在我的应用程序的开发版本中发送电子邮件。我所做的一切都不起作用。我不断受到打击: Net::SMTPAuthenticationError: 534-5.7.14 https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=blahblahblah

我关注的其他 SO 帖子:

Net::SMTPAuthenticationError when sending email from Rails app (on staging environment)

Running into SMTP error when trying to send email in RoR app

... 等等... 没有任何效果。如果不能解决,我会绞尽脑汁。我花了这么长时间...

我试过直接去http://www.google.com/accounts/DisplayUnlockCaptcha然后点击继续,没有结果。我已经在我的 google 帐户设置中启用了不太安全的应用程序访问(Google -> 安全 -> 帐户权限 -> 访问)。我已经尝试转到错误后发布的链接,并从那里登录,但没有结果。

我在 config/environments/development.rb 中的设置

  config.action_mailer.default :charset => "utf-8"
  config.action_mailer.perform_deliveries = true
  config.action_mailer.raise_delivery_errors = true
  config.action_mailer.delivery_method = :smtp
  config.action_mailer.smtp_settings = 
    address: 'smtp.gmail.com',
    port: 587,
    domain: 'mysite.com',
    user_name: ENV['MAIL_EMAIL'],
    password: ENV['MAIL_PASS'],
    authentication: 'plain',
    enable_starttls_auto: true
  

如果这有什么不同:

来自 apache 错误日志:

警告:基于名称的 SSL 虚拟主机仅适用于支持 TLS 服务器名称指示的客户端

我在同一个 IP 地址上托管两个域。

我将我的 rails 应用程序切换到生产模式,看看它是否有帮助。没有结果。

请帮忙。

【问题讨论】:

你有没有找到解决这个问题的方法? 【参考方案1】:

这个解决方案对我来说很好。

config.action_mailer.default :charset => "utf-8"
config.action_mailer.perform_deliveries = true
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = 
    address: 'smtp.gmail.com',
    port: 587,
    domain: 'mysite.com',
    user_name: myemail@gmail.com,
    password: mypassword,
    authentication: 'plain',
    enable_starttls_auto: true

如果您在帐户设置中关闭了安全性较低的应用的访问权限,Google 会尝试阻止您的登录。因此,请按照此link 和“开启”访问权限来访问不太安全的应用程序。

【讨论】:

【参考方案2】:

转到您的 Google 帐户设置,找到 Security -> Account permissions -> Access for less secure apps,启用此选项。

关于此选项:https://support.google.com/accounts/answer/6010255

【讨论】:

是的,我已经完成了 :( 感谢您的建议 1000 美元的答案。最后,经过 100 次尝试后,我才知道这个愚蠢的理由浪费了我 2 周的时间。非常感谢! @pigate 如果你已经完成了,为什么将其标记为答案? 非常感谢。我开始严重怀疑我的调试技能,因为我没有做出任何努力来解决这个错误。 有没有一种方法可以在不降低我的应用安全性的情况下解决这个问题?

以上是关于Rails 4 ActionMailer 与 gmail Net::SMTPAuthenticationError: 534-5.7.14的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4 ActionMailer - 如何在使用 Deliver_later 时捕获连接和 SMTP 错误

Rails 4, RSpec 3.2 - 如何模拟 ActionMailer 的 Deliver_now 方法来引发异常

Rails 6 & Deliver_later 不影响 ActionMailer::Base.deliveries

将 rails 与 mailchimp 集成

Rails 中 ActionMailer Mandrill 的问题

在 Rails3 / ActionMailer 中设置 Message-ID 邮件头