def mails
      return @mails.dup if @mails
      if n_mails() == 0
        # some popd raises error for LIST on the empty mailbox.
        @mails = []
        return []
      end

      @mails = command().list.map {|num, size|
        POPMail.new(num, size, self, command())
      }
      @mails.dup
    end
Returns an array of Net::POPMail objects, representing all the
messages on the server.  This array is renewed when the session
restarts; otherwise, it is fetched from the server the first time
this method is called (directly or indirectly) and cached.

This method raises a POPError if an error occurs.