Table of Contents

Class RemoteEmailFlagSnapshot

Namespace
MailFathom.Domain.Emails
Assembly
MailFathom.Domain.dll

Reports the IMAP flags a mail server last showed for one email, and when they were read.

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

Remarks

The snapshot is an observation of server state and travels in one direction only: MailFathom reads mail read-only, so no application path turns any of these into an IMAP STORE. Above all, reading an email through MailFathom never sets \Seen remotely, and this type reports what the server said rather than what a local reader did.

ObservedAt is what separates "the server reported none of these flags" from "nobody has looked yet", which no combination of the booleans can express on its own. A caller that filters or displays a flag reads it together with the timestamp, because NeverObserved carries every flag as false without having asked any server.

Constructors

RemoteEmailFlagSnapshot(DateTimeOffset?, bool, bool, bool, bool, bool)

Reports the IMAP flags a mail server last showed for one email, and when they were read.

Properties

IsAnswered

Whether the server reported the \Answered flag.

IsDeleted

Whether the server reported the \Deleted flag.

IsDraft

Whether the server reported the \Draft flag.

IsFlagged

Whether the server reported the \Flagged flag.

IsSeen

Whether the server reported the \Seen flag.

NeverObserved

Gets the snapshot of an email whose remote flags no run has read yet.

ObservedAt

When the flags below were last read from the server, or null while they have never been read.

WasObserved

Gets whether these flags were read from a server rather than never observed.