Table of Contents

Class OutgoingRecipientOutcome

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

Reports where one recipient of an outgoing email stands, and what the server last said about them.

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

Remarks

A message is offered per recipient and answered per recipient, so a refusal is one person's rather than the message's: a mistyped address among five must not stop the other four, and the four who received it must not be offered the message again when the fifth is retried. That is the whole reason the outcome is recorded at this grain.

The reply code is the three digits the server answered with and nothing else. Recording it is what lets an operator tell a mailbox that does not exist from one that is over quota without the reply text — which is written by the remote server, may name the recipient, and is therefore never kept.

Properties

AnsweredAt

Gets when that answer was recorded, or null while there has been none.

IsOutstanding

Gets whether the recipient is one a later attempt still offers the message to.

LastReplyCode

Gets the reply code the server last answered about this recipient, or null while it has answered nothing.

Recipient

Gets the recipient this outcome is about.

Status

Gets whether the next attempt offers this recipient, and why it does not when it does not.

Methods

Answered(OutgoingRecipient, OutgoingRecipientStatus, int, DateTimeOffset)

States what one attempt settled about a recipient.

Create(OutgoingRecipient, OutgoingRecipientStatus, int?, DateTimeOffset?)

Restores an outcome exactly as a stored row holds it.

Unanswered(OutgoingRecipient)

States a recipient nothing has answered about yet, which is how every recipient of a new record starts.