E-MailRelay Change Log ====================== 1.8.2 -> 1.9 ------------ * Added negotiated TLS/SSL for POP (ie. "STLS"). * The first two fields in the secrets files are reordered (with backwards compatibility). * Added Linux-PAM authentication ("configure --with-pam" and then "--server-auth=/pam"). * Optional protocol-specific "--interface" qualifiers, eg. "--interface smtp=127.0.0.1,pop=192.168.1.1". * Outgoing client connection bound with the first "--interface" or "--interface client=..." address. * Support for SMTP-over-TLS on outgoing client connection ("--client-tls-connection") (cf. "STARTTLS") * Support for SOCKS 4a on outgoing client connection, eg. "--forward-to example.com:25@127.0.0.1:9050". * TLS configuration options ("--tls-config=...") for SSLv2/3 fallback etc. * No "Received" line added if "--anonymous" and an empty "--domain" name. * Error text for "all recipients rejected" is now more accurately "one or more recipients rejected". * New behaviour for "--client-filter" exit values of 100 and over. * New commands on the admin interface, "failures" and "unfail-all". * Shorter descriptions in the usage help unless "--verbose". * New default spool directory location on windows, now under "system32". * Windows project files for MSVC 2012 included. * Removed support for Windows NT and Windows 9x. * Better support for Windows Vista and Windows 7. * Removed Windows "--icon" option. * Removed "--enable-fhs" option for "configure" (see INSTALL document for equivalent usage). * Added "--log-file" option to redirect stderr. * Added Windows "--peer-lookup" option. * Fix for MD5 code in 64-bit builds. 1.8.1 -> 1.8.2 -------------- * Fix namespaces for gcc 3.4. 1.8 -> 1.8.1 ------------ * Changed the definition of "--as-proxy" to use "--poll 0" rather than "--immediate" [bug-id 1961652]. * Fixed stalling bug when using server-side TLS/SSL ("--server-tls") [bug-id 1961655]. * Improved Debian packaging for Linux ("make deb"). 1.7 -> 1.8 ---------- * Speed optimisations (as identified by KCachegrind/valgrind in KDevelop). * Build-time size optimisations (eg. "./configure --disable-exec --enable-small-exceptions ..."). * Build-time options to reduce runtime library dependencies (eg. "./configure --disable-dns --disable-identity"). * New switch to limit the size of submitted messages ("--size"). * New semantics for "--poll 0", providing a good alternative to "--immediate" when proxying. * SMTP client protocol emits a RSET after a rejected recipient as a workround for broken server protocols. * SMTP client protocol continues if the server advertises AUTH but the client has no authentication secrets. * When a message cannot be forwarded the offending SMTP protocol response number, if any, is put in the envelope file. * A warning is printed if logging is requested but both stderr and syslog are disabled. * A cross-compiling toolchain builder script added for running on mips-based routers ("extra/mips"). * New example scripts for SMTP multicasting and editing envelope files. * Improved native support for Mac OS X (10.5) with graphical installation from disk image. * Compatibility with gcc 2.95 restored. 1.6 -> 1.7 ---------- * TLS/SSL support for SMTP using OpenSSL ("./configure --with-openssl" with "--client-tls" and "--server-tls"). * Authentication mechanism "PLAIN" added. * Some tightening up of the SMTP server protocol. * Windows service wrapper has an "--uninstall" option. * Windows installation GUI uninstalls the service before reinstalling it. 1.5 -> 1.6 ---------- * GPLv3 licence (see "http://gplv3.fsf.org"). * New "--prompt-timeout" switch for the timeout when waiting for the initial 220 prompt from the SMTP server. * Fix for flow-control assertion error when the POP server sends a very long list of spooled messages. * Wildcard matching for trusted IP addresses in the authentication secrets file can now use CIDR notation. * More fine-grained switching of effective user-id to read files and directories when running as root. * Fewer new client connections when proxying. * The server drops the connection if a remote SMTP client causes too many protocol errors. * More complete implementation of "--hidden" on Windows. * Scanner switch ("--scanner") replaced by a more general "--filter" and "--client-filter" switch syntax. * Support for address verification ("--verifier") over the network. * Better support for running as a Windows service ("emailrelay-service --install"). * Utility filter program "emailrelay-filter-copy" exits with 100 if it deletes the envelope file. * Windows "cscript.exe" wrapper is added automatically to non-bat/exe "--filter" command-lines. * Installation GUI makes backups of the files it edits and preserves authentication secrets. * Installation GUI can install "init.d" links. * Experimental SpamAssassin spamc/spamd protocol support. * Acceptance tests added to the distribution. 1.4 -> 1.5 ---------- * New installation and configuration GUI using TrollTech Qt 4.x ("./configure --enable-gui") * Default address verifier accepts all addresses as valid and never treats them as local mailboxes. * Fix for server exit bug when failing to send data down a newly accepted connection. * Spooled content files can be left in the parent directory to save diskspace when using "--pop-by-name". * Client protocol improved for the case where there are no valid recipients. * New "--syslog" switch to override "--no-syslog". * New "--filter-timeout" switch added. * Support for "--foo=bar" switch syntax (ie. with "="). * Multiple listening interfaces allowed with a comma-separated "--interface" list. * New "--filter" utility called "emailrelay-filter-copy" to support "--pop-by-name". * Documentation also created in docbook format (requires xmlto). * Windows installation document revised. 1.3.3 -> 1.4 ------------ * POP3 server (enable with "--pop", disable at build-time with "./configure --disable-pop"). * Fix for logging reentrancy bug (affects "./configure --enable-debug" with "--debug"). * Fix to ensure sockets are always non-blocking (affects "--scanner"). * Allow "--verifier" scripts to reject addresses with a temporary "4xx" error code. * Automatic re-reading of secrets files. * Write to the Windows event log even if no write access to the registry. * Modification of set-group-id policy if not started as root. * Better checking of spool directory access on startup. * New "emailrelay-submit.sh" example script for submitting messages for "--pop-by-name". * The "--dont-listen" switch is now "--no-smtp". * Better IPv6 support (Linux only). 1.3.2 -> 1.3.3 -------------- * No bind() for outgoing connections [bug-id 1051689]. * Updated rpm spec file [bug-id 1224850]. * Fix for gcc3.4 compilation error in "md5.cpp". * Fix for glob()/size_t compilation warning. * Documentation of "auth" switches corrected. * State-machine template type declaration modernised, possibly breaking older compilers. 1.3.1 -> 1.3.2 -------------- * Fix for core dump when "--client-filter" pre-processing fails. * Revised code structure to prepare for asynchronous pre-processing. * Better diagnostics when pre-processor exec() fails. * Better cleanup of empty and orphaned files. 1.3 -> 1.3.1 ------------ * Windows resource leak from CreateProcess() fixed. * Windows dialog box double-close fix. * Some documentation for the "--scanner" switch. * New usage patterns section in the user guide. 1.2 -> 1.3 ---------- * Client protocol waits for a greeting from the server on startup [bug-id 842156]. * Fix for incorrect backslash normalisation on "--verifier" command-lines containing spaces [bug-id 890646]. * Verifier programs can now summarily abort a connection using an exit value of 100. * New "--anonymous" switch that reduces information leakage to the SMTP client and disables "VRFY". * Better validation of "MAIL-FROM" and "RCPT-TO" formatting. * Rewrite of low-level MD5 code. * Performance tuning. * Template "emailrelay.conf" gets installed in "/etc". * New switches for the "configure" script. * More JavaScript example scripts. 1.1.2 -> 1.2 ------------ * The "--filter" and "--verifier" arguments interpreted as command-lines; spaces in executable paths now need escaping. * The "--interface" switch applies to outgoing connections too. * New "--client-filter" switch to do synchronous message processing before sending. * Keeps authentication after a "rset" command. * Fix for dangling reference bug, seen after "quit" command on Windows. * JavaScript examples in the documentation. 1.1.1 -> 1.1.2 -------------- * Earlier check for un-bindable ports on startup, and later fork()ing [bug-id 776972]. * Resolved the file-descriptor kludge for "--verifier" on Windows. * Less strict about failing eight bit messages sent to servers with no "8BITMIME" extension. * Supplementary group memberships revoked at startup if root or suid. * Pre-processor ("--filter") program's standard output searched for a failure reason string. * Undocumented "--scanner" switch added for asynchronous processing by a separate network server. 1.1.0 -> 1.1.1 -------------- * Restored the fix for building with gcc2.96. * Support for MinGW builds on Windows. * More reasonable size of the "--help --verbose" message box on Windows. * Windows "--icon" switch changed from "-i" to "-c" to avoid conflicting with "--interface". * Shows "next server address" correctly in the configuration report when using "--forward-to". * Fix for "make install" when "man2html" is not available. * Updated init script. 1.0.2 -> 1.1.0 -------------- * In proxy mode unexpected client-side disconnects and timeouts do not leave ".bad" files [see also bug-id 659039]. * By default proxy mode does not interpret addresses for local delivery ("--postmaster"). * Polling option added ("--poll") to rescan the spool directory periodically. * New special exit code (103) for the pre-processor to trigger immediate polling; 100 to 107 now reserved. * Orphaned zero-length content files are deleted properly if the server-side dialogue is cut short. * The "--interface" switch applies to the "--admin" interface too. * Improved internal event architecture using slot/signal design pattern, and fewer singleton classes. * Event notification available through the administration interface. * New "--hidden" switch for Windows. * Syslog output includes process-id. * Support for Sun WorkShop 5.0 added. * Documentation overhaul. 1.0.0 -> 1.0.2 -------------- * Support for trusted IP addresses, allowing certain clients to avoid authentication. * Address verifier interface extended to include authentication information. * New public mail relay section added to the user guide. * Example verifier scripts etc. added to the reference guide. 1.0.0 -> 1.0.1 -------------- * In proxy mode unexpected client-side disconnects and timeouts result in ".bad" files [bug-id 659039]. * Require successful "AUTH" before "MAIL FROM" when using "--server-auth". * Better word-wrap on "--help" output. * Use of RedHat's "functions" code, and support for "chkconfig", added to the "init.d" script. * Builds with gcc3.2 (1.0.0-pl5). * Fix for files left as "busy" after a connection failure in proxy mode [bug-id 631032] (1.0.0-pl3/4/5). * Trivial documentation fixes (1.0.0-pl3). * Fix for the double-dot escape bug in the client protocol [bug-id 611624] (1.0.0-pl2). * Fix build when using gcc2.96 rather than gcc2.95 (1.0.0-pl1). * Fix default spool directory in example scripts (1.0.0-pl1). 0.9.9 -> 1.0.0 -------------- * Briefer "--help" output; works with "--verbose". * Option to listen on a specific network interface ("--interface"). * Option for an external address verifier program ("--verifier"). * Some Linux Standard Base stuff added to the "init.d" script. * Pid files world-readable and deleted on abnormal termination. * Compiles with gcc 3.0 and intel 6.0. * Autoconf tweak for MacOS X. * Corrected the "Received:" typo [bug-id 572236]. * EHLO response parsing is now case-insensitive [bug-id 561522]. * Fewer missing-secrets warnings [bug-id 564987]. 0.9.8 -> 0.9.9 -------------- * More flexible logging options ("--verbose" and "--debug" work better). * File Hierarchy Standard (FHS) option for "configure" ("--enable-fhs"). * FHS-compatible RPMs. * Spool files writeable by pre-processor when server started as root. * Default directories in executables and scripts come from "configure". * The "init.d" script is renamed "emailrelay" (was "emailrelay.sh"). * Man pages are gzipped when installed. * Fix for access violation under Windows NT when client disconnects. * Use of event log when compiled on Windows NT. * Fix for info-after-flush bug when using the administration interface. [rc2] * New "resubmit" script. [rc2] * Submit utility works under Windows. [rc2] * Improved Windows project files. [rc2] 0.9.7 -> 0.9.8 -------------- * Fix for running pre-processor ("--filter") as root. * Ignore bogus "AUTH=LOGIN" lines in EHLO response. * Submit utility improved to work with mutt. * Installation of submit man page. 0.9.6 -> 0.9.7 -------------- * CRAM-MD5 authentication mechanism added. * Revoke root permissions at start up, and reclaim them when needed. * Allow mail pre-processing ("--filter") when started as root. * Domain-override switch ("--domain") added. * Non-privileged user switch ("--user") added. * Better handling of NarrowPipe exception (ie. 8-bit message to 7-bit server). * Allow null return path in MAIL-FROM. * Reject recipients which look like "@localhost" (as used by fetchmail for local delivery). * Treat recipients which look like "postmaster@localhost" or "postmaster@" as local postmaster. * Optional timestamps on log output ("--log-time"). * Fix EHLO to HELO fallback for 501/502 responses in client protocol. * Submission utility "emailrelay-submit" added. * HTML4.0 compliant HTML documentation, using CSS. 0.9.5 -> 0.9.6 -------------- * SMTP AUTHentication extension -- LOGIN mechanism only. * Client-side protocol timeout. * Client-side connection timeout. * Preprocessor can cancel further message processing. * Client's IP address recorded in envelope files. * Multiple hard-coded listening addresses supported at compile-time. * Fix for automatic reopening of stderr stream. 0.9.4 -> 0.9.5 -------------- Windows fixes and improvements... * system-tray + dialog-box user interface * fix for dropped connections * fix for content file deletion * fix for directory iterator 0.9.3 -> 0.9.4 -------------- * Fixed memory leak when no "--log" switch. * Windows build is more "gui" and less "command-line". * "Info" command added to the administration interface. * Doxygen files removed from binary RPM. 0.9.2 -> 0.9.3 -------------- * Proxy mode ("--immediate" and "--as-proxy"). * Message pre-processing ("--filter"). * Message store classes better separated using abstract interfaces. * Improved notification script, with MIME encoding. * Builds with old 2.91 version of gcc. 0.9.1 -> 0.9.2 -------------- * Better autoconf detection. * Workround for FreeBSD uname() feature. * Added missing ".sh_" files to the distribution. * Fixed a benign directory iterator bug. * Use of gcc's "exception" header. 0.9 -> 0.9.1 ------------ * Improved documentation from doxygen. * More complete use of namespaces. * Experimental compile-time support for IPv6.