Table of Contents

Class OutgoingEmailRequest

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

States one send somebody authored, in the form it is written down before any SMTP command is issued.

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

Remarks

A new message, a reply, and a forward are one request shape rather than three. Each needs the same answers — which account sends, who it goes to, and what asked — and the difference between them is entirely in the MIME, which this type does not carry and never sees.

The sending account is named and the sending address is not. A message is sent as the account that sends it and its From address is derived from that account's own configuration, so there is nothing here an input path could set to send as somebody else.

Every recipient appears once. An envelope offers one address one time, so the same mailbox written in two headers is one RCPT TO and would otherwise be a second copy in that person's mailbox — which is refused where the request is built rather than deduplicated silently, because a caller naming one person twice has described something they did not mean.

Fields

MaximumRecipientCount

The greatest number of people one message may be addressed to.

Properties

AccountId

Gets the account the message is submitted through and sent as.

DueAt

Gets the time the author asked the message to leave at, or null when they asked for it to leave at once.

Recipients

Gets the people the message is offered to, each named once.

Requester

Gets the authored act that asked, which is what makes the same request twice one delivery.

Methods

Create(MailAccountId, OutgoingEmailRequester, IReadOnlyList<OutgoingRecipient>, ZonedInstant?)

Asks for one message to be submitted through an account and delivered to the recipients it names.

HeldUntil(ZonedInstant)

States the same send, held until the time the author named.