Ruby `使用gem gmail时获得\u标签\u响应

Ruby `使用gem gmail时获得\u标签\u响应,ruby,rubygems,gmail,gmail-imap,Ruby,Rubygems,Gmail,Gmail Imap,我正试图用这个代码来使用gmail gem require 'gmail' gmail = Gmail.connect($username, $password) gmail.inbox.find(:unread).each do |email| email.read! end 并返回以下内容: /home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1198:in `get_tagged_response': Un

我正试图用这个代码来使用gmail gem

require 'gmail'

gmail = Gmail.connect($username, $password)

gmail.inbox.find(:unread).each do |email|
  email.read!
end
并返回以下内容:

/home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1198:in `get_tagged_response': Unknown command c107mb38116751qgc (Net::IMAP::BadResponseError)
    from /home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1250:in `block in send_command'
    from /home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
    from /home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:1232:in `send_command'
    from /home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:454:in `block in select'
    from /home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/monitor.rb:214:in `mon_synchronize'
    from /home/ubuntu/.rvm/rubies/ruby-2.3.0/lib/ruby/2.3.0/net/imap.rb:452:in `select'
    from /home/ubuntu/.rvm/gems/ruby-2.3.0/gems/gmail-0.6.0/lib/gmail/client/base.rb:207:in `switch_to_mailbox'
    from /home/ubuntu/.rvm/gems/ruby-2.3.0/gems/gmail-0.6.0/lib/gmail/client/base.rb:164:in `block in mailbox'
    from /home/ubuntu/.rvm/gems/ruby-2.3.0/gems/gmail-0.6.0/lib/gmail/client/base.rb:161:in `synchronize'
    from /home/ubuntu/.rvm/gems/ruby-2.3.0/gems/gmail-0.6.0/lib/gmail/client/base.rb:161:in `mailbox'
    from /home/ubuntu/.rvm/gems/ruby-2.3.0/gems/gmail-0.6.0/lib/gmail/client/base.rb:184:in `inbox'
    from get-mail.rb:10:in `<main>'
其他ubuntu实例上的相同代码也可以正常工作。 我使用的是gmail 0.6.0、gmail_xoauth0.4.2和ubuntu 14.04.4

我对这个有点迷茫。可能是和语言环境设置有关


有什么线索吗?

@molokoV,我能够重现您在使用OS X机器时遇到的错误,所以看起来Ubuntu不是问题所在

因此,我搜索了gem文档并发现:

在Gmail安全设置中,启用对不太安全的应用程序的访问。 注意:如果已启用2FA,则无法启用此功能


另一种选择是,Google提供了一个GemGoogleAPI客户端,它也支持OAuth2。完整的文档和快速入门可以在这个链接中找到

@molokoV,我能够重现您在使用OSX机器时遇到的错误,所以看起来Ubuntu不是问题所在

因此,我搜索了gem文档并发现:

在Gmail安全设置中,启用对不太安全的应用程序的访问。 注意:如果已启用2FA,则无法启用此功能


另一种选择是,Google提供了一个GemGoogleAPI客户端,它也支持OAuth2。完整文档和快速启动可在此链接中找到

我已经启用了“不太安全的应用程序”。问题是google imap服务器拒绝了该请求。我尝试使用oauth API,它成功了。oauth唯一的问题是令牌过期,我必须添加更多代码来支持它。我已经启用了“不太安全的应用程序”。问题是google imap服务器拒绝了该请求。我尝试使用oauth API,它成功了。oauth唯一的问题是令牌过期,我必须添加更多代码来支持它。