我刚刚启动了一个我在1月份建立的Rails应用程序,该应用程序将通过Gmail的smtp协议发送电子邮件。今天我得到一个Net :: SMTPAuthenticationError,需要530-5.5.1身份验证。我搜索了这个并尝试了所有建议,例如重新登录Gmail,解锁验证码以及更改密码。这些都不起作用。
这是我的development.rb代码:
config.action_mailer.default_url_options = { host: "localhost:3000" }
config.action_mailer.delivery_method = :smtp
config.action_mailer.perform_deliveries = true
config.action_mailer.smtp_settings = {
address: "smtp.gmail.com",
port: 587,
authentication: "plain",
enable_starttls_auto: true,
user_name: ENV["GMAIL_USERNAME"],
password: ENV["GMAIL_PASSWORD"]
}
更新
这很奇怪。我将服务器更改为smtp.yahoo.com,并且我收到了相同的Rails错误。更新2 自从我上次尝试这个应用程序以来,我还有一个新的ISP。这可能是个问题吗?
答案 0 :(得分:1)
我认为这可能是Google对访问您帐户的网站持怀疑态度(我最近也有类似的东西)。 登录您的Gmail帐户并查看页面顶部的警告横幅,指出此可疑活动问题。
点击页面顶部的警告横幅。它会带你到一个页面,你可以通知Gmail(点击一个按钮...也许是一个单词验证请求)这是你试图访问你的帐户。甚至应该有一本小说尝试访问您帐户的实体(在本例中为您的服务器)位置的小地图。
他们本应该给你发一封关于此事的电子邮件。 电子邮件应该如下所示:
最近有人使用您的密码尝试登录您的Google 帐户th.good@gmail.com。这个人正在使用这样的应用程序 作为电子邮件客户端或移动设备。
我们阻止了登录尝试,以防这是一名劫机者 访问您的帐户。请查看登录尝试的详细信息: ...如果这是你,你无法访问你的 帐户,完成
中列出的故障排除步骤
http://support.google.com/mail?p=client_login
希望这有帮助。
答案 1 :(得分:0)
只需更改身份验证类型:
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'gmail.com',
:user_name => ENV["GMAIL_USERNAME"],
:password => ENV["GMAIL_PASSWORD"]
:authentication => 'login',
:enable_starttls_auto => true
}
并确保您拥有ENV["GMAIL_USERNAME"]
和ENV["GMAIL_PASSWORD"]
的值。它应该是一个真正的Gmail电子邮件ID(用户名)和密码。它会正常工作。
希望有所帮助:)
答案 2 :(得分:0)
我认为你正在使用费加罗宝石。您必须在ENV["GMAIL_USERNAME"]
文件中设置ENV["GMAIL_PASSWORD"]
和application.yml
。 Check documentation of Figaro Gem。
检查你的设定。
config.action_mailer.smtp_settings = {
:address => 'smtp.gmail.com',
:port => 587,
:domain => 'gmail.com',
:user_name => 'my_nick@gmail.com',
:password => 'secret_password',
:authentication => 'login',
:enable_starttls_auto => true
}
答案 3 :(得分:-1)
好吧,我必须在笔记本电脑上添加Linux旁边的Windows分区。重新安装后,问题就消失了......所以我不知道问题是什么。