The percent hack is not part of the Internet mail standards

You've come to this page because you've made a claim similar to the following:
MTA "xyz" does not conform to the Internet standards because it doesn't support special meanings for the '%' (or '!') character by default.

This is the Frequently Given Answer to that claim.

Contrary to popular belief, the so-called percent hack is not part of the Internet mail standards. Neither is bang path addressing. '%' and '!' are just ordinary characters with no special meaning as far as RFCs 821 and 822 are concerned.

The only Internet standard that discusses special meanings for these characters in mailbox names is RFC 1123, § 5.2.16. But that section states (three times, no less) that it is specifically talking about non-Internet mail environments.

In any case, UUCP-style mail addressing may have been an important consideration for Internet back in 1989, when RFC 1123 was published, but it is far less so now, given the widespread use of SMTP.

The ORBS web page on MTA security used to (before the disappearance of ORBS) make this mistake of thinking that these characters are somehow special. It criticised the qmail MTA for accepting messages that are addressed to mailboxes whose local parts contain the '!' character. ORBS called the '!' character a "standard network addressing indicator". But it isn't.

qmail is perfectly within its rights to treat '!' exactly the same as it treats any other character in a local part, and does not violate the Internet mail standards in any way when doing so. It is ironic that an MTA that actually implements the original vision of SMTP of a universal directly connected mail transport system for Internet, without all of the non-standard bodges and syntactic quirks such as the percent hack, is actually criticised for doing so.

Indeed, ORBS had pretty much none of its facts right about qmail at all, which was a shame.


© Copyright 2001-2001 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp is preserved.