Table of Contents

Class EmailAttachmentDownloadReader

Namespace
MailFathom.Application.Emails.DownloadAttachment
Assembly
MailFathom.Application.dll

Opens the one attachment a redeemed capability names, from the local mailbox copy.

public sealed class EmailAttachmentDownloadReader
Inheritance
EmailAttachmentDownloadReader
Inherited Members

Remarks

The capability is verified before this use case is reached, so what arrives here is this deployment's own statement about which attachment of which email was authorized. Everything the use case still does is what a signature cannot establish: that the email exists, that it belongs to an account this deployment currently serves, that the stored copy is what was written, and that the message really carries a part at that position.

It resolves through the live store on every redemption rather than against anything staged when the link was minted. An attachment is mail content in full and inherits every retention, access, and erasure constraint of the message it belongs to, so a link must not be able to outlive the deletion of its own message — which is a property of reading it afresh rather than a rule anybody has to remember.

Every refusal is the same refusal. A message this deployment no longer serves, a stored copy that has gone missing, a damaged one, and a position the message does not have all answer null, because telling them apart would let whoever holds a capability learn what became of mail they can no longer read.

It reaches no mail server, for the reason the content read does not: the use case holds no mailbox port, so a download cannot fetch a message and cannot set the remote \Seen flag.

Constructors

EmailAttachmentDownloadReader(IStoredEmailSummaryReader, IEmailContentStore, IEmailAttachmentContentReader, IEmailContentRepairRequestStore, MailboxScopeResolver)

Initializes the use case.

Methods

OpenAsync(AttachmentDownloadTicket, CancellationToken)

Opens the attachment the ticket authorizes.