Table of Contents

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

MaxMessageBytes long?

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.

AcceptsEightBitContent bool

Whether the server accepts a body whose bytes are not restricted to seven bits.

AcceptsInternationalizedAddresses bool

Whether 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.