Table of Contents

Constructor ComposedMailDraft

Namespace
MailFathom.Application.Mail.Delivery.Composition
Assembly
MailFathom.Application.dll

ComposedMailDraft(IReadOnlyList<OutgoingRecipient>, InternetMessageId, ReadOnlyMemory<byte>)

Carries one composed draft: who it is addressed to, the identity it carries, and the bytes to store.

public ComposedMailDraft(IReadOnlyList<OutgoingRecipient> Recipients, InternetMessageId MessageId, ReadOnlyMemory<byte> RawMime)

Parameters

Recipients IReadOnlyList<OutgoingRecipient>

The people the draft names, which may be nobody.

MessageId InternetMessageId

The identity minted for this revision of the draft.

RawMime ReadOnlyMemory<byte>

The RFC 822 bytes to store and to append, built once and never rebuilt.

Remarks

It is a sibling of ComposedOutgoingEmail rather than the same type, and the difference is exactly the one that separates a draft from a send: there is no request to write down. An outgoing record's request carries the idempotency identity a delivery is protected by and requires at least one recipient, and a draft has neither — so what comes back here is the recipient list itself, which a promotion turns into a request when there is one to make.

The identity is minted per revision rather than kept across them. Every revision is a different message on the server — IMAP has no command that changes a stored one — and two messages sharing a Message-ID is what a mail client reads as one message it has seen twice.