Skip to main content

mfDraft

mfDraft = 3

Example

procedure MarkDraftLocally(Message: TIdMessage);
begin
Message.Flags := Message.Flags + [mfDraft];
end;

Usage

mfDraft represents the IMAP Draft system flag for a mailbox message whose composition is not complete.

Meaning and boundaries

  • Velox does not derive Draft from missing recipients, an empty body, a Drafts-folder name or message headers.
  • Sending or saving a TIdMessage does not automatically remove the local member.
  • Conversely, a fully formed message may still be flagged Draft by the server/client workflow.
  • Velox's receive transport has no special Draft handling; it exposes the retrieved snapshot to processing.

Velox parses \Draft from IMAP responses and serializes it in outbound flag sets. Whether the selected mailbox permits changing it is controlled by server capabilities and permanent flags.

Additional Technical Info

mfDraft maps to IMAP \Draft and denotes incomplete composition in mailbox metadata. The example preserves other local flags but does not update a mailbox. It is source-reviewed and is not executed by the documentation workflow.

Local versus remote state

Changing Message.Flags is local only. A remote workflow should address the message by UID and add/remove the single intended flag rather than replace every server flag from a stale snapshot.

Errors, performance and concurrency

Local set operations are constant-time. Remote updates can fail due to mailbox state, permissions, UID validity, connection or protocol errors. Another client can complete, move or delete the draft after it was retrieved.

Related entries

External references

Created 2026-07-15