`get_tagged_response' 当使用 gem gmail 时
`get_tagged_response' when using gem gmail
我正在尝试通过此代码
使用 gmail gem
require 'gmail'
gmail = Gmail.connect($username, $password)
gmail.inbox.find(:unread).each do |email|
email.read!
end
和returns这个:
/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_xoauth (0.4.2) 和 ubuntu 14.04.4
我对这个有点迷茫。也许与语言环境设置有关。
有什么线索吗?
@molokoV,我能够重现您在使用带有 OS X 的机器时遇到的错误,所以看起来 Ubuntu 不是问题所在。
所以,我搜索了 gem 文档并找到了这个:
In Gmail Security Settings, enable access for less secure applications.
注意:如果您启用了 2FA,则无法启用此功能。
另外,Google 提供了 gem google-api-client
,它也支持 OAuth2。可以在 link https://developers.google.com/api-client-library/ruby/apis/gmail/v1
中找到完整的文档和快速入门
我正在尝试通过此代码
使用 gmail gemrequire 'gmail'
gmail = Gmail.connect($username, $password)
gmail.inbox.find(:unread).each do |email|
email.read!
end
和returns这个:
/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_xoauth (0.4.2) 和 ubuntu 14.04.4
我对这个有点迷茫。也许与语言环境设置有关。
有什么线索吗?
@molokoV,我能够重现您在使用带有 OS X 的机器时遇到的错误,所以看起来 Ubuntu 不是问题所在。
所以,我搜索了 gem 文档并找到了这个:
In Gmail Security Settings, enable access for less secure applications.
注意:如果您启用了 2FA,则无法启用此功能。
另外,Google 提供了 gem google-api-client
,它也支持 OAuth2。可以在 link https://developers.google.com/api-client-library/ruby/apis/gmail/v1