#include "__IMAP_CLOSE.h" #include "IMAPServer.h" namespace mail { // RFC 3501 6.4.2: CLOSE expunges (silently - no untagged EXPUNGE) // unless the mailbox was opened via EXAMINE, then always deselects. int __IMAP_CLOSE::processCommand(coreutils::ZString &request, IMAPSession &session, IMAPServer &server) { if (session.state != IMAPSession::SELECTED) { session.out << session.tag << " NO No mailbox selected" << CRLF; return 1; } if (!session.readOnly) session.mailbox.expunge(); session.state = IMAPSession::AUTHENTICATED; session.selectedFolderName.clear(); session.readOnly = false; session.out << session.tag << " OK CLOSE completed" << CRLF; return 1; } }