Class: Mail::IMAP

Inherits:
Object
  • Object
show all
Defined in:
lib/mail/network/retriever_methods/imap.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(values) ⇒ IMAP

Returns a new instance of IMAP.



7
8
9
10
11
12
13
14
# File 'lib/mail/network/retriever_methods/imap.rb', line 7

def initialize(values)
  self.settings = { :address              => "localhost",
    :port                 => 110,
    :user_name            => nil,
    :password             => nil,
    :authentication       => nil,
    :enable_ssl           => false }.merge!(values)
end

Instance Attribute Details

#settingsObject

Returns the value of attribute settings.



16
17
18
# File 'lib/mail/network/retriever_methods/imap.rb', line 16

def settings
  @settings
end

Instance Method Details

#first(options = {}, &block) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/mail/network/retriever_methods/imap.rb', line 18

def first(options = {}, &block)
  imap = Net::IMAP.new(settings[:address], settings[:port], settings[:enable_ssl])
  imap.(settings[:user_name], settings[:password])
  imap.examine('INBOX')
  uids = imap.uid_search('ALL')
  uids = uids[0,options[:count]] if options[:count]
  uids.each do |message_id|
    fetch_data = imap.uid_fetch(message_id, ['BODY.PEEK[HEADER]'])
    fetch_data.each{|fd| yield Mail.new(fd.attr['BODY[HEADER]'])}
  end

end