Table of Contents

Class OutgoingThreadPlacement

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

Places one outgoing message in the conversation it answers, in the two headers every client threads by.

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

Remarks

A reply that names the wrong ancestors is not a message with a cosmetic defect. Every mail client threads from In-Reply-To and References and from nothing else, so a guessed value puts the reply in a conversation of its own in every recipient's mailbox, and no later correction reaches the copies already delivered. This deployment pays that cost twice: its own threads are assembled from the same three identifiers, so a reply whose headers are wrong comes back from Sent as a conversation of one here as well.

The placement is derived from what the original message carried rather than supplied by whoever authored the answer. That is what makes it correct by construction: an authoring boundary names the stored email it is answering, and the identifiers come out of that message's own headers.

Fields

MaximumReferences

The greatest number of ancestors a composed message writes into References.

Properties

InReplyTo

Gets the identifier of the message this one answers, without its angle brackets, or null when it answers none.

IsThreaded

Gets whether this placement writes anything into a composed message.

None

Gets the placement of a message that answers nothing, which writes neither header.

References

Gets the path back to the root of the conversation, in header order, with the answered message last.

Methods

Answering(EmailThreadReferences)

Places a message as the answer to one this deployment already holds.