The DeleteMessage method only flags the message for deletion.
The message is not actually deleted until the mailbox is expunged or
another mailbox is selected. This function will return an error if the
current mailbox is in read-only mode, such as if it was selected using
the ExamineMailbox method.
It is important to note that unlike the POP3 protocol, a message
that is marked for deletion is still accessible on the IMAP server
until the mailbox is expunged. This means, for example, that a
deleted message can still be retrieved using the GetMessage
method.
To determine if a message has been marked for deletion, set the
Message property to the message number and then check the
value of the MessageFlags property to determine if the
imapFlagDeleted bit flag has been set.
To remove the deletion flag from the message, use the
UndeleteMessage method. To prevent all messages in the current
mailbox from being expunged, use the ReselectMailbox function
to reset the current mailbox state. Calling the Reset method
will also unselect the current mailbox without expunging deleted
messages.