-
Notifications
You must be signed in to change notification settings - Fork 4
/
ChangeLog
464 lines (423 loc) · 23.3 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
E-MailRelay Change Log
======================
2.5.2 -> 2.6
------------
* New "--log-format" option (eg. "--log-format=address,port").
* New "--server-smtp-config" "nostrictparsing" option to allow missing "RCPT-TO" angle brackets.
* The SMTP server converts incoming e-mail addresses to RFC-5890 A-labels by default (see NEWS).
* The "mx:" filter accepts an IP address in the envelope forward-to field, not just a domain name.
* Pop-by-name sub-directories are automatically created if necessary.
* The "--forward-to" domain names can be UTF-8.
* Windows configuration files always use UTF-8 character encoding.
* The Windows installer puts options in "emailrelay.cfg", not "emailrelay-start.bat".
* The Windows service wrapper will read "emailrelay.cfg" if there is no batch file.
* The SMTP client EHLO parameter is controlled by "--domain" (as in v2.3) but IP address if not a FQDN.
* The "emailrelay-submit" utility can parse recipient addresses out of content headers.
* On Windows "--no-daemon" is deprecated in favour of "--show=window".
* The Windows event loop supports more concurrent connections [bug-id #59].
2.5.1 -> 2.5.2
--------------
* Windows build scripts reworked.
* Filters can be Windows PowerShell ".ps1" scripts.
* Fix for client protocol [bug-id #57].
2.5 -> 2.5.1
------------
* Filters can control the SMTP server's error response code.
* Proxying with "--immediate" passes back SMTP reponses more faithfully.
* The "--disable-admin" build-time configure option is restored.
* New "smtp disable" admin command to disable new SMTP sessions.
* Fewer Windows handles inherited by filter programs [bug-id #55].
* Fix for "--dnsbl" option parsing.
2.4 -> 2.5
----------
* Multiple configurations in one process.
* SMTP PIPELINING (RFC-2920).
* SMTP CHUNKING/8BITMIME 'BDAT' extension (RFC-3030), disabled by default.
* SMTP SMTPUTF8 extension (RFC-6531), disabled by default.
* No 7-bit/8-bit check on received message content (see NEWS file).
* New built-in filters: "deliver:", "split:", "copy:", "mx:", "msgid:".
* New built-in address verifier: "account:"
* No ".local" files (see NEWS file).
* PAM authentication is now enabled with "--server-auth=pam:" not "/pam".
* Client authentication details can be given directly from the command-line.
* Multiple "client" authentication secrets, selected by a new envelope field.
* Main binary can act as a simple submission tool ("configure --enable-submission").
2.3 -> 2.4
----------
* Multiple "--filter" and "--client-filter" options allowed.
* TLS key and certificate files can be specified separately.
* Finer control when using "--anonymous" (eg. "--anonymous=server").
* The "auth-config" options can distinguish between TLS and non-TLS authentication.
* Hourly log file rotation using "%h" (eg. "--log-file=log.%d.%h").
* Listening file descriptors can be inherited from the parent process (see "--interface").
* Listening ports on Windows use exclusive binding.
* The Linux event loop uses "epoll" by default rather than "select".
* Some support for message routing (see NEWS).
* Fix of error handling in network client filters ("--client-filter=net:...") [bug-id #50].
2.2 -> 2.3
----------
* Unix domain sockets supported (eg. "--interface=/tmp/smtp.s").
* Windows event log not used for verbose logging (prefer "--log-file").
* New admin "forward" command to trigger forwarding without waiting.
* Optional base64 encoding of passwords in secrets files ("plain:b").
* Support for MbedTLS version 3.
2.1 -> 2.2
----------
* Connections from IPv4 'private use' addresses are allowed by default (see "--remote-clients").
* Interface names can be used with "--interface" (eg. "--interface=eth0").
* New "--server-tls-connection" option for server-side implicit TLS.
* New "--forward-to-some" option to permit some message recipients to be rejected.
* New "--log-address" option to aid adaptive firewalling.
* Dynamic log file rolling when using "--log-file=%d".
* Choice of syslog 'facility' on Linux with "--syslog=local0" etc.
* Pipelined SMTP QUIT commands sent by broken clients are tolerated.
* Better handling of overly-verbose or unkillable "--filter" scripts.
* Optional epoll event loop on Linux ("configure --enable-epoll").
* Some internationalisation support (see NEWS file).
* Support for Windows XP restored when built with mingw-w64.
* C++ 2011 compiler is required.
2.0.1 -> 2.1
------------
* Backwards compatibility features for 1.9-to-2.0 transition removed.
* Better handling of too-many-connections on Windows.
* New "--idle-timeout" option for server-side connections.
* Support for RFC-5782 DNSBL blocking ("--dnsbl").
* Filter scripts are given the path of the envelope file in argv2.
* Message files can be edited by "--client-filter" scripts.
* Better support for CRAM-SHAx authentication.
* New "--client-auth-config" and "--server-auth-config" options.
* New "--show" option on windows to better control the user interface style.
* The "--pop" option always requires "--pop-auth".
* No message is spooled if all its envelope recipients are local-mailboxes.
* TLS cipher name added to "Received" line as per RFC-8314 4.3.
* Certificate contents are not logged.
* Timestamp parts of spool filenames no longer limited to six digits.
2.0 -> 2.0.1
------------
* Make PLAIN client authentication work against servers with broken 334 responses.
1.9.2 -> 2.0
------------
* Improved IPv6 support, with IPv4 and IPv6 used independently at run-time (see "--interface").
* Server process is not blocked during "--filter" or "--address-verifier" execution, if multi-threaded.
* Support for the "mbedTLS" TLS library as an alternative to OpenSSL ("configure --with-mbedtls").
* TLS server certificates specified with new "--server-tls-certificate" option, not "--server-tls".
* TLS servers enable client certificate verification with "--server-tls-verify", not "--tls-config".
* TLS clients can verify server certificates with "--client-tls-verify" and "--client-tls-verify-name".
* The "--tls-config" option works differently (see NEWS file).
* New "--client-tls-server-name" option for server name identification (SNI).
* New "--client-tls-required" option to force client connections to use TLS.
* New "--server-tls-required" option to force remote SMTP clients to use STARTTLS.
* New "--forward-on-disconnect" option replaces "--poll=0".
* The "--anonymous" option now suppresses the "Received" line, whatever the "--domain".
* The second field in the secrets file indicates the password encoding, not AUTH mechanism.
* The "--verifier" option is now "--address-verifier", with simplified command-line parameters.
* Command-line file paths can use "@app" as a prefix to be relative to the executable directory.
* Command-line file paths can be relative to the startup cwd even when daemonised.
* Filter exit codes between 104 and 107 are interpreted differently (see NEWS file).
* Message rejection reasons passed back to the submitting SMTP client are much less verbose.
* Forwarding events are queued up if the forwarding client is still busy from last time.
* The bind address for outgoing connections is no longer taken from first unqualified "--interface" address [bug-id #27].
* The SMTP client protocol tries more than one authentication mechanism.
* Some support for XOAUTH2 client-side authentication.
* Client protocol sends QUIT with a socket shutdown().
* The Windows commdlg list-view widget is used for the server status pages.
* The Windows connection-lookup feature is withdrawn ("--peer-lookup").
* Several build-time configure options like "--disable-pop" are withdrawn.
* C++ 2011 is preferred, and required for multi-threading.
* Support for very old versions of Windows is dropped.
1.9.1 -> 1.9.2
--------------
* Fixed a leak in the event-loop garbage collection.
* A local hostname that fails to resolve is not an error.
* A warning is emitted if there is more than one client authentication secret.
* Multiple "--interface" options are allowed separately on the command-line.
* Added a new "--client-interface" option.
* The "Received" line is formatted as per RFC-3848 ("with ESMTPSA").
* The LOGIN and PLAIN mechanisms in the secrets file are now equivalent.
* The Windows service wrapper can use a configuration file to locate the startup batch file.
* Simplified the implementation of the GUI installation program.
* Reworded the "read error: disconnected" log message.
* Less verbose logging of "no more messages to send".
* Qt4 or Qt5 selected by the "configure" script.
* Improved the RPM spec file.
1.9 -> 1.9.1
------------
* Updated OpenSSL from 1.0.1e to 1.0.1g in the Windows build.
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:[email protected]: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 "<user>@localhost" (as used by fetchmail for local delivery).
* Treat recipients which look like "postmaster@localhost" or "postmaster@<fqdn>" 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.