def initialize uri, username, password, last_idate=nil, usual=true, archived=false, id=nil, labels=[]
raise ArgumentError, "username and password must be specified" unless username && password
raise ArgumentError, "not an imap uri" unless uri =~ %r!imaps?://!
super uri, last_idate, usual, archived, id
@parsed_uri = URI(uri)
@username = username
@password = password
@imap = nil
@imap_state = {}
@ids = []
@last_scan = nil
@labels = Set.new((labels || []) - LabelManager::RESERVED_LABELS)
@say_id = nil
@mutex = Mutex.new
end