class Mail::IMAP

The IMAP retriever allows to get the last, first or all emails from a IMAP server. Each email retrieved (RFC2822) is given as an instance of Message.

While being retrieved, emails can be yielded if a block is given.

Example of retrieving Emails from GMail:

Mail.defaults do
  retriever_method :imap, { :address             => "imap.googlemail.com",
                            :port                => 993,
                            :user_name           => '<username>',
                            :password            => '<password>',
                            :enable_ssl          => true }
end

Mail.all    #=> Returns an array of all emails
Mail.first  #=> Returns the first unread email
Mail.last   #=> Returns the last unread email

You can also pass options into Mail.find to locate an email in your imap mailbox with the following options:

mailbox: name of the mailbox used for email retrieval. The default is 'INBOX'.
what:    last or first emails. The default is :first.
order:   order of emails returned. Possible values are :asc or :desc. Default value is :asc.
count:   number of emails to retrieve. The default value is 10. A value of 1 returns an
         instance of Message, not an array of Message instances.
keys:    are passed as criteria to the SEARCH command.  They can either be a string holding the entire search string, 
         or a single-dimension array of search keywords and arguments.  Refer to  [IMAP] section 6.4.4 for a full list
         The default is 'ALL'

Mail.find(:what => :first, :count => 10, :order => :asc, :keys=>'ALL')
#=> Returns the first 10 emails in ascending order