# File lib/mail/network/retriever_methods/pop3.rb, line 93
    def find(options = {}, &block)
      options = validate_options(options)
      
      start do |pop3|
        mails = pop3.mails
        mails.sort! { |m1, m2| m2.number <=> m1.number } if options[:what] == :last
        mails = mails.first(options[:count]) if options[:count].is_a? Integer
        
        if options[:what].to_sym == :last && options[:order].to_sym == :desc ||
           options[:what].to_sym == :first && options[:order].to_sym == :asc ||
          mails.reverse!
        end
        
        if block_given?
          mails.each do |mail|
            yield Mail.new(mail.pop)
          end
        else
          emails = []
          mails.each do |mail|
            emails << Mail.new(mail.pop)
          end
          emails.size == 1 && options[:count] == 1 ? emails.first : emails
        end
        
      end
    end