This patch adds Enhanced Status Code support to the SMTP server, ala RFCs 2034 and 3463. It also brings the server in to closer alignment with RFC 2821: 1) The SMTP TURN command is removed from the parser. It was a no-op, and the 502 response is deprecated under RFC 2821. 2) STARTTLS in the absence of a certificate returns a 500 (illegal command) response; the command is illegal in the absence of a STARTTLS capability advertisment. 3) The bogus domain checks have been extended to include all the domains defined in RFC 2606. The domain checks are now case-insensitive, and they now match sub-domains thereof (e.g. foo.example.com). 4) If filterstate returns a DELAY status, the server issues a 450 reply (temporary failure) instead of a permanent 554 response. This change might have an impact on other sites; it's been working fine here for a couple of weeks, though, and is faithful to the spirit of the RFCs (which don't necessarily reflect reality at a lot of sites ...) Caveat IETF. 5) A few of the SMTP response codes have been adjusted to more closely reflect the errors being reported.