diff options
Diffstat (limited to 'doc/README.smtpreply')
-rw-r--r-- | doc/README.smtpreply | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/doc/README.smtpreply b/doc/README.smtpreply new file mode 100644 index 0000000..84ff016 --- /dev/null +++ b/doc/README.smtpreply @@ -0,0 +1,72 @@ +SMTP Reply Codes with s/qmail +============================= + +SMTP allows to reject Sessions based on some technical +and/or political criteria, which are not well expressed +in the RFCs (2821, 2554, 2505, 1122). + +As protocol mechanism between the client and the server +are defined as Commands and Replies. SMTP uses a +three-letter Reply Code. The first digit tells whether +a command was accepted and completed (2), transaction begin +(3), or whether there was as transient (4) or permanent failure (5). + +In addition, an explanatory description may be given. + +RFC 1893 introduces a concept of "Enhanced Mail System +Status Codes" (EMSSC) which should provide easy parseable +SMTP server conditions and transaction stati, usually +at the end of the SMTP reply and included in paranthesis, +eg. (#5.5.1). + +The STMP Reply Codes and the EMSSC are detailed in the +corresponding RFCs, but don't fit well to each other, +thus either providing redundant information or almost +no additional information at all. In short, the EMSSC +is nowadays almost meaningless. + +Here's a breakdown of s/qmail's SMTP Reply Codes, +informational texts, and the used EMSSC. + +Reply Informational text (EMSSC) +--------------------------------------------------- + + 400 proabably greylisted (#4.3.0) [REPLY_GREYLISTED] + 421 unable to check recipients (#4.3.0) + 421 greylisted (#4.3.0) [REPLY_GREYLISTED] + 450 sorry, mailbox currently unavailable (#4.2.1) [1] + 450 greylisted (#4.3.0) [REPLY_GREYLISTED] + 451 DNS temporary failure (#4.3.0) + 452 sorry, too many recipients (#4.5.3) + 454 TLS not available due to temporary reason (#5.7.3) + + 501 auth exchange canceled (#5.0.0) + 501 malformed auth input (#5.5.4) + 503 you're already authenticated (#5.5.0) + 503 no auth during mail transaction (#5.5.0) + 503 sorry, SMTP Authentication not available (#5.7.3) + 503 DATA command not accepted at this time (#5.5.1) + 504 auth type unimplemented (#5.5.1) + 535 authorization failed (#5.7.1) + 535 STARTTLS required (#5.7.1) + + 550 sorry, invalid HELO/EHLO greeting [*] (#5.7.1) [REPLY_HELO] + 550 sorry, your envelope recipient is in my badrcptto list [*] (#5.7.1) [REPLY_BADRCPTTO] + 550 sorry, mailbox currently unavailable [*] (#4.2.1) [2] [REPLY_MAILBOX] + + 552 sorry, that message size exceeds my databytes limit [*] (#5.3.4) [REPLY_MAXSIZE] + 553 sorry, your envelope sender is in my badmailfrom list [*] (#5.7.1) [REPLY_BADMAILFROM] + 553 sorry, invalid sender address specified [*] (#5.7.1) [REPLY_SENDERINVALID] + 553 sorry, that domain isn't in my list of allowed rcpthosts [*] (#5.7.1) [REPLY_NOGATEWAY] + 553 sorry, your envelope sender domain must exist [*] (#5.7.1) [REPLY_SENDEREXIST] + + 554 too many hops, this message is looping (#5.4.6) + 554 sorry, invalid message content [*] (#5.3.2) [REPLY_CONTENT] + + +Note: + +[1] or [2] depends on setting of environment variable RECIPIENTS550; default [2]. +[*] Additional text can be included here via environment variables provided in paranthesis, + eg. REPLY_HELO='see RFC 2821 section 3.6'. + |