Class OutgoingEmailPrincipal
- Namespace
- MailFathom.Domain.Delivery
- Assembly
- MailFathom.Domain.dll
Tells apart whoever asked for one send from everybody else who has asked for one, without keeping who they are.
public sealed record OutgoingEmailPrincipal : IEquatable<OutgoingEmailPrincipal>
- Inheritance
-
OutgoingEmailPrincipal
- Implements
- Inherited Members
Remarks
This is the other half of the question OutgoingEmailRequester answers, and the two are different facts. The requester says which authored act asked, so that asking twice is one send; this says which admitted principal performed the act, so that a caller reading a send back or withdrawing one reaches what it queued and nothing anybody else did. Nothing about a send is decided from it — it is compared for sameness and never read.
It is a fingerprint rather than the identity, and both halves of that are deliberate. An admitted identity has no bound anywhere above this — an authorization server's issuer and its own identifier for a person arrive as whatever they are — so keeping the text would put an unbounded value into a bounded column and turn a long identity into a send that cannot be written down. And an outgoing record already says who this mailbox wrote to and when; adding the remote party's identifier for the person who asked would widen that for nothing, because sameness is the only question ever put to it.
The fingerprint is not a secret and is not treated as one. Identities are short and drawn from a small set — an operator's own name for a credential, the fixed word for a caller nothing tells apart — so anybody holding the candidate list can confirm a guess. What it buys is a fixed width and one less identifier at rest, and a reader should expect nothing else of it.
Fields
- FingerprintLength
The number of characters a fingerprint is written as, which bounds the column it is stored in.
Properties
- Fingerprint
Gets the fixed-width value two principals are compared by.
Methods
- Create(string)
Restores a principal from the fingerprint a stored row holds.
- Of(string)
Fingerprints the identity a unit of work was admitted under.
- ToString()
Returns a string that represents the current object.