mail::account::removeMessages — Remove messages from the folder
#include <libmail/mail.H>
class myCallback : public mail::callback {
public:
void success(std::string msg);
void fail(std::string msg);
};
mail::account *account;
account->removeMessages( |
const std::vector<size_t> msgList, |
myCallback &callback) ; |
This function removes messages from the currently open
folder. msgList
is a
list of messages to be removed.
This request invokes methods in the currently opened folder's mail::callback::folder object, as follows:
mail::account::messagesRemoved
is
invoked for all messages removed from the folder.
Obviously, this method will be invoked, one at a time,
for each message identified in msgList
.
Messages are removed one at a time. Each call to
mail::account::messagesRemoved
renumbers the remaining messages in the folder, and
depending on the account type, mail::account::messagesRemoved
may
not necessarily receive an exact copy of msgList
. For example,
with an IMAP account if msgList
contains
1
, 2
, and 3
, the mail::account::messagesRemoved
function will probably be called three times. Each
time it will receive a single range of removed
messages, set to messages 1-1
, all three times. This is
because IMAP servers remove messages one message at a
time. The first invocation of mail::account::messagesRemoved
indicates that message #1 was removed, with the
remaining messages renumbered; and old messages #2
and #3 becoming messages #1 and #2. The second
invocation of mail::account::messagesRemoved
's
messageNumber
parameter of 1
refers to
the old message #2, which is now message #1. Ditto
for the third invocation of mail::account::messagesRemoved
.
On the other hand, with an IMAP account the
mail::account::messagesRemoved
method will be invoked once, giving a single range of
removed messages, 1-3
.
Application must be prepared to handle either
situation.
The mail::account::messagesChanged
method
may be invoked for any other messages in the folder
with changed status flags.
mail::account::newMessages
may also
be invoked if any messages were added to this folder.
The application should use mail::account::getFolderIndexSize(3x),
and compare it to the previously-known folder size, in
order to determine how many messages were added to the
folder (new messages are always added to the end of the
message list).
This request should not be used with accounts on IMAP servers that do not implement the UIDPLUS IMAP extension. “UIDPLUS” is required to directly support this functionality. An alternative, much slower, fallback implementation will be used with IMAP servers that do not implement this protocol extension.
The application must wait until callback
's success
or fail
method is invoked. The success
method is invoked when this request
is succesfully processed. The fail
method is invoked if this request
cannot be processed. The application must not destroy
callback
until either
the success
or fail
method is invoked.
callback
's
fail
method may be invoked
even after other callback methods were invoked. This
indicates that the request was partially completed before
the error was encountered.