Table of Contents

Constructor GetEmailContentResult

Namespace
MailFathom.Application.Emails.GetEmailContent
Assembly
MailFathom.Application.dll

GetEmailContentResult(IReadOnlyList<EmailContentReadOutcome>, IReadOnlyList<StoredEmailId>)

What one content read produced for every email it named.

public GetEmailContentResult(IReadOnlyList<EmailContentReadOutcome> Emails, IReadOnlyList<StoredEmailId> UnreadThreadEmails)

Parameters

Emails IReadOnlyList<EmailContentReadOutcome>

One outcome per named email, in the order the request named them.

UnreadThreadEmails IReadOnlyList<StoredEmailId>

The emails of a named conversation this call did not carry, in the conversation's own order, and empty for every read that named its emails itself. It names what one assembly of the conversation held past the read's own bound, which is at most MaximumAssembledEmails emails: a conversation longer than that is assembled as far as the bound reaches, so the identities past it are named here no more than they were read.

Remarks

The order is the contract twice over: it is how a caller pairs an outcome with what it asked for, and it is the order the read's character budget was spent in, so a body cut by that budget is one an earlier email in the same list drew on. A read that named a conversation is answered in that conversation's order for the same reason it exists — receiving an exchange out of sequence is receiving a different thing.

The unread messages are named rather than counted, so a caller reads the rest of a long conversation by asking for those identities directly instead of by paging a call that has no cursor. It is empty when the conversation fitted, which is the ordinary case.

This is the most sensitive projection MailFathom publishes. Everything reachable from it is message content and inherits every classification, retention, access, and erasure constraint of the mail it was read from. Nothing in it may be logged.