Enum MailTransmissionOutcome
- Namespace
- MailFathom.Application.Mail.Delivery.Transmission
- Assembly
- MailFathom.Application.dll
States how one submission ended, as the three answers a caller acts on differently.
public enum MailTransmissionOutcome
Fields
Accepted = 0The server acknowledged the message for every address it had accepted, and nothing more is owed.
RefusedPermanently = 2The server refused for good, so offering the same message again receives the same answer.
RefusedTemporarily = 1The server refused for now, so the same message offered again later may be taken.
Remarks
A server that refused is not a failure of the attempt: it answered, and what it said decides whether the message is ever offered again. That is why a refusal is an outcome here rather than an exception — an exception is reserved for a server that did not answer at all, which is the case a caller cannot distinguish from a delivery that landed.
The two refusals are separated at the source rather than by a caller re-reading a reply code, so nothing above the adapter has to know that RFC 5321 gives the 4yz class to a temporary rejection or that an RFC 3463 enhanced code may contradict it.