Table of Contents

Struct OutgoingMailFiling

Namespace
MailFathom.Domain.Delivery.Filing
Assembly
MailFathom.Domain.dll

Names one place an outgoing message belongs in the mailbox, and what its copy looks like once it is there.

[JsonConverter(typeof(OutgoingMailFilingJsonConverter))]
public readonly record struct OutgoingMailFiling : IEquatable<OutgoingMailFiling>
Implements
Inherited Members

Remarks

A message MailFathom authors has a place in the mailbox at every stage of its life, and this is that stage read as a filing: which role the destination folder plays and which flags the appended copy carries. Both travel together because they are one answer — \Draft in the drafts folder and \Seen in the sent folder are not two independent settings, they are what each of those folders means — and separating them would let a caller file a draft as read.

The type is a closed enumeration of values rather than a C# enum, because the name is the identity: it is what the durable filing row stores, what a log line records, and what a counter is broken down by. The set is closed for the reason MailboxMutation's is, and a fourth place an outgoing message can be is a member to append rather than a second filing mechanism to build.

Held is the one member naming a role no mail server publishes. RFC 6154 defines the special-use attributes a server may advertise and there is no \Outbox among them, because the outbox a mail client shows is that client's own local queue of what it has not managed to send yet. MailFathom's outbox is the durable outgoing record, which is the truth about what will be sent; this member is the optional mirror of it into a folder an operator chose, for the message that will sit there long enough to be worth seeing in a mail client.

Being a struct, default is reachable and names no filing. IsSpecified reports that.

Properties

All

Gets every place an outgoing message is filed.

Draft

Gets the filing of a message the owner is still composing, into the drafts folder.

Flags

Gets the flags the appended copy carries.

Held

Gets the filing of a message that is waiting to go out, into the folder an operator mapped as the outbox.

IsSpecified

Gets whether this value names a filing rather than the unusable struct default.

IsWithdrawnWhenTheMessageLeaves

Gets whether the copy is withdrawn once the message leaves the stage this filing describes.

Name

Gets the name a durable row, a log line, and a counter dimension all use for the filing.

Role

Gets the role the destination folder plays, which is what identifies it on any account in any language.

Sent

Gets the filing of a message a submission server has already accepted, into the sent folder.

Methods

ToString()

Returns the fully qualified type name of this instance.

TryParseName(string?, out OutgoingMailFiling)

Parses a recorded name back into the filing it names.