Ruby on rails Ruby net/imap登录不工作

Ruby on rails Ruby net/imap登录不工作,ruby-on-rails,ruby,imap,Ruby On Rails,Ruby,Imap,我不明白为什么,因为结构看起来很简单 imap = Net::IMAP.new("imap.gmail.com", 993, ssl: true) imap.login("someuser@gmail.com", "someValidPassword") 返回此错误 Net::IMAP::NoResponseError: Please log in via your web browser: https://support.google.com/mail/accounts/answer/78

我不明白为什么,因为结构看起来很简单

imap = Net::IMAP.new("imap.gmail.com", 993, ssl: true)
imap.login("someuser@gmail.com", "someValidPassword")
返回此错误

Net::IMAP::NoResponseError:  Please log in via your web browser: https://support.google.com/mail/accounts/answer/78754 (Failure)
from /Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:1171:in `get_tagged_response'
我在gmail中启用了imap,我在本地工作,但通过网络隧道(即,我可以向您发送url,您可以访问它),因此它与在生产环境中工作没有什么不同。感谢您的帮助

编辑:雅虎也是如此

imap = Net::IMAP.new("imap.mail.yahoo.com", 993, true, nil, false)
imap.login("myAccount@yahoo.com", "myPassword")
同样的错误

Net::IMAP::NoResponseError:  (#MBR1240) Please verify your account by going to https://login.yahoo.com
from /Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:1171:in `get_tagged_response'
from /Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:1225:in `block in send_command'
from /Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/monitor.rb:211:in `mon_synchronize'
from /Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:1207:in `send_command'
from /Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:435:in `login'
from (irb):8
from /Users/Rocco/.rvm/rubies/ruby-2.2.4/bin/irb:11:in `<main>'
Net::IMAP::NoResponseError:(#MBR1240)请通过转到验证您的帐户https://login.yahoo.com
来自/Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:1171:“获取标记的响应”中
from/Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:1225:“发送命令中的块”
from/Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/monitor.rb:211:in'mon_synchronize'
from/Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:1207:in'send_command'
from/Users/Rocco/.rvm/rubies/ruby-2.2.4/lib/ruby/2.2.0/net/imap.rb:435:in'login'
来自(irb):8
from/Users/Rocco/.rvm/rubies/ruby-2.2.4/bin/irb:11:in`'

Gmail具有变幻莫测的登录保护功能。它可能会以谷歌认为合适的任何理由阻止你

您可以做以下几件事:

您可以尝试转到web用户界面,或者从它看到您连接的同一IP的页面解锁它

你可以试着打开

您可以实现完整的


根据您的登录设置(例如,如果您启用了双因素),您可能可以生成一个也应该可以工作的。谢谢,但雅虎也会出现同样的错误。添加到上面。这不是相同的错误。文本是不同的。然而,雅虎也有登录保护,而雅虎更难以应对。实现OAUTH2是让Gmail正常工作的可靠方法,但我知道Yahoo没有解决办法。对于Yahoo,你可以通过在错误消息中找到URL来让它正常工作,同样,从你试图登录的同一IP。嗯,好的,我会考虑为Gmail使用OAUTH2。最后一个问题,你知道iCloud帐户有什么解决办法吗?对于iCloud,特定于应用程序的密码似乎很有效。您可以在appleid.apple.com上生成它们,但这可能只有在您打开2FA的情况下才可用。