#include "__imaplist.h" #include "Exception.h" #include "__imap.h" #include namespace jet { __imaplist::__imaplist(coreutils::ZString &in, coreutils::MString &parentOut, Global &global, Tag *parent, Tag *local) : Tag(in, parentOut, global, parent, local) { coreutils::MString sessionId = resolveKeyword("sessionid"); if (!global.imapSessionExists(sessionId)) throw coreutils::Exception("imap sessionid does not exist.", __FILE__, __LINE__, 502); std::string folder = resolveKeyword("folder").str(); if (folder.empty()) folder = "INBOX"; std::string limitStr = resolveKeyword("limit").str(); int limit = limitStr.empty() ? 50 : atoi(limitStr.c_str()); if (limit <= 0) limit = 50; out = global.getImapSession(sessionId)->listMessages(folder, limit); } }