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
RecipientsIReadOnlyList<OutgoingRecipient>The people the draft names, which may be nobody.
MessageIdInternetMessageIdThe identity minted for this revision of the draft.
RawMimeReadOnlyMemory<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.