Class: Mail::XOauthIMAP

Inherits:
IMAP
  • Object
show all
Defined in:
lib/mail/network/retreiver_methods/xoauth_imap.rb

Defined Under Namespace

Classes: MissingAuthInfo

Instance Method Summary collapse

Constructor Details

#initialize(values) ⇒ XOauthIMAP



5
6
7
8
9
# File 'lib/mail/network/retreiver_methods/xoauth_imap.rb', line 5

def initialize(values)
  fail MissingAuthInfo unless values[:address]
  fail MissingAuthInfo unless values[:access_token]
  super values
end

Instance Method Details

#start(config = Mail::Configuration.instance, &block) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/mail/network/retreiver_methods/xoauth_imap.rb', line 11

def start(config=Mail::Configuration.instance, &block)
  raise ArgumentError.new("Mail::Retrievable#imap_start takes a block") unless block_given?

  imap = Net::IMAP.new('imap.gmail.com', 993, usessl = true, certs = nil, verify = false)
  imap.authenticate 'XOAUTH2', settings.fetch(:address), settings.fetch(:access_token)

  yield imap
ensure
  if defined?(imap) && imap && !imap.disconnected?
    imap.disconnect
  end
end