On Sat, Apr 19, 2014 at 11:10:13PM +0200, Axel Luttgens wrote: > >> Can it be avoided? > > > > No. > > Well... This is perhaps the opportunity for a feature request?
Unlikely to happen in this case. Far more important than the user understanding the message is that the postmaster understands the context in which the message happens. > Such messages are liable to be shown in a MUA user interface. Some user interfaces attempt to base the user interface on the DSN code, you should prepend the closest RFC 3463 DSN code to your error message. http://tools.ietf.org/html/rfc3463#section-3.3 > But end-users often tend not to read such messages, especially > when they are a bit complicated, too technical. > > Would there be an easy way, I mean without rewriting a bunch of > code, to avoid such frightening tech pieces ("<END-OF-MESSAGE>", > "End-of-data"...)? As "frightening" as they may be, they concisely communicate the SMTP context in which the message was rejected. Which enables the postmaster to respond to problem reports. If you can suggest a concise less scary version of "END-OF-MESSAGE" or "End-of-data" as cosmetic change that simply replaces existing names of SMTP states with friendlier unambiguous names, please do. src/smtpd/smtpd.h: #define SMTPD_AFTER_CONNECT "CONNECT" #define SMTPD_AFTER_DATA "DATA content" #define SMTPD_AFTER_DOT "END-OF-MESSAGE" #define SMTPD_AFTER_CONNECT "CONNECT" #define SMTPD_AFTER_DATA "DATA content" #define SMTPD_AFTER_DOT "END-OF-MESSAGE" /* * Other stages. These are sometimes used to change the way information is * logged or what information will be available for access control. */ #define SMTPD_CMD_HELO "HELO" #define SMTPD_CMD_EHLO "EHLO" #define SMTPD_CMD_STARTTLS "STARTTLS" #define SMTPD_CMD_AUTH "AUTH" #define SMTPD_CMD_MAIL "MAIL" #define SMTPD_CMD_RCPT "RCPT" #define SMTPD_CMD_DATA "DATA" #define SMTPD_CMD_EOD SMTPD_AFTER_DOT /* XXX Was: END-OF-DATA */ #define SMTPD_CMD_RSET "RSET" #define SMTPD_CMD_NOOP "NOOP" #define SMTPD_CMD_VRFY "VRFY" #define SMTPD_CMD_ETRN "ETRN" #define SMTPD_CMD_QUIT "QUIT" #define SMTPD_CMD_XCLIENT "XCLIENT" #define SMTPD_CMD_XFORWARD "XFORWARD" #define SMTPD_CMD_UNKNOWN "UNKNOWN" src/smtpd/smtpd_dsn_fix.h: /* * Internal interface. */ #define SMTPD_NAME_CLIENT "Client host" #define SMTPD_NAME_REV_CLIENT "Unverified Client host" #define SMTPD_NAME_CCERT "Client certificate" #define SMTPD_NAME_SASL_USER "SASL login name" #define SMTPD_NAME_HELO "Helo command" #define SMTPD_NAME_SENDER "Sender address" #define SMTPD_NAME_RECIPIENT "Recipient address" #define SMTPD_NAME_ETRN "Etrn command" #define SMTPD_NAME_DATA "Data command" #define SMTPD_NAME_EOD "End-of-data" -- Viktor.