Class Expunge.

Inherits Command. Inherited by Close.

This command is responsible for removing "\Deleted" messages.

It implements EXPUNGE, as specified in RFC 3501 section 6.4.3 and UID EXPUNGE, as specified in RFC 2359 section 4.1, and helps Close.

RFC 2180discusses expunging in situations where multiple users may access the mailbox. Our present approach is to delete the message early, so that when we tell the expunging client that a message is gone, it really is. Seems advisable from a confidentiality point of view.

The UID of an expunged message may still exist in different sessions, although the message itself is no longer accessible.

Expunge::Expunge( bool u )

Creates a new EXPUNGE handler if u is false, or a UID EXPUNGE handler if it is true.

void Expunge::execute()

Remarkable only in that it cooperates with the reimplementation in Close: the ImapSession is copied in on the first call, so that Close can nil it out, and if there isn't a session when execute() finishes its work, no expunge responses are sent.

Reimplements Command::execute().

This web page based on source code belonging to The Archiveopteryx Developers. All rights reserved.