Class ComposedMailDraft
- Namespace
- MailFathom.Application.Mail.Delivery.Composition
- Assembly
- MailFathom.Application.dll
Carries one composed draft: who it is addressed to, the identity it carries, and the bytes to store.
public sealed record ComposedMailDraft : IEquatable<ComposedMailDraft>
- Inheritance
-
ComposedMailDraft
- Implements
- Inherited Members
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.
Constructors
- ComposedMailDraft(IReadOnlyList<OutgoingRecipient>, InternetMessageId, ReadOnlyMemory<byte>)
Carries one composed draft: who it is addressed to, the identity it carries, and the bytes to store.
Properties
- MessageId
The identity minted for this revision of the draft.
- RawMime
The RFC 822 bytes to store and to append, built once and never rebuilt.
- Recipients
The people the draft names, which may be nobody.