Table of Contents

Class MailboxMutationUnsupportedException

Namespace
MailFathom.Application.Mail.Mutations
Assembly
MailFathom.Application.dll

Indicates that a mail server advertises no extension able to carry a requested mutation safely.

public sealed class MailboxMutationUnsupportedException : MailboxMutationRefusedException, ISerializable
Inheritance
MailboxMutationUnsupportedException
Implements
Inherited Members

Remarks

It is raised rather than returned because it is not a state the immediate caller chooses between: a server that cannot remove one message without removing others will not be able to tomorrow either, so the mutation is refused instead of deferred to a later run. That is what separates it from MailboxUnavailableException, which says exactly the opposite about repeating the work.

The one shape this exists for is the expunge. RFC 3501's bare EXPUNGE removes every message in the folder that anybody has flagged \Deleted, including messages another client flagged and MailFathom never saw, so it is never issued. Where RFC 4315 UID EXPUNGE is unavailable there is no message-scoped removal to fall back to, and refusing is the only answer that keeps a mail tool from deleting mail nobody asked it to.

The message names the account alias, the folder alias, the mutation, and the missing extension. All four are MailFathom's own configured or protocol-registered names, and none of them is mail content or a remote path.

Constructors

MailboxMutationUnsupportedException(MailAccountId, MailFolderAlias, MailboxMutation, string)

Initializes a new refusal naming the mutation and the extension the server does not advertise.

Properties

AccountId

Gets the account whose mail server advertises no way to carry the mutation.

ErrorCode

Gets the stable code identifying this failure to a boundary that must report it without naming a type.

FolderAlias

Gets the folder the mutation was to be performed in.

Mutation

Gets the mutation that was asked for.

RequiredCapabilityName

Gets the IMAP extension the mutation needs and the server does not advertise.