Constructor MailDeliveryCapabilities
- Namespace
- MailFathom.Application.Mail.Delivery
- Assembly
- MailFathom.Application.dll
MailDeliveryCapabilities(long?, bool, bool)
States what a submission server said it will accept, as facts rather than as advertised extension names.
public MailDeliveryCapabilities(long? MaxMessageBytes, bool AcceptsEightBitContent, bool AcceptsInternationalizedAddresses)
Parameters
MaxMessageByteslong?The largest message the server declared it will accept, or null when it declared no bound. A server that advertises the size extension without a number is stating that it has no fixed maximum, which is the same absence.
AcceptsEightBitContentboolWhether the server accepts a body whose bytes are not restricted to seven bits.
AcceptsInternationalizedAddressesboolWhether the server accepts an envelope address outside ASCII.
Remarks
These three decide whether a message can be sent at all rather than how it is sent, which is why they are the ones a session reports. A message beyond the declared size is refused after its whole body has crossed the network; an internationalized address the server cannot carry is refused outright; and a body the server cannot take unencoded has to be encoded before it is transmitted. A caller left to guess at any of the three pays for the guess in a transmission that was never going to be accepted.
Everything else a server advertises is absent on purpose. Pipelining, chunking, and delivery status notifications change how a submission is carried out and never whether it may happen, so they belong to whatever issues the commands rather than to a contract every caller above reads.