Table of Contents

Class ListEmailsRequest

Namespace
MailFathom.Application.Emails.ListEmails
Assembly
MailFathom.Application.dll

What a caller asks for when listing emails from the local mailbox copy.

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

Remarks

This is the unvalidated contract: every value is what a caller supplied, and nothing here has been normalized, bounded, or checked against the accounts this deployment serves. MailboxTimelineReader does that and produces the validated EmailTimelineFilter the read port receives, so no protocol adapter can reach a query with a filter that skipped validation.

Accounts and folders are named by their domain identities rather than as text, so an adapter converts a caller's strings once, at its own boundary, and a malformed identifier is refused before it reaches a use case.

Properties

AccountIds

Gets the accounts to list from, or empty for every account this deployment serves.

Cursor

Gets the cursor a previous page returned, or null to read the first page.

Direction

Gets the end of the timeline to read from.

FolderAliases

Gets the folder aliases to list from, or empty for every folder of the named accounts.

HasAttachments

Gets whether attachments are required, or null for either.

IsRemotelySeen

Gets the remote \Seen state to require, or null for either.

PageSize

Gets how many emails one page returns, or null to take the default.

ReceivedBefore

Gets the exclusive end of the received range, or null for no end.

ReceivedOnOrAfter

Gets the inclusive start of the received range, or null for no start.

RecipientAddress

Gets the address a To or Cc recipient must carry, or null for any recipient.

SenderAddress

Gets the address the sender must carry, in any case, or null for any sender.

SubjectFragment

Gets the fragment the subject must contain, compared without regard to case, or null for any subject.