Table of Contents

Class OutgoingMailFilingRecord

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

Reports one copy of an outgoing message MailFathom put into a folder, and what has become of it since.

public sealed record OutgoingMailFilingRecord : IEquatable<OutgoingMailFilingRecord>
Inheritance
OutgoingMailFilingRecord
Implements
Inherited Members

Remarks

It hangs off the outgoing record rather than standing on its own, because the outgoing record is what an operator, mfctl, and the MCP surface already read as the truth about a message MailFathom is sending. A filing is one more thing that record says about it — where a copy of it is — and reading provenance through the same record is what keeps this from being a second mechanism beside the one mutations already use.

The copy comes back through synchronization as ordinary new mail, and this is the whole of what tells it apart from somebody else's message. Where the server advertises UIDPLUS the APPENDUID response names the occurrence exactly and AccountsForPlacementAt(RemoteFolderPath, ImapUidValidity, ImapUid) is the join; where it does not, AccountsForMessageAt(RemoteFolderPath, string?) falls back to the identity the message carries in its own headers, which is the nearest thing to a fact available once the server has declined to say where it put the copy.

Nothing here is mail content. A folder, an alias, a UID, and a message identity MailFathom minted itself are its own or the server's names for things, which is what lets the row be written and read without the message.

Properties

AppendedAt

Gets when the append was issued.

Filing

Gets which place in the mailbox this copy was filed into.

FolderAlias

Gets MailFathom's own name for the folder the copy went into, which is what a failure and a log line name.

FolderPath

Gets the remote path the copy was appended to, which is what the join compares a discovery against.

HasUnknownOutcome

Gets whether the append went out and the server's answer to it never came back.

InternetMessageId

Gets the Message-ID the appended copy carries, or null while none was read.

IsStanding

Gets whether this copy is still in the folder as far as MailFathom knows.

ObservedAt

Gets when synchronization recognized the copy, or null while it has not.

OutgoingEmailId

Gets the outgoing record this copy was filed from.

Placement

Gets where the folder put the copy, as far as the server said.

Stage

Gets how far the append has durably got.

WithdrawnAt

Gets when the copy was taken back out of the folder, or null while it stands.

Methods

AccountsForMessageAt(RemoteFolderPath, string?)

Reports whether a newly discovered occurrence carries the identity of the message this filing appended.

AccountsForPlacementAt(RemoteFolderPath, ImapUidValidity, ImapUid)

Reports whether a newly discovered occurrence is the copy this filing appended.