**** LMTP REDESIGN **** RESULT: - robust checking and handling of NNTP protocol errors - logging into a single file -> write(2) !fwrite(3) - invoked as mailer using LMTP, providing useful return status - invoked as command line (lowpri) - queuing is not supported for command line and a client issue for LMTP - remove To: and Cc: headers - allow crosspostings only through command line - new manpage - (optional) syslog - command line choice for sending "exactly once" or "at least once" (default) **** SMTP ENGINE **** [RFC821, 4.5.1. MINIMUM IMPLEMENTATION] In order to make SMTP workable, the following minimum implementation is required for all receivers: [RFC821, 4.1.2. COMMAND SYNTAX] Verb Parameter Buffer ----+---------------------------------+------------------- HELO MAIL FROM: (char *)sender RCPT TO: (char **)recipients DATA (char *)message RSET NOOP QUIT State Function Continue -----+--------+----------------- 0 wait() LHLO > 1, MAIL > 2 1 wait() MAIL > 2 2 wait() RCPT > 3 3 wait() RCPT > 3, DATA > 4 4 data() >1 x wait() RSET > 1 x wait() NOOP > x x wait() QUIT > exit readline() from pth test* rfc822 header parsing from petidomo string functions from http://www.engelschall.com/sw/str