连接到 gmail 时 Rails 3.1.0.rc5 中的 Net::SMTPAuthenticationError
Posted
技术标签:
【中文标题】连接到 gmail 时 Rails 3.1.0.rc5 中的 Net::SMTPAuthenticationError【英文标题】:Net::SMTPAuthenticationError in rails 3.1.0.rc5 when connecting to gmail 【发布时间】:2011-10-20 19:48:20 【问题描述】:每当我尝试在我的 rails 应用程序中发送通知时,我都会收到以下错误
Net::SMTPAuthenticationError (535-5.7.1 Username and Password not accepted. Learn more at
):
app/models/friendship.rb:6:in `send_request'
app/controllers/friends_controller.rb:21:in `make_friendship'
我的 development.rb 邮件配置设置是
# Don't care if the mailer can't send
config.action_mailer.raise_delivery_errors = true
config.action_mailer.delivery_method = :smtp
# Gmail SMTP server setup
config.action_mailer.smtp_settings =
:address => "smtp.gmail.com",
:enable_starttls_auto => true,
:port => 587,
:domain => '@example.com',
:authentication => :plain,
:user_name => 'user@gmail.com',
:password => 'secret'
【问题讨论】:
这在开发中对我有用,但在生产中确实失败了,知道吗? 【参考方案1】:在浏览器中登录您正在使用的帐户,然后访问此页面:
http://www.google.com/accounts/DisplayUnlockCaptcha
这为您提供了 10 分钟的窗口来登录您要允许访问您帐户的应用程序。回到你的 Rails 应用程序并让它发送一封电子邮件,之后一切正常。
【讨论】:
救命稻草!这正是我所需要的。 我的问题正在开发中,必须在此处为发件人帐户启用此设置:google.com/settings/security/lesssecureapps 我首先打开了这个设置 google.com/settings/security/lesssecureapps 然后google.com/accounts/DisplayUnlockCaptcha,之后从我的应用程序发送电子邮件但仍然面临这个错误:( Net::SMTPAuthenticationError (534- 5.7.14 请你看看【参考方案2】:我遇到了同样的问题:它在我的桌面上工作(在开发环境中),但在生产环境中却失败了(瑞典的服务器......)。 如果 Google 阻止了登录尝试,您必须登录到您的 gmail 帐户并检查电子邮件。
【讨论】:
【参考方案3】:您缺少错误消息中的链接! :)
Net::SMTPAuthenticationError (535-5.7.1 Username and Password not accepted. Learn more at https://support.google.com/mail/bin/answer.py?hl=en&answer=14257
详情请见:https://support.google.com/mail/bin/answer.py?hl=en&answer=14257
确保您输入了完整的电子邮件地址(例如 username@gmail.com) 确保您的邮件客户端未设置为过于频繁地检查新邮件。如果您的邮件客户端每 10 分钟检查一次以上的新邮件,您的客户端可能会重复请求您的用户名和密码。【讨论】:
【参考方案4】:我有一个类似的配置可以正常工作,但有时我会收到此错误,我怀疑这是因为 Google 出于某种原因将该帐户标记为可能滥用,登录太快等(每次发送邮件时) .
您可以通过 Web 界面手动登录并输入 CAPTCHA 来使其再次工作。如果这种情况经常发生,我可能会考虑使用其他解决方案,例如使用自己的 MTA 或至少在 Rails 和 gmail 之间使用能够发送多封邮件而无需重新登录的本地 MTA。在这种情况下,您甚至可以自己发送邮件而无需通过 gmail,只需确保设置正确的 SPF 记录等。
【讨论】:
【参考方案5】:我有这个,它对我有用:
ActionMailer::Base.smtp_settings =
:address => "smtp.gmail.com",
:port => 587,
:user_name => "name@example.com",
:password => 'password',
:authentication => "plain",
:enable_starttls_auto => true
【讨论】:
试过了,我现在收到此错误消息Net::SMTPServerBusy (421 Server busy, too many connections
抱歉,这些信息不足以为您提供更多帮助。我会尝试使用不同的 SMTP 服务器来查看是否只是 gmail 有问题。 Sendmail 之类的东西。
是否可以使用 NET::SMTP 从我公司的邮件服务器读取邮件。我试过但得到了 Net::SMTPAuthenticationError。任何建议
我的问题是我只将“name”部分放在user_name
的值中,而不是完整的电子邮件地址“name@example.com”。输入完整的电子邮件地址后,电子邮件已发送!
一些教程显示:domain => "mydomain.com"
...我匹配的所有其他答案。一旦我删除它,它就起作用了。以上是关于连接到 gmail 时 Rails 3.1.0.rc5 中的 Net::SMTPAuthenticationError的主要内容,如果未能解决你的问题,请参考以下文章
在 Codeigniter 中无法发送电子邮件 - fsockopen():无法连接到 ssl://smtp.gmail.com:465(连接被拒绝)