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