TIdMessageFlags
TIdMessageFlags = (mfAnswered, mfFlagged, mfDeleted, mfDraft, mfSeen, mfRecent)
Example
procedure MarkForRemoval(Message: TIdMessage);
begin
Message.Flags := Message.Flags + [mfSeen, mfDeleted];
end;
Usage
TIdMessageFlags names the six IMAP-style state flags stored in a TIdMessage flag set.
Members
| Value | Ordinal | Meaning |
|---|---|---|
mfAnswered | 0 | The message has been answered. |
mfFlagged | 1 | The message is marked for urgent or special attention. |
mfDeleted | 2 | The message is marked for removal by a later expunge operation. |
mfDraft | 3 | Composition is not complete; the message is a draft. |
mfSeen | 4 | The message has been read. |
mfRecent | 5 | The server reports the message as recently arrived. |
Behavior and boundaries
mfDeleteddoes not itself delete data; an IMAP EXPUNGE or equivalent server operation performs removal.mfRecentis server-managed/session-sensitive state. The current Velox IMAP server STORE path mutates the first five system flags but notmfRecent.- Velox's client response parser recognizes all six flags, but its outbound flag serializer also omits
mfRecent. - Velox uses non-PEEK
UIDRetrievefor full messages, so the server can setmfSeenbefore sender, recipient or custom-script filtering decides to skip a message. - Velox Delete/Move marks handled UIDs Deleted and expunges the selected mailbox; expunge can remove other messages already carrying
\Deleted. - IMAP retrieval populates
UIDandFlags, but ordinary message-file serialization does not preserve this mailbox metadata as a portable message contract. - Replace a complete set deliberately. If preserving unknown/current state matters, read the existing set and add or subtract only the intended members.
- Flags can change concurrently on the server. A local
TIdMessagesnapshot is not an atomic mailbox transaction.
Additional Technical Info
TIdMessageFlags is the element type of TIdMessageFlagsSet. A message normally carries zero or more members in its Flags set, so test membership with in and add/remove members with set operations.
The meanings follow IMAP system flags. They describe mailbox state, not MIME content, delivery success or Velox log severity.
Related Code Library entries
- TIdMessage.Flags - set storage, retrieval and serialization limits.
- TIdMessage.UID - related mailbox identifier state.
External references
- RFC 9051 message flags - current IMAP flag semantics.
- Embarcadero enumerated types - Delphi ordinal semantics.
- Free Pascal ordinal types - compatible enumeration concepts.