mlmmj

view ChangeLog @ b202ed626645

Mlmmj 1.2.19.0.
author Ben Schmidt
date Tue, 26 May 2015 07:33:09 +1000
parents 04d916168efb
children a5b51bf2aed9
line source
1 o Add README.footers and footer-related resources
2 o Support ESMTP so OpenSMTPD uses 8 bits (Paul Fariello)
3 o Use iconv to convert unknown character sets
4 o Handle unfolded header lines better
5 o Add a tunable for moderation request lifetime (Timo Boettcher)
6 o Ensure mlmmj-send always honours tunables (e.g. relayhost)
7 o Fix reason in denial messages for mails without the list in To: or CC:
8 1.2.18.1
9 o Stop mlmmj-maintd deleting list posts while they are being sent
10 o Fix +list from crashing Mlmmj
11 o Fix bug that made double subscription possible
12 1.2.18.0
13 o New list texts (Ben Schmidt, Xuacu Saturio, Nino Novak, Sophie Gautier,
14 Epaminondas Diamantopoulos, Valter Mura, Sérgio Marques, Milos Sramek, Dean
15 Lee)
16 o Add %nowrap% to facilitate more complex formatting
17 o Add subscription ability to php-admin
18 o Add ability to except characters from width reckoning (and be zero-width)
19 to facilitate wrapping even more languages well
20 o Add different width-reckoning modes to facilitate wrapping many languages
21 o Add different wrapping modes to facilitate wrapping many languages
22 o Fix backslash escaping mechanism so double backslash can't effectively
23 recurse and form part of another escape sequence, other non-unicode escapes
24 aren't ignored, and first lines of included files don't 'escape' escaping.
25 o Add ability to subscribe to both (normal and digest).
26 o Fix access logic so subonlypost doesn't override a send access rule.
27 o Make +unsubscribe remove the requester from all versions of the list.
28 o Make mlmmj-unsub default to removing the requester from all versions of the
29 list.
30 o Make mlmmj-sub and +subscribe[-digest|-nomail] switch existing
31 subscriptions.
32 o Add a switch to bypass notifying the owner on subscribe/unsubscribe.
33 o Introduce \<space> to indicate non-breakable space, \= to mark other
34 locations where breaks should not occur, and \/ to mark locations where
35 breaks can occur
36 o Add rejection of posts and obstruction of subscriptions.
37 o Avoid bogus error messages when logging that the list address has been
38 found in To: or CC: headers.
39 o Escape dashes in man pages.
40 o Remove 'bashisms' from mlmmj-make-ml script (patch from Dan forwarded by
41 Thomas Goirand).
42 o Automatically skip blank lines followed by unsatisfied conditionals with no
43 else part in list texts
44 o Automatically skip lines with only whitespace and directives in list texts
45 o Add support for conditionals in list texts
46 o Add %wrap% and %wrap W% formatting directives
47 o Add %digestthreads%, %gatekeepers%, %listsubs%, %digestsubs%, %nomailsubs%,
48 %moderators% and %bouncenumbers%
49 o Deprecate various list text substitutions such as $newsub$, $oldsub$,
50 $moderateaddr$
51 o Add $permitaddr$ and $releaseaddr$ substitutions
52 o Make $subject$, $posteraddr$ and $subaddr$ more widely available
53 o Fix potential crash when mail to the owner arrives with no From: header
54 o Add %originalmail% and %originalmail N% directives
55 o Allow more characters in control and text filenames for substitutions
56 o Add %%, %^%, %comment%, %control C% and %text T% formatting directives
57 o Improve algorithm for list text substitutions
58 o Add $text T$ substitution
59 o Add $$ substitution
60 o Allow list texts to include real UTF-8 characters, as documented
61 o Fix bug where the normal listtext would be sent when unsubscribing from the
62 nomail version of the list
63 o New listtext naming scheme
64 o Avoid trailing whitespace in MAIL FROM line (Lukas Fleischer)
65 o Better end-of-line handling and error reporting in php-admin (Franky Van
66 Liedekerke)
67 o Avoid losing mail when connecting to relayhost fails
68 o Improved and more consistent closing of SMTP sessions in error cases
69 o Check the relayhost gives a reply before reading it to avoid a crash
70 o Avoid checking addresses multiple times for notmetoo and make it work even
71 when delivering messages individually
72 o Fixed small memory leaks when SMTP errors occur
73 o Improved error logging when requeuing
74 o Fix php-admin to work when topdir contains a symlink (e.g. on Mac)
75 o Better techniques for locating support files in php-admin -- existing
76 installations will need to have their conf/config.php altered to set
77 the variable $confdir
78 o Add $control C$ substitution
79 o Fix theoretically possible memory corruption by chomp()
80 o Remove .sh from mlmmj-make-ml.sh; symlink original name
81 o Correct spelling of 'receive' and 'voodoo' throughout the code and
82 documentation, making mlmmj-recieve a symlink to mlmmj-receive (Chris Webb)
83 o Richer MIME list texts with inline messages
84 o Add $random0$ through $random5$ substitutions
85 o Add a $subject$ substitution for list texts
86 o Allow arbitrary headers in list texts
87 o Ensure digest listtext is always closed
88 o Fix Content-Transfer-Encoding: header for digests and list texts
89 o Fixed a bug that could cause a crash if $posteraddr$ appeared in the
90 maxmailsize listtext
91 o Documented listtexts
92 o Makes the random strings produced always the same length rather than
93 smaller random numbers producing shorter strings which could be
94 problematic
95 o Make random number generation more efficient by only seeding the
96 generator once
97 o Added feature to notify users when their posts are moderated
98 o Fixed documentation regarding silent subscription, and added
99 ability to silently subscribe
100 o Added notmetoo feature where posts are not mirrored to their senders
101 o Check return status in mlmmj-perl-admin when adding subscribers (Florian
102 Streibelt, Bitmand)
103 o Better validation of input in php-admin (Thomas Goirand)
104 o Fixed security bug in mlmmj-php-admin (Florian Streibelt, Morten Shearman
105 Kirkegaard)
106 o Added README.postfix to distribution tarball
107 o Added "send" keyword to control/access handling (Ben Schmidt)
108 o Added contrib/amime-receive (Gerd v. Egidy)
109 o Fixed memory leak in substitute_one() (Ben Schmidt)
110 o Updated TUNABLES file (Ben Schmidt)
111 1.2.17
112 o Added ifmodsendonlymodmoderate tunable
113 o Replaced class.FastTemplate.php with class.rFastTemplate.php in
114 contrib/web/php-admin (Christoph Thiel)
115 1.2.17-RC1
116 o Added information about digest and nomail to listhelp (Robin H. Johnson)
117 o Fixed bug in mlmmj-maintd which caused loss of archive files in some
118 requeue cases (Robin H. Johnson)
119 o Added README.postfix (Jeremy Hinegardner, Andreas Schneider)
120 o Added support for digest and nomail to +list (Christoph Wilke)
121 o Caseinsensitive string compare for owner addr when +list is invoked. Spotted
122 by Pavel Kolar.
123 o Added contrib/web/php-moderation (Thomas Goirand)
124 1.2.16
125 o Fixed injection in contrib/web/perl-user (Gerd von Egidy)
126 1.2.16-RC1
127 o Updated Dutch listtexts (Franky Van Liedekerke)
128 o Updated Italian listtexts (Fabio Busatto)
129 o Added Postfix pipe backend support (Niki Guldbrand)
130 o PHP admin interface bugfix (Niki Guldbrand)
131 o Added support for static bounce addresses (Thomas Jarosch)
132 o Added a sanity check in mlmmj-receive-strip (Chris Webb)
133 o Added miscellaneous sanity checks (Thomas Jarosch)
134 o Disabled digest mails when 'noarchive' is set (Thomas Jarosch)
135 o Added Russian listtexts (Nikolay Derkach)
136 o Fixed mmap()ing of zero-sized files (Robin H. Johnson)
137 o Fixed mlmmj-recieve [sic] for architectures where
138 sizeof(int) and sizeof(char *) differ
139 o Added support for the 'originalmail' keyword (Sascha Sommer)
140 o Merged various changes to the web interface from Franky Van Liedekerke
141 1.2.15-RC1
142 o Added --enable-recieve-strip configure option (Ansgar Burchardt)
143 o Added unicode support to listtexts
144 o Fixed build outside the source directory (Ansgar Burchardt)
145 o Moved English listtexts and install all languages (Ansgar Burchardt)
146 o Fixed missing exit()s in case of failed execl() calls (Ansgar Burchardt)
147 o Changed Message-ID headers to include FQDN (Ansgar Burchardt)
148 o Added support for 'discard' keyword in access rules (Sascha Sommer)
149 1.2.14
150 o Updated Danish listtexts (Jesper Lund)
151 1.2.14-RC1
152 o Fixed a small memory leak in log_oper() log rotation
153 o Fixed address parsing for cases with quotes and multiple addresses
154 o Added contrib/recievestrip/ MIME processor (Sascha Sommer)
155 o Fixed digest multipart boundary (Thanks to Ulrich Mueller)
156 o Added support for mail size limit (Christoph Wilke)
157 o Log the result of access rules in the operation log (Henne Vogelsang)
158 o Ignore empty lines in control files
159 1.2.13
160 o Added Dutch listtexts (Raymond den Ouden)
161 1.2.13-RC1
162 o Added 'nonomailsub' tunable which will disable nomail subscriptions
163 to a list (Henne Vogelsang)
164 o Added 'nodigestsub' tunable which will disable subscription to the
165 digest version of a list (Henne Vogelsang)
166 o Added list FAQ feature (Henne Vogelsang)
167 o Added support for default list text directory (Henne Vogelsang)
168 o Fixed a Bourne Shell issue in mlmmj-make-ml.sh (Magnus Naeslund)
169 o Fixed hostnamestr() for hosts that can't find themselves using
170 gethostbyname() (Benoit Dolez)
171 o Add 'modnonsubposts' tunable that when set will moderate all posts
172 from non subscribers
173 o Fixed requeue for lists with noarchive enabled
174 1.2.12
175 o Fixed memory corruption in cleanquotedp()
176 o Fixed bug in gethdrline() introduced in 1.2.12-RC3
177 1.2.12-RC4
178 o Fixed memory leak in checkwait_smtpreply()
179 o Changed mlmmj-process to look at environment variable DEFAULT instead
180 of EXT for qmail (Fabio Busatto)
181 o Added Frensh listtext unsub-confirm-digest (Christophe Gallienne)
182 1.2.12-RC3
183 o Fixed EOF handling in checkwait_smtpreply()
184 o Fixed header unfolding in gethdrline()
185 1.2.12-RC2
186 o Changed German listtexts (Stefan Reinauer, Christian Lackas)
187 o Changed English listtexts (Stefan Reinauer)
188 o Changed chomp() to also remove CR from CRLF sequences
189 1.2.12-RC1
190 o Update web interface with new tunables
191 o Add support for qmail (envelope from address in environment variable)
192 o Add digest text part
193 o Add subscriber moderation
194 o Fix default subject in administrative mails
195 o Add French listtexts (Christophe Gallienne)
196 o Add search and pagination functionality to the perl-admin web interface
197 o Only add To: header when sending out actual list mail
198 o Close stdin, stdout and stderr in the child of mlmmj-receive after
199 forking. This is neccesary on FreeBSD.
200 o No need to check for subscribers in 0-sized files
201 o Make sure chomp works with empty strings (Frank Denis)
202 1.2.11
203 o Previous fix to find_email_adr() was incomplete, so in some
204 cases mails would get rejected due to the To: or Cc: rule. Thanks
205 again lcars for finding this
206 o Sanity check to make sure there's a '@' in listaddress
207 1.2.10
208 o Fix nasty bug in the new 1.2.9 find_email_adr() making comma in
209 quoted text in From: being discarded as invalid
210 o Simply make all addresses lowercase before doing anything else
211 wrt. sub/unsub and bounce
212 o Add czech listtexts (Lukas Hluze)
213 o Make non list emails (subconf, moderation etc.) also honor relayhost
214 and smtpport
215 o Add tunable to be able to close for subscription only (closedlistsub)
216 1.2.9
217 o Make find_email_adr() more robust (BSD, Neale Pickett)
218 o Make the email address check case-insensitive. (Neale Pickett)
219 o Add spanish listtext translations (Enrique Matías Sánchez)
220 o Make recipient delimiter configurable per list. SIC! (Joel Aelwyn)
221 o Added italian list texts translation. A thanks to Andrea Barisani, he has
222 checked italian texts. (Filippo F. Fadda)
223 o Use is_subbed_in instead of find_subscriber when subscribing people
224 (Christian Laursen)
225 o Make it possible to confirm subscription even though it's a closedlist.
226 It makes sense to be able to confirm a request submitted by the sysadmin
227 on the commandline
228 o Add 'subonlyget' tunable which makes +get-N only work for subscribers
229 1.2.8
230 o Don't closedir() before done (GOOD spotting Christian Laursen)
231 o Make sure the resend of queue files will not loop indefinately
232 o Make Date: header RFC2822 compliant (Jakob Hirsch)
233 o Add -s switch to mlmmj-{,un}sub to control whether or not to send a mail
234 telling about already subscribed, or not subscribed when trying to
235 subscribe or unsubscribe (Christian Laursen)
236 1.2.7
237 o Remove old superflous cruft in the smtpreply reader function, making
238 mlmmj-send not segfault in rare cases when SIGTERM was sent
239 o Another printf had snuck in there printing a free'ed variable
240 1.2.6.1
241 o Make sure the fromaddr is correct on sub-subscribed mails
242 o Don't add an empty subject if there was one present
243 1.2.6
244 o If prefix but no Subject: header is present, add one (Jakob Hirsch)
245 o Add notification mail when subbed people try to sub (Jakob Hirsch)
246 o Install SIGTERM handler in mlmmj-send to allow it to shut down gracefully
247 o Also remove mails when it's a bounce from a person not subbed
248 o Introduce read() wrapper (Stevens)
249 o Bouncing confirmation mails of sub or unsub should be cleaned from
250 the queue as well
251 o Normally mails which doesn't have exactly one From: emailaddress are
252 discarded but certain ISPs have bounce mails with no From: header, forcing
253 us to allow bounce mails with no From: to make sure they're caught
254 o In case of a succesful DSN parse, we werent deleting the mail, and thus
255 littering the queue
256 o When sending moderated mails, rename them so that they wont be moderated
257 again while sending
258 1.2.5
259 o Make listname+list send the list of regular subscribers to the owner who
260 requested it.
261 o Michael Fleming corrected some spelling / grammatical errors and made
262 occasional minor clarifications in the english list texts.
263 o Add README.sendmail from Andrea Barisani
264 o Add README.exim4 from Jakob Hirsch
265 o Skip addresses without a @ when sending
266 o Set SO_KEEPALIVE for our connection socket
267 1.2.4
268 o Spend some time making valgrind completely happy
269 o Unlink totally harmless .lock files in subscribers dir.
270 o Make it possible to specify more than one listaddress in
271 LISTDIR/control/listaddress. The first one is the "real" one.
272 o Make the port to connect to controlable with LISTDIR/control/smtpport
273 1.2.3
274 o Only allow subscription of addresses with '@' in them
275 o Fix return value from unsubscribe function
276 o Add extra lock layer when accessing subscribers files
277 o In case of listname+bounces-INDEX use the DSN (RFC1891) report to extract
278 the bouncing address
279 o Fix usage of a zero sized control/verp string
280 o Make the Date: header RFC2822 conformant
281 1.2.2
282 o Make mlmmj-send work allthough no subscribers exist
283 o Bring webinterfaces up to speed (Christian Laursen)
284 o Fix moderate tag in access
285 o Make mlmmj-make-ml.sh default the listtext dir to where they were
286 installed in the system (Stephan Kulow)
287 1.2.1
288 o Introduce switches to turn off mails about posts being denied.
289 1.2.0
290 o Remove debug info printing
291 1.2.0-RC2
292 o Fix uninitialized strlist
293 o Add logging regular operation to mlmmj.operation.log
294 o Fix the sending loop by not sending the rest of the batch in every
295 iteration
296 1.2.0-RC1
297 o Add VERP support. http://cr.yp.to/proto/verp.txt
298 For Postfix: http://www.postfix.org/VERP_README.html, add "postfix" to
299 LISTDIR/control/verp
300 $smtpd_authorized_verp_clients should be the only one needed to touch
301 1.1.1-RC2
302 o It's ok to log to a symbolic link to somewhere else
303 o Add Message-Id: and Date: headers to mail from mlmmj
304 o Make log_oper() varargs capable (Rob Holland)
305 1.1.1-RC1
306 o Never discard anything from LISTDIR/queue/, let the admin be able to judge
307 o Grab the lock when sending a mail to make sure noone does bad things
308 to it underneath us
309 o Danish listtexts, thanks Jesper Lund
310 o Add control/noget to turn off listname+get-INDEX
311 o Rearrange envelope from to be listname+bounces-index-user=domain.tld@ instead
312 of listname+bounces-user=domain.tld-index@ to prepare for VERP support
313 1.1.0
314 o If mlmmj-recieve was invoked with a uid not root or not the owner of listdir
315 inform about the uid actually invoked with
316 o Add German listtexts (Hendrik Norman Vogelsang)
317 o Add hooks for installing listtexts into $(pkgdatadir) (Drake Wyrm)
318 o Add mlmmj-list manual page
319 o Make mlmmj-list be capable of listing owners, moderators too
320 o Perl interface updates
321 1.1.0-RC3
322 o Add 'moderate' tag for usage in control/access when one wants to have the
323 moderators moderate posts hitting this regexp. See README.access
324 o Add a To: header with the recipient's address when sending digests
325 1.1.0-RC2
326 o Strip envelope from before resending to +owner
327 o Make statctrl bail if it's not possible to stat()
328 o Add mlmmj-list binary to list the subcribers (-count) of a list
329 1.1.0-RC1
330 o Rewrite the way listtexts are managed, and in the process move the Subject:
331 out into the listtext file making mlmmj completely translateable
332 o Enhance perl webinterface - including group writable patch
333 o Add option control/nosubconfirm which makes it possible to subscribe
334 without confirmation by just sending the mail. USE WITH CARE!
335 o Make files discarded by maintd end in .by-maintd to make them distinct
336 o Fix off-by-one error in the function cleaning quoted printable chars
337 o Close the correct fd's in mlmmj-process
338 o Be consistent when using To: or Delivered-To:
339 o mlmmj-unsub should also change user id to the listdir owner
340 o Add support for not archiving the list by touching listdir/control/noarchive
341 o Add 'nomail' version of lists. Subscribers to the nomail version are
342 subscribed, but does not get any mail
343 o Don't talk about changing uid in mlmmj-sub when we're not really doing it
344 o Add sanity checks to disallow denial mails going to the list
345 o Add digest functionality
346 o Implement -d option for mlmmj-maintd to be able to supply it with a directory
347 containing several listdirs, where mlmmj-maintd then will run maintenance
348 o Chown option and a fix for mlmmj-make-ml.sh. Thanks Ingo Lameter
349 1.0.0
350 o Replace index() with strchr()
351 o Add parenthesis around realloc call to make sure we alloc correctly
352 o Make header matching case insensitive
353 o Fix dumping of addresses to requeue
354 o Make the time an address can bounce before unsubscribed configurable with
355 listdir/control/bouncelife
356 o Correct mlmmj-make-ml.sh cronentry line to include -F
357 o Add manual pages. Thanks Soeren Boll for the initial ones
358 o Make random numbers lowercase hex since gmail is lowercasing the address
359 it replies to.
360 o Also make sanity check in mlmmj-maintd to ensure it's invoke either
361 as root or as listdir owner
362 1.0.0-RC4
363 o Fix brown paper bag bug not allowing enough space for the new better random
364 strings introduced in RC3 so subscribe and unsubscribe works again.
365 1.0.0-RC3
366 o NULL and 0 are not the same on 64-bit platforms, so fix execlp(..., 0); to
367 be execlp(..., NULL);
368 o Add web-interface (PHP). Thank you Christoph Thiel
369 o Have the random numbers be somewhat longer everywhere and not just somewhere
370 o Move free() to where it belongs fixing problems with mlmmj-process some
371 people have been seen
372 o Fix printing of cron entry in mlmmj-make-ml.sh
373 1.0.0-RC2
374 o Do not allow mails from <> going to the list
375 o Fix mailing to +owner again by adding missing 'break;' to switch in
376 mlmmj-send
377 o perl-admin updates from Christian Laursen
378 o php-user updates from Christoph Thiel
379 o Use Delivered-To: instead of To: when available
380 1.0.0-RC1
381 o Add web-interface. Thanks Christian Laursen for new perl-admin
382 o Dump the customheaders before any Mime headers
383 o Implement +get-N functionality, so it's possible to send a mail to
384 foolist+get-101@domain.tld to retrieve mail 101 from that list. It's
385 deliberately only possible to request one mail at a time.
386 o Make sure that only either root or the listdir owner can execute the
387 binaries when it has something to do with lists.
388 o Don't leave bounces-help@ mails lying around in queue/
389 o Remove unanchored ".*" from beginning of regexp
390 0.8.3
391 o Have mlmmj-make-ml.sh remind people about using cron if they want
392 o Replying to the confirmation address is enough to sub/unsub, no matter what
393 address is used the second time
394 o Fix possible DoS wrt. unsubscribing. Thank you Erik Toubro Nielsen
395 o Add 'notifysub' functionality to have owner know when people sub/unsub.
396 Thank you Kenneth Vestergaard Schmidt
397 o Use Return-Path: for envelope From. Thanks Anders Johansson
398 o Specification of which relayhost to use can now be done in control/relayhost
399 o Add configure check to link against libnsl if needed.
400 o Implement our own daemon() function since we don't have daemon() on Solaris
401 0.8.2
402 o Make sure we don't cut of the first char of an emailaddress
403 o Fix header value copying (thanks Anders Johansson)
404 o Don't segfault if there's no email address in the To: header
405 o Clean up the subconf and unsubconf directories for stale requests as well
406 0.8.1.1
407 o Fix bug with prepstdreply not opening correct file. Thanks Christian Laursen
408 for spotting.
409 0.8.1
410 o Go through all open() calls and retry in case we (allthough it's extremely
411 unlikely) did get EEXIST
412 o Add the option to add a To: header including the recipient emailaddress.
413 NOTE that this does not remove any existing To: headers, they should be
414 removed in control/delheaders
415 o Optimize mlmmj-send by preparing the mail in memory to reduce the amount of
416 write syscalls. control/memmailsize (size in bytes) controls how big it can
417 be. Default is 16k before it's send line by line.
418 o Make sure we check if the Subject: prefix might be present in the
419 de-quoted printable version of the Subject. If so, don't add it.
420 o Fix bug with queuefilename not being correctly initialized when generating
421 standard mails
422 o Let mlmmj-send be capable of handling relayhost local users bounce probes
423 bouncing.
424 o Don't litter the queuedirectory with files when rejecting mails (the
425 maintenance daemon would take care of it, but lets be nice)
426 0.8.0
427 o Added regular expression based access control.
428 o Added wrappers for malloc(), realloc(), free() and strdup(), so we can
429 bail out if any of them fail.
430 0.7.3
431 o Implement control/delheaders in where one can specify all the headers
432 to delete in incoming mail to the list.
433 o Add +owner functionality (control/owner). Several addresses possible.
434 o Relicense the whole thing to be MIT instead of GPL
435 0.7.2
436 o Make it possible to only let subscribers post
437 o Implement feature to deny posts where the listaddress is not in To: or
438 Cc:. Enabled pr. default, but can be disabled by touching control/tocc
439 o Make mlmmj-sub change uid to the owner of listdir to avoid permission
440 problems. Disable with -U to mlmmj-sub.
441 o More memory debugging
442 0.7.1
443 o Fix bug with .reciptto and .mailfrom getting swapped
444 o Plug a few small memory leaks in mlmmj-maintd
445 o Fix bug with maintenance logfile not being opened at the right spot
446 0.7.0
447 o Add a macro to make sure mlmmj binaries are invoked with full path
448 o Add the function to mlmmj-maintd to unsubscribe people who've been bouncing
449 for BOUNCELIFE (default 432000 sec, 5 days) time. This completes
450 the bouncehandling of mlmmj. SIC!
451 o Add logging to mlmmj-maintd. mlmmj-maintd.lastrun.log in the listdir
452 always has the log of the last run. This is work in progress.
453 o Make mlmmj-bounce capable of sending probes
454 o Include a function for easy generation of standard mail replies
455 0.6.0
456 o Add several unlinks. No need to litter queue/ with useless files
457 o Don't use moderation/queue for outgoing, just use queue/
458 o Christoph Thiel pointed out that listaddress and moderators belong in
459 control/ so move them there
460 o Get rid of all FILE * instances and replace them with fd's
461 o Also mmap the subscribers file when reading subcribers
462 o Do an mmap of the mail to send once, instead of reading the mail for
463 each mail to send
464 o Rip out the ability to fork to make more than one connection to relayhost.
465 It turned out to not make any performance gain (tested with lists with
466 more than 120000 subscribers), and thus only complicated things.
467 KISS won, so it's gone.
468 o mlmmj-maint now handles resends and cleanup
469 o Fixed interrupted fgets() in write_mailbody_from_file()
470 o Fixed leak of subfile in mlmmj-send
471 0.5.2
472 o footer and customheaders are now accessed from listdir/control/ where
473 they belong
474 o Discard mails that doesn't have one and only one From: address. Discard
475 here means moving them to queue/discard
476 o Make sure we retrieve info from all headers matching the token we want
477 o Fixed error handling in mlmmj-send if we can not open subscribers.d/
478 o Make mlmmj-send a lot more robust with SMTP and handle
479 bounces from the relayhost.
480 o Fix BUG in mlmmj-bounce still using listdir/subscribers
481 o Handle subconf/unsubconf bounces
482 o Begin work on mlmmj-maintd--the mlmmj maintenance daemon
483 o Make help consistent and up to date with all options
484 o Make mlmmj-send print the replies from the mailserver
485 o Send our hostname in the HELO instead of relayhost
486 o Implement requeueing mechanism to be able to resend mail when relayhost
487 trouble occur
488 0.5.1
489 o Add a file TUNABLES which documents the ways to tune mlmmj lists.
490 o Add support for Subject: prefix
491 o Added WAITTIME (time to sleep before checking if we should spawn another
492 mlmmj-send process) option in mlmmj.h
493 o Fixed error handling in mlmmj-unsub if we can not open subscribers.d/
494 0.5.0
495 o Use a subscribers.d/ directory for several subscribers files. mlmmj-send
496 will now fork for each file (up to MAX_CONNECTIONS) for faster delivery.
497 mlmmj-unsub will search for subscribers in all of these files.
498 mlmmj-sub will now add emailaddresses to the file in subscribers.d/ with
499 the name of the first character in the emailaddress (foo@bar.com will be
500 in subscribers.d/f).
501 o Major cleanup of listcontrol() and in the process add closed list
502 functionality (touch listdir/control/closedlist and it's closed)
503 0.4.0
504 o Add moderation functionality
505 0.3.4
506 o Fix handling of lines which start with a dot
507 0.3.3
508 o Add primitive bounce handling
509 o mlmmj-recieve now forks before exec()
510 o mlmmj-{,un}sub now uses mmap and friends for better performance
511 0.3.2
512 o Logging enhancement
513 o Send on the full path to the binaries around in the program since
514 execlp needs it.
515 o Make mlmmj-make-ml.sh use /bin/sh not /bin/bash
516 o Rename mlmmj-{subscribe,unsubscribe} to mlmmj-{sub,unsub}
517 o Cleanup and reimplementation of several functions that needed it badly
518 0.3.1
519 o Add BINDIR (mortenp)
520 o Fix retstruct->emaillist initialize (mortenp)
521 o Log handling adjustments (mortenp)
522 o Touch subscribers and index (mortenp)
523 0.3.0
524 o Footer addition. Make a file called /path/to/listname/footer and it will be
525 added to all mails.
526 o Implement the help function. Send a mail to listname+help to get help. Also
527 address used as From: address when sending sub/unsub mails
528 o Make find_subscriber more safe (mortenp)
529 o Completely use EXIT_macro (mortenp)
530 0.2.2
531 o Add proper checks for the execpl (mortenp)
532 o Use EXIT_ macros for exit (mortenp)
533 o Try /dev/urandom before /dev/random
534 o Make the random_int() function work without /dev/random, which is not
535 present on DEC-Unix/Tru64 (mortenp)
536 o Make -V print the version
537 0.2.1
538 o Make the From: header on sub/unsub mails be listname+help
539 o Double check the subscription address before adding.
540 o The From header should be generated according to archive in the list mails
541 for proper bounce handling
542 o Cannot specify both -c and -C to mlmmj-{unsub,sub}scribe
543 o Small bugfixes
544 0.2.0
545 o Implement subscription and unsubscription by email
546 o Remove the need for the -l switch by introducing a listaddress file in the
547 mailinglist directory
548 o Make use of a queue directory, and not move mails to the archive before they
549 are processed by mlmmj-send.
550 0.1.4
551 o Properly handle the replies from the mailserver on our requests. Still need
552 some kind of requeing mechanism though.
553 o Use automake and autoconf
554 o Use fcntl instead of flock
555 o Add a script to make the mailinglist directories - thanks hennebird
556 0.1.3
557 o Make it write \r\n for each \n.
558 o Convert everything possible to snprintf
559 o Make valgrind (http://developer.kde.org/~sewardj/) find no error, leaks
560 anything
561 0.1.2
562 o Made mlmmj-unsubscribe
563 o Made mlmmj-subscribe
564 o Fix the indexnumber in the From header. Was reversed.
565 0.1.1
566 o Custom headers. Add a file called 'customheaders' in the listdir
567 and it will be added. Should be used for Reply-To: if God forbid someone
568 wants to use that.
569 o Cleanup a bit
570 0.1.0
571 o Initial version working with archiving and not much else apart from the
572 same functionality as a list in /etc/aliases