"Fossies" - the Fresh Open Source Software Archive 
Member "mailman-2.1.39/NEWS" (13 Dec 2021, 212122 Bytes) of package /linux/misc/mailman-2.1.39.tgz:
As a special service "Fossies" has tried to format the requested text file into HTML format (style:
standard) with prefixed line numbers.
Alternatively you can here
view or
download the uninterpreted source code file.
See also the latest
Fossies "Diffs" side-by-side code changes report for "NEWS":
2.1.38_vs_2.1.39.
1 -*- coding: iso-8859-1 -*-
2 Mailman - The GNU Mailing List Management System
3 Copyright (C) 1998-2020 by the Free Software Foundation, Inc.
4 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
5
6 Here is a history of user visible changes to Mailman.
7
8 2.1.39 (13-Dec-2021)
9
10 Bug Fixes and other patches
11
12 - User matching for CSRF tokens is no longer case sensitive., and a
13 potential NamerError in logging is fixed. (LP: #1954694)
14
15 2.1.38 (30-Nov-2021)
16
17 Security
18
19 - A potential CSRF attack against a list admin from a list member or
20 moderator has been blocked. CVE-2021-44227 (LP: #1952384)
21
22 Bug Fixes and other patches
23
24 - NotAMemberError exception from the user options page when the user has
25 been asynchronously unsubscribed is fixed. (LP: #1951769)
26
27 2.1.37 (12-Nov-2021)
28
29 Bug Fixes and other patches
30
31 - A bug in the fix for CVE-2021-43332 has neen fixed. (LP: #1950833)
32
33 2.1.36 (12-Nov-2021)
34
35 Security
36
37 - A potential XSS attack via the user options page has been reported by
38 Harsh Jaiswal. This is fixed. CVE-2021-43331 (LP: #1949401)
39
40 - A potential for for a list moderator to carry out an off-line brute force
41 attack to obtain the list admin password has been reported by Andre
42 Protas, Richard Cloke and Andy Nuttall of Apple. This is fixed.
43 CVE-2021-43332 (LP: #1949403)
44
45 2.1.35 (19-Oct-2021)
46
47 Security
48
49 - A potential for for a list member to carry out an off-line brute force
50 attack to obtain the list admin password has been reported by Andre
51 Protas, Richard Cloke and Andy Nuttall of Apple. This is fixed.
52 CVE-2021-42096 (LP: #1947639)
53
54 - A CSRF attack via the user options page could allow takeover of a users
55 account. This is fixed. CVE-2021-42097 (LP: #1947640)
56
57 Bug Fixes and other patches
58
59 - Fixed an issue where sometimes the wrapper message for DMARC mitigation
60 Wrap Message has no Subject:. (LP: #1915655)
61
62 - Plain text message bodies with Content-Disposition: and no declared
63 charset are no longer scrubbed. (LP: #1917968)
64
65 - CommandRunner now recodes message bodies in the charset of the user's
66 or list's language to avoid a possible UnicodeError when including the
67 message body in the reply. (LP: #1921682)
68
69 - Delivery disabled by bounce notices to admins now have 'disabled'
70 properly translated. (LP: #1922843)
71
72 - DMARC policy discovery ignores domains with multiple DMARC records per
73 RFC 7849, (LP: 1931029)
74
75 2.1.34 (26-Jun-2020)
76
77 i18n
78
79 - The Spanish translation has been updated by Omar Walid Llorente.
80
81 Bug Fixes and other patches
82
83 - The fix for LP: #1859104 can result in ValueError being thrown on
84 attempts to subscribe to a list. This is fixed and extended to apply
85 REFUSE_SECOND_PENDING to unsubscription as well. (LP: #1878458)
86
87 - DMARC mitigation no longer misses if the domain name returned by DNS
88 contains upper case. (LP: #1881035)
89
90 - A new WARN_MEMBER_OF_SUBSCRIBE setting can be set to No to prevent
91 mailbombing of a member of a list with private rosters by repeated
92 subscribe attempts. (LP: #1883017)
93
94 - Very long filenames for scrubbed attachments are now truncated.
95 (LP: #1884456)
96
97 2.1.33 (07-May-2020)
98
99 Security
100
101 - A content injection vulnerability via the private login page has been
102 fixed. CVE-2020-15011 (LP: #1877379)
103
104 2.1.32 (05-May-2020)
105
106 i18n
107
108 Fixed a typo in the Spanish translation and updated mailman.pot and
109 the message catalog for 2.1.31 security fix.
110
111 2.1.31 (05-May-2020)
112
113 Security
114
115 - A content injection vulnerability via the options login page has been
116 discovered and reported by Vishal Singh. This is fixed. CVE-2020-12108
117 (LP: #1873722)
118
119 i18n
120
121 - The Spanish translation has been updated by Omar Walid Llorente.
122
123 Bug Fixes and other patches
124
125 - Bounce recognition for a non-compliant Yahoo format is added.
126
127 - Archiving workaround for non-ascii in string.lowercase in some Python
128 packages is added.
129
130 2.1.30 (13-Apr-2020)
131
132 New Features
133
134 - Thanks to Jim Popovitch, there is now a dmarc_moderation_addresses
135 list setting that can be used to apply dmarc_moderation_action to mail
136 From: addresses listed or matching listed regexps. This can be used
137 to modify mail to addresses that don't accept external mail From:
138 themselves.
139
140 - There is a new MAX_LISTNAME_LENGTH setting. The fix for LP: #1780874
141 obtains a list of the names of all the all the lists in the installation
142 in order to determine the maximum length of a legitimate list name. It
143 does this on every web access and on sites with a very large number of
144 lists, this can have performance implications. See the description in
145 Defaults.py for more information.
146
147 - Thanks to Ralf Jung there is now the ability to add text based captchas
148 (aka textchas) to the listinfo subscribe form. See the documentation
149 for the new CAPTCHA setting in Defaults.py for how to enable this. Also
150 note that if you have custom listinfo.html templates, you will have to
151 add a <mm-captcha-ui> tag to those templates to make this work. This
152 feature can be used in combination with or instead of the Google
153 reCAPTCHA feature added in 2.1.26.
154
155 - Thanks to Ralf Hildebrandt the web admin Membership Management section
156 now has a feature to sync the list's membership with a list of email
157 addresses as with the bin/sync_members command.
158
159 - There is a new drop_cc list attribute set from DEFAULT_DROP_CC. This
160 controls the dropping of addresses from the Cc: header in delivered
161 messages by the duplicate avoidance process. (LP: #1845751)
162
163 - There is a new REFUSE_SECOND_PENDING mm_cfg.py setting that will cause
164 a second request to subscribe to a list when there is already a pending
165 confirmation for that user. This can be set to Yes to prevent
166 mailbombing of a third party by repeatedly posting the subscribe form.
167 (LP: #1859104)
168
169 i18n
170
171 - The Japanese translation has been updated by Yasuhito FUTATSUKI.
172
173 - The German translation has been updated by Ludwig Reiter.
174
175 - The Spanish translation has been updated by Omar Walid Llorente.
176
177 - The Brazilian Portugese translation has been updated by Emerson de Mello.
178
179 Bug Fixes and other patches
180
181 - Fixed the confirm CGI to catch a rare TypeError on simultaneous
182 confirmations of the same token. (LP: #1785854)
183
184 - Scrubbed application/octet-stream MIME parts will now be given a
185 .bin extension instead of .obj. CVE-2020-12137 (LP: #1886117)
186
187 - Added bounce recognition for a non-compliant opensmtpd DSN with
188 Action: error. (LP: #1805137)
189
190 - Corrected and augmented some security log messages. (LP: #1810098)
191
192 - Implemented use of QRUNNER_SLEEP_TIME for bin/qrunner --runner=All.
193 (LP: #1818205)
194
195 - Leading/trailing spaces in provided email addresses for login to private
196 archives and the user options page are now ignored. (LP: #1818872)
197
198 - Fixed the spelling of the --no-restart option for mailmanctl.
199
200 - Fixed an issue where certain combinations of charset and invalid
201 characters in a list's description could produce a List-ID header
202 without angle brackets. (LP: #1831321)
203
204 - With the Postfix MTA and virtual domains, mappings for the site list
205 -bounces and -request addresses in each virtual domain are now added
206 to data/virtual-mailman (-owner was done in 2.1.24). (LP: #1831777)
207
208 - The paths.py module now extends sys.path with the result of
209 site.getsitepackages() if available. (LP: #1838866)
210
211 - A bug causing a UnicodeDecodeError in preparing to send the confirmation
212 request message to a new subscriber has been fixed. (LP: #1851442)
213
214 - The SimpleMatch heuristic bounce recognizer has been improved to not
215 return most invalid email addresses. (LP: #1859011)
216
217 2.1.29 (24-Jul-2018)
218
219 Bug Fixes
220
221 - Fixed the listinfo and admin overview pages that were broken by
222 LP: #1780874. (LP: #1783417)
223
224 2.1.28 (23-Jul-2018)
225
226 Security
227
228 - A content spoofing vulnerability with invalid list name messages in
229 the web UI has been fixed. CVE-2018-13796 (LP: #1780874)
230
231 New Features
232
233 - It is now possible to edit HTML and text templates via the web admin
234 UI in a supported language other than the list's preferred_language.
235 Thanks to Yasuhito FUTATSUKI.
236
237 i18n
238
239 - The Japanese translation has been updated by Yasuhito FUTATSUKI.
240
241 - The German translation has been updated by Ralf Hildebrandt.
242
243 - The Esperanto translation has been updated by Rubén Fernández Asensio.
244
245 Bug fixes and other patches
246
247 - The BLOCK_SPAMHAUS_LISTED_DBL_SUBSCRIBE feature added in 2.1.27 was
248 not working. This is fixed. (LP: #1779774)
249
250 - Escaping of HTML entities for the web UI is now done more selectively.
251 (LP: #1779445)
252
253 2.1.27 (22-Jun-2018)
254
255 Security
256
257 - Existing protections against malicious listowners injecting evil
258 scripts into listinfo pages have had a few more checks added.
259 JVN#00846677/JPCERT#97432283/CVE-2018-0618
260
261 - A few more error messages have had their values HTML escaped.
262 JVN#00846677/JPCERT#97432283/CVE-2018-0618
263
264 - The hash generated when SUBSCRIBE_FORM_SECRET is set could have been
265 the same as one generated at the same time for a different list and
266 IP address. While this is not thought to be exploitable in any way,
267 the generation has been changed to avoid this. Thanks to Ralf Jung.
268
269 New Features
270
271 - An option has been added to bin/add_members to issue invitations
272 instead of immediately adding members. (LP: #1773064)
273
274 - A new BLOCK_SPAMHAUS_LISTED_IP_SUBSCRIBE setting has been added to
275 enable blocking web subscribes from IPv4 addresses listed in Spamhaus
276 SBL, CSS or XBL. It will work with IPv6 addresses if Python's
277 py2-ipaddress module is installed. The module can be installed via pip
278 if not included in your Python.
279
280 - Thanks to Jim Popovitch, Mailman has a new 'security' log and logs
281 authentication failures to the various web CGI functions. The logged
282 data include the remote IP and can be used to automate blocking of IPs
283 with something like fail2ban. Since Mailman 2.1.14, these have returned
284 an http 401 status and the information should be logged by the web
285 server, but this new log makes that more convenient. Also, the
286 'mischief' log entries for 'hostile listname' noe include the remote IP
287 if available.
288
289 - Thanks to Jim Popovitch, admin notices of (un)subscribes now may give
290 the source of the action. This consists of a %(whence)s replacement
291 that has been added to the admin(un)subscribeack.txt templates. Thanks
292 to Yasuhito FUTATSUKI for updating the non-English templates and help
293 with internationalizing the reasons.
294
295 - Thanks to Jim Popovitch, there is a new
296 BLOCK_SPAMHAUS_LISTED_DBL_SUBSCRIBE setting to enable blocking web
297 subscribes for addresses in domains listed in the Spamhaus DBL.
298
299 i18n
300
301 - The Japanese translation has been updated by Yasuhito FUTATSUKI.
302
303 - The Russian translation has been updated by Danil Smirnov.
304
305 - A partial Esperanto translation has been added. Thanks to
306 Rubén Fernández Asensio.
307
308 - Fixed a '# -*- coding:' line in the Russian message catalog that was
309 mistakenly translated to Russian. (LP: #1777342)
310
311 Bug fixes and other patches
312
313 - Some messages from bin/arch were not issued in the charset of the system
314 locale when DISABLE_COMMAND_LOCALE_CSET is No. Thanks to Yasuhito
315 FUTATSUKI this is now fixed. (LP: #1768892)
316
317 - The message displayed in the browser when accessing a Mailman CGI when
318 mm_cfg.py can't be imported due to some exception other than ImportError
319 has been improved. (LP: #1760506)
320
321 - The reimplementation of DELIVERY_RETRY_WAIT in 2.1.26 could cause extra
322 dequeueing and requeueing in the out queue by OutgoingRunner. This is
323 fixed. (LP: #1762871)
324
325 - A Python 2.7 dependency introduced in the ToDigests handler in Mailman
326 2.1.24 has been removed. (LP: #1755317)
327
328 - Bad values in a list's topics will no longer break everything that
329 might instantiate the list. (LP: #1754516)
330
331 - A Python 2.7 dependency introduced with the reCAPTCHA feature in 2.1.26
332 has been removed. (LP: #1752658)
333
334 - The reCAPTCHA feature requires JavaScript. If JavaScript is not enabled,
335 a message will be displayed on the subscribe form that JavaScript is
336 required. (LP: #1769374)
337
338 - Quoting in the mailman-config command has been changed from double to
339 single quotes to allow double-quoted parameters. (LP: #1774986)
340
341 - Approving a held subscription for a user with a 'different' preferred
342 language no longer corrupts the results page. (LP: #1777222)
343
344 - An issue with garbled descriptions on listinfo and admin overview pages
345 and the heading of a list's listinfo page due to incompatible character
346 sets has been fixed thanks to Yasuhito FUTATSUKI.
347
348 Miscellaneous
349
350 - Added to the contrib directory, a script from Jim Popovitch to generate
351 Sitemap files for a list's archive.
352
353 2.1.26 (04-Feb-2018)
354
355 Security
356
357 - An XSS vulnerability in the user options CGI could allow a crafted URL
358 to execute arbitrary javascript in a user's browser. A related issue
359 could expose information on a user's options page without requiring
360 login. These are fixed. Thanks to Calum Hutton for the report.
361 CVE-2018-5950 (LP: #1747209)
362
363 New Features
364
365 - Thanks to David Siebörger who adapted an existing patch by Andrea
366 Veri to use Google reCAPTCHA v2 there is now the ability to add
367 reCAPTCHA to the listinfo subscribe form. There are two new mm_cfg.py
368 settings for RECAPTCHA_SITE_KEY and RECAPTCHA_SECRET_KEY, the values
369 for which you obtain for your domain(s) from Google at
370 <https://www.google.com/recaptcha/admin>.
371
372 - Thanks to Lindsay Haisley, there is a new bin/mailman-config command
373 to display various information about this Mailman version and how it
374 was configured.
375
376 i18n
377
378 - The Japanese message catalog has been updated for added strings by
379 Yasuhito FUTATSUKI.
380
381 - The German translation of a couple of templates has been updated by
382 Thomas Hochstein.
383
384 - The Japanese translation of Defaults.py.in has been updated by
385 Yasuhito FUTATSUKI.
386
387 Bug fixes and other patches
388
389 - Fixed an i18n bug in the reCAPTCHA feature. (LP: #1746189)
390
391 - Added a few more environment variables to the list of those passed
392 to CGIs to support an nginx/uwsgi configuration. (LP #1744739)
393
394 - Mailman 2.1.22 introduced a Python 2.7 dependency that could affect
395 bin/arch processing a message without a valid Date: header. The
396 dependency has been removed. (LP: #1740543)
397
398 - Messages held for header_filter_rules now show the matched regexp in
399 the hold reason. (LP: #1737371)
400
401 - When updating the group and mode of a .db file with Mailman's Postfix
402 integration, a missing file is ignored. (LP: #1734162)
403
404 - The DELIVERY_RETRY_WAIT setting is now effective. (LP: #1729472)
405
406 2.1.25 (26-Oct-2017)
407
408 New Features
409
410 - The admindb held subscriptions listing now includes the date of the
411 most recent request from the address. (LP: #1697097)
412
413 Accessibility
414
415 - The admin Membership List now includes text for screen readers which
416 identifies the function of each checkbox. CSS is added to the page to
417 visually hide the text but still allow screen readers to read it.
418 Similar text has been added to some radio buttons on the admindb pages.
419
420 i18n
421
422 - The Russian translation has been updated by Sergey Matveev.
423 (LP: #1708016)
424
425 Bug fixes and other patches
426
427 - Thanks to Jim Popovitch, certain failures in DNS lookups of DMARC policy
428 will now result in mitigations being applied. (LP: #1722013)
429
430 - The default DMARC reject reason now properly replaces %(listowner)s.
431 (LP: #1718962)
432
433 - The web roster page now shows case preserved email addresses.
434 (LP: #1707447)
435
436 - Changed the SETGID wrappers to only pass those items in the environment
437 that are needed by the called scripts. (LP: #1705736)
438
439 - Fixed MTA/Postfix.py to ensure that created aliases(.db) and
440 virtual-mailman(.db) files are readable by Postfix and the .db files are
441 owned by the Mailman user. (LP: #1696066)
442
443 - Defended against certain web attacks that cause exceptions and "we hit
444 a bug" responses when POST data or query fragments contain multiple
445 values for the same parameter. (LP: #1695667)
446
447 - The fix for LP: #1614841 caused a regression in the options CGI. This
448 has been fixed. (LP: #1602608)
449
450 - Added a -a option to the (e)grep commands in contrib/mmdsr to account
451 for logs that may have non-ascii and be seen as binary.
452
453 - Fixed the -V option to bin/list_lists to not show lists whose host is a
454 subdomain of the given domain. (LP: #1695610)
455
456 2.1.24 (02-Jun-2017)
457
458 Security
459
460 - A most likely unexploitable XSS attach that relies on the Mailman web
461 server passing a crafted Host: header to the CGI environment has been
462 fixed. Apache for one is not vulnerable. Thanks to Alqnas Eslam.
463
464 New Features
465
466 - There is a new RCPT_BASE64_HEADER_NAME setting. If this is set to a
467 non-empty string, that string is the name of a header that will be added
468 to personalized and VERPed deliveries with value equal to the base64
469 encoding of the recipient's email address. This is intended to enable
470 identification of the recipient otherwise redacted from "spam report"
471 feedback loop messages.
472
473 - cron/senddigests has a new -e/--exceptlist option to send pending
474 digests for all but a named list. (LP: #1619770)
475
476 - The values for DEFAULT_DIGEST_FOOTER and DEFAULT_MSG_FOOTER have been
477 changed to use a standard signature separator for DEFAULT_MSG_FOOTER
478 and to remove the unneded line of underscores from DEFAULT_DIGEST_FOOTER.
479 (LP: #266269)
480
481 i18n
482
483 - The Polish html templates have been recoded to use html entities
484 instead of non-ascii characters.
485
486 - The Basque (Euskara) translation has been updated by Gari Araolaza.
487
488 - The German "details for personalize" page has been updated by
489 Christian F Buser.
490
491 - The Japanese translation has been updated by Yasuhito FUTATSUKI.
492
493 Bug fixes and other patches
494
495 - The list-owner@virtual.domain addresses are now added to virtual-mailman
496 as they are exposed in 'list created' emails. (LP: #1694384)
497
498 - The 'list run by' addresses in web page footers are now just the
499 list-owner address. (LP: #1694384)
500
501 - Changed member_verbosity_threshold from a >= test to a strictly > test
502 to avoid the issue of moderating every post when the threshold = 1.
503 (LP: #1693366)
504
505 - Subject prefixing has been improved to always have a space between
506 the prefix and the subject even with non-ascii in the prefix. This
507 will sometimes result in two spaces when the prefix is non-ascii but
508 the subject is ascii, but this is the lesser evil. (LP: #1525954)
509
510 - Treat message and digest headers and footers as empty if they contain
511 only whitespace. (LP: #1673307)
512
513 - Ensured that added message and digest headers and footers always have
514 a terminating new-line. (LP: #1670033)
515
516 - Fixed an uncaught TypeError in the subscribe CGI. (LP: #1667215)
517
518 - Added recognition for a newly seen mailEnable bounce.
519
520 - Fixed an uncaught NotAMemberError when a member is removed before a
521 probe bounce for the member is returned. (LP: #1664729)
522
523 - Fixed a TypeError thrown in the roster CGI when called with a listname
524 containing a % character. (LP: #1661810)
525
526 - Fixed a NameError issue in bin/add_members with
527 DISABLE_COMMAND_LOCALE_CSET = yes. (LP: #1647450)
528
529 - The CleanseDKIM handler has been removed from OWNER_PIPELINE. It isn't
530 needed there and has adverse DMARC implications for messages to -owner
531 of an anonymous list. (LP: #1645901)
532
533 - Fixed an issue with properly RFC 2047 encoding the display name in the
534 From: header for messages with DMARC mitigations. (LP: #1643210)
535
536 - Fixed an issue causing UnicodeError in sending digests following a
537 change of a list's preferred_language. (LP: #1644356)
538
539 - Enhanced the fix for race conditions in MailList().Load(). (LP: #266464)
540
541 - Fixed a typo in Utils.py that could have resulted in a NameError in
542 logging an unlikely occurrence. (LP: #1637745)
543
544 - Fixed a bug which created incorrect "view more members" links at the
545 bottom of the admin Membership List pages. (LP: #1637061)
546
547 - The 2.1.23 fix for LP: #1604544 only fixed the letter links at the top
548 of the Membership List. The links at the bottom have now been fixed.
549
550 - paths.py now adds dist-packages as well as site-packages to sys.path.
551 (LP: #1621172)
552
553 - INIT INFO has been added to the sample init.d script. (LP: #1620121)
554
555 2.1.23 (27-Aug-2016)
556
557 Security
558
559 - CSRF protection has been extended to the user options page. This was
560 actually fixed by Tokio Kikuchi as part of the fix for LP: #775294 and
561 intended for Mailman 2.1.15, but that fix wasn't completely merged at the
562 time. The full fix also addresses the admindb, and edithtml pages as
563 well as the user options page and the previously fixed admin pages.
564 Thanks to Nishant Agarwala for reporting the issue. CVE-2016-6893
565 (LP: #1614841)
566
567 New Features
568
569 - For header_filter_rules matching, RFC 2047 encoded headers, non-encoded
570 headers and header_filter_rules patterns are now all decoded to unicode.
571 Both XML character references of the form &#nnnn; and unicode escapes
572 of the form \Uxxxx in patterns are converted to unicodes as well. Both
573 headers and patterns are normalized to 'NFKC' normal form before
574 matching, but the normalization form can be set via a new NORMALIZE_FORM
575 mm_cfg setting. Also, the web UI has been updated to encode characters
576 in text fields that are invalid in the character set of the page's
577 language as XML character references instead of '?'. This should help
578 with entering header_filter_rules patterns to match 'odd' characters.
579 This feature is experimental and is problematic for some cases where it
580 is desired to have a header_filter_rules pattern with characters not in
581 the character set of the list's preferred language. For patterns
582 without such characters, the only change in behavior should be because
583 of unicode normalization which should improve matching. For other
584 situations such as trying to match a Subject: with CJK characters (range
585 U+4E00..U+9FFF) on an English language (ascii) list, one can enter a
586 pattern like '^subject:.*[一-鿿]' or
587 '^subject:.*[\u4e00;-\u9fff;]' to match a Subject with any character in
588 the range, and it will work, but depending on the actual characters and
589 the browser, submitting another, even unrelated change can garble the
590 original entry although this usually occurs only with ascii pages and
591 characters in the range \u0080-\u00ff. The \Uxxxx unicode escapes must
592 have exactly 4 hex digits, but they are case insensitive. (LP: #558155)
593
594 - Thanks to Jim Popovitch REMOVE_DKIM_HEADERS can now be set to 3 to
595 preserve the original headers as X-Mailman-Original-... before removing
596 them.
597
598 - Several additional templates have been added to those that can be edited
599 via the web admin GUI. (LP: #1583387)
600
601 - SMTPDirect.py can now do SASL authentication and STARTTLS security when
602 connecting to the outgoiung MTA. Associated with this are new
603 Defaults.py/mm_cfg.py settings SMTP_AUTH, SMTP_USER, SMTP_PASSWD and
604 SMTP_USE_TLS. (LP: #558281)
605
606 - There is a new Defaults.py/mm_cfg.py setting SMTPLIB_DEBUG_LEVEL which
607 can be set to 1 to enable verbose smtplib debugging to Mailman's error
608 log to help with debugging 'low level smtp failures'. (LP: #1573074)
609
610 - A list's nonmember_rejection_notice attribute will now be the default
611 rejection reason for a held non-member post in addition to it's prior
612 role as the reson for an automatically rejected non-member post.
613 (LP: #1572330)
614
615 i18n
616
617 - The French translation of 'Dutch' is changed from 'Hollandais' to
618 'Néerlandais' per Francis Jorissen.
619
620 - Some German language templates that were incorrectly utf-8 encoded have
621 been recoded as iso-8859-1. (LP: #1602779)
622
623 - Japanese translation and documentation in messages/ja has been updated by
624 Yasuhito FUTATSUKI.
625
626 Bug fixes and other patches
627
628 - The admin Membership List letter links could be incorrectly rendered as
629 Unicode strings following a search. (LP: #1604544)
630
631 - We no longer throw an uncaught TypeError with certain defective crafted
632 POST requests to Mailman's CGIs. (LP: #1602608)
633
634 - Scrubber links in archives are now in the list's preferred_language
635 rather than the poster's language. (LP: #1586505)
636
637 - Improved logging of banned subscription and address change attempts.
638 (LP: #1582856)
639
640 - In rare circumstances a list can be removed while the admin or listinfo
641 CGI or bin/list_lists is running causing an uncaught MMUnknownListError
642 to be thrown. The exception is now caught and handled. (LP: #1582532)
643
644 - Set the Date: header in the wrapper message when from_is_list or
645 dmarc_moderation_action is Wrap Message. (LP: #1581215)
646
647 - A site can now set DMARC_ORGANIZATIONAL_DOMAIN_DATA_URL to None or the
648 null string if it wants to avoid using this. (LP: #1578450)
649
650 - The white space to the left of the admindb Logout link is no longer
651 part of the link. (LP: #1573623)
652
653 2.1.22 (17-Apr-2016)
654
655 i18n
656
657 - Fixed a typo in the German options.html template. (LP: #1562408)
658
659 - An error in the Brazilian Portugese translation of Quarterly has been
660 fixed thanks to Kleber A. Benatti.
661
662 - The Brazilian Portugese translation has been updated by Emerson Ribeiro
663 de Mello.
664
665 Bug fixes and other patches
666
667 - All addresses in data/virtual-mailman are now properly appended with
668 VIRTUAL_MAILMAN_LOCAL_DOMAIN and duplicates are not generated if the
669 site list is in a virtual domain. (LP: #1570630)
670
671 - DMARC mitigations will now find the From: domain to the right of the
672 rightmost '@' rather than the leftmost '@'. (LP: #1568445)
673
674 - DMARC mitigations for a sub-domain of an organizational domain will now
675 use the organizational domain's sp= policy if any. (LP: #1568398)
676
677 - Modified NewsRunner.py to ensure that messages gated to Usenet have a
678 non-blank Subject: header and when munging the Message-ID to add the
679 original to References: to help with threading. (LP: #557955)
680
681 - Fixed the pipermail archiver to do a better job of figuring the date of
682 a post when its Date: header is missing, unparseable or has an obviously
683 out of range date. This should only affect bin/arch as ArchRunner has
684 code to fix dates at least if ARCHIVER_CLOBBER_DATE_POLICY has not been
685 set to 0 in mm_cfg.py. If posts have been added in the past to a list's
686 archive using bin/arch and an imported mbox, running bin/arch again could
687 result is some of those posts being archived with a different date.
688 (LP: #1555798)
689
690 - Fixed an issue with CommandRunner shunting a malformed message with a
691 null byte in the body. (LP: #1553888)
692
693 - Don't collapse multipart with a single sub-part inside multipart/signed
694 parts. (LP: #1551075)
695
696 2.1.21 (28-Feb-2016)
697
698 New Features
699
700 - There is a new dmarc_none_moderation_action list setting and a
701 DEFAULT_DMARC_NONE_MODERATION_ACTION mm_cfg.py setting to optionally
702 apply Munge From or Wrap Message actions to posts From: domains that
703 publish DMARC p=none. The intent is to eliminate failure reports to
704 the domain owner for messages that would be munged or wrapped if the
705 domain published a stronger DMARC policy. See the descriptions in
706 Defaults.py, the web UI and the bug report for more. (LP: #1539384)
707
708 - Thanks to Jim Popovitch there is now a feature to automatically turn
709 on moderation for a malicious list member who attempts to flood a list
710 with spam. See the details for the Privacy options ... -> Sender
711 filters -> member_verbosity_threshold and member_verbosity_interval
712 settings in the web admin UI and the documentation in Defaults.py for
713 the DEFAULT_MEMBER_VERBOSITY_* and VERBOSE_CLEAN_LIMIT settings for
714 information.
715
716 - bin/list_members now has options to display all moderated or all
717 non-moderated members.
718
719 - There is now a mm_cfg.py setting GLOBAL_BAN_LIST which is like the
720 individual list's ban_list but applies globally to all subscribe
721 requests. See the description in Defaults.py for more details.
722
723 i18n
724
725 - The Japanese translation has been updated by Yasuhito FUTATSUKI.
726
727 - Also thanks to Miloslav Trmac and Yasuhito FUTATSUKI, the l10n for
728 Mailman's bin/ commands has been fixed to display using the character
729 set of the user's work station even when Mailman's character set for
730 the language is different. Because this has not been tested over a
731 wide set of locales, there is an mm_cfg.py switch
732 DISABLE_COMMAND_LOCALE_CSET to disable it if it causes problems.
733 (LP: #558167)
734
735 - The Polish translation has been updated by Stefan Plewako.
736
737 - The German translation has been updated by Mirian Margiani and
738 Bernhard Schmidt.
739
740 - The Russian translation has been updated by Danil Smirnov.
741
742 - Several Galician templates that were improperly encoded as iso-8859-1
743 have been fixed. (LP: #1532504)
744
745 - The Brazilian Portugese translation has been updated by Emerson Ribeiro
746 de Mello.
747
748 Bug fixes and other patches
749
750 - If DMARC lookup fails to find a policy, also try the Organizational
751 Domain. Associated with this is a new mm_cfg.py setting
752 DMARC_ORGANIZATIONAL_DOMAIN_DATA_URL which sets the URL used to
753 retrieve the data for the algorithm that computes the Organizational
754 Domain. See https://publicsuffix.org/list/ for info. (LP: #1549420)
755
756 - Modified contrib/mmdsr to correctly report No such list names that
757 contain ".
758
759 - User's "Acknowledge" option will now be honored for posts to anonymous
760 lists. (LP: #1546679)
761
762 - Fixed a typo in the Non-digest options regular_exclude_ignore
763 description thanks to Yasuhito FUTATSUKI.
764
765 - DEFAULT_PASS_MIME_TYPES has been changed to accept text/plain sub-parts
766 from message/rfc822 parts and multipart parts other than mixed and
767 alternative and also accept pgp signatures. This only applies to newly
768 created lists and other than pgp signatures, still only accepts
769 text/plain. (LP: #1517446)
770
771 - Modified contrib/mmdsr to report held and banned subscriptions and DMARC
772 lookups in their own categories.
773
774 - Fixed a bug that could create a garbled From: header with certain DMARC
775 mitigation actions. (LP: #1536816)
776
777 - Treat a poster's address which matches an equivalent_domains address as
778 a list member for the regular_exclude_ignore check. (LP: #1526550)
779
780 - Fixed an issue that sometimes left no white space following
781 subject_prefix. (LP: #1525954)
782
783 - Vette log entries for banned subscriptions now include the source of
784 the request if available. (LP: #1525733)
785
786 - Submitting the user options form for a user who was asynchronously
787 unsubscribed would throw an uncaught NotAMemberError. (LP: #1523273)
788
789 - It was possible under some circumstances for a message to be shunted
790 after a handler rejected or discarded it, and the handler would be
791 skipped upon unshunting and the message accepted. (LP: #1519062)
792
793 - Posts gated to usenet will no longer have other than the target group
794 in the Newsgroups: header. (LP: #1512866)
795
796 - Invalid regexps in *_these_nonmembers, subscribe_auto_approval and
797 ban_list are now logged. (LP: #1507241)
798
799 - Refactored the GetPattern list method to simplify extending @listname
800 syntax to new attributes in the future. Changed Moderate.py to use the
801 GetPattern method to process the *_these_nonmembers lists.
802
803 - Changed CookHeaders to default to using space rather than tab as
804 continuation_ws when folding headers. (LP: #1505878)
805
806 - Fixed the 'pidfile' path in the sample init.d script. (LP: #1503422)
807
808 - Subject prefixing could fail to collapse multiple 'Re:' in an incomming
809 message if they all came after the list's subject_prefix. This is now
810 fixed. (LP: #1496620)
811
812 - Defended against a user submitting URLs with query fragments or POST
813 data containing multiple occurrences of the same variable.
814 (LP: #1496632)
815
816 - Fixed bin/mailmanctl to check its effective rather than real uid.
817 (LP: #1491187)
818
819 - Fixed cron/gate_news to catch EOFError on opening the newsgroup.
820 (LP: #1486263)
821
822 - Fixed a bug where a delayed probe bounce can throw an AttributeError.
823 (LP: #1482940)
824
825 - If a list is not digestable an the user is not currently set to
826 receive digests, the digest options will not be shown on the user's
827 options page. (LP: #1476298)
828
829 - Improved identification of remote clients for logging and subscribe
830 form checking in cases where access is via a proxy server. Thanks to
831 Jim Popovitch. Also updated contrib/mmdsr for log change.
832
833 - Fixed an issue with shunted messages on a list where the charset for
834 the list's preferred_language had been changed from iso-8859-1 to
835 utf-8 without recoding the list's description. (LP: #1462755)
836
837 - Mailman-Postfix integration will now add mailman@domain entries in
838 data/virtual-mailman for each domain in POSTFIX_STYLE_VIRTUAL_DOMAINS
839 which is a host_name of a list. This is so the addresses which are
840 exposed on admin and listinfo overview pages of virtual domains will
841 be deliverable. (LP: #1459236)
842
843 - The vette log entry for DMARC policy hits now contains the list name.
844 (LP: #1450826)
845
846 - If SUBSCRIBE_FORM_SECRET is enabled and a user's network has a load
847 balancer or similar in use the POSTing IP might not exactly match the
848 GETting IP. This is now accounted for by not requiring the last
849 octet (16 bits for ipV6) to match. (LP: #1447445)
850
851 - DKIM-Signature:, DomainKey-Signature: and Authentication-Results:
852 headers are now removed by default from posts to anonymous lists.
853 (LP: #1444673)
854
855 - The list admin web UI Mambership List search function often doesn't
856 return correct results for search strings (regexps) that contain
857 non-ascii characters. This is partially fixed. (LP: #1442298)
858
859 2.1.20 (31-Mar-2015)
860
861 Security
862
863 - A path traversal vulnerability has been discovered and fixed. This
864 vulnerability is only exploitable by a local user on a Mailman server
865 where the suggested Exim transport, the Postfix postfix_to_mailman.py
866 transport or some other programmatic MTA delivery not using aliases
867 is employed. CVE-2015-2775 (LP: #1437145)
868
869 New Features
870
871 - There is a new Address Change sub-section in the web admin Membership
872 Management section to allow a list admin to change a list member's
873 address in one step rather than adding the new address, copying settings
874 and deleting the old address. (LP: #266809)
875
876 i18n
877
878 - The Russian translation has been updated by Danil Smirnov.
879
880 - The Polish translation has been updated by Stefan Plewako.
881
882 Bug fixes and other patches
883
884 - A LookupError in SpamDetect on a message with RFC 2047 encoded headers
885 in an unknown character set is fixed. (LP: #1427389)
886
887 - Fixed a bug in CommandRunner that could process the second word of a
888 body line as a command word and a case sensitivity in commands in
889 Subject: with an Re: prefix. (LP: #1426829)
890
891 - Fixed a bug in CommandRunner that threw an uncaught KeyError if
892 the input to the list-request address contained a command word
893 terminated by a period. (LP: #1426825)
894
895 2.2 Branch Backports (released in conjunction with 2.1.19)
896
897 The following New Features and Bug Fixes have been in an "unofficial,
898 never to be released" Mailman 2.2 branch for several years. Until now,
899 they were never implemented on the official 2.1 branch because of their
900 i18n impacts. Given that there have been a number of i18n impacting
901 changes due to DMARC mitigations in the last few releases, it has been
902 decided to backport these as well.
903
904 All of these changes have been running in production on several lists
905 for years without problems other than untranslated strings, so they should
906 be reasonably "bug free".
907
908 New Features
909
910 - There is a new list attribute 'subscribe_auto_approval' which is a list
911 of email addresses and regular expressions matching email addresses
912 whose subscriptions are exempt from admin approval. (LP: #266609)
913
914 - Confirmed member change of address is logged in the 'subscribe' log,
915 and if admin_notify_mchanges is true, a notice is sent to the list
916 owner using a new adminaddrchgack.txt template.
917
918 - Added an 'automate' option to bin/newlist to send the notice to the
919 admin without the prompt.
920
921 - The processing of Topics regular expressions has changed. Previously the
922 Topics regexp was compiled in verbose mode but not documented as such
923 which caused some confusion. Also, the documentation indicated that
924 topic keywords could be entered one per line, but these entries were not
925 handled properly. Topics regexps are now compiled in non-verbose mode
926 and multi-line entries are 'ored'. Existing Topics regexps will be
927 converted when the list is updated so they will continue to work.
928
929 - Added real name display to the web roster. (LP: #266754)
930
931
932 Bug fixes and other patches
933
934 - Changed the response to an invalid confirmation to be more generic.
935 Not all confirmations are subscription requests.
936
937 - Changed the default nonmember_rejection_notice to be more user friendly.
938 (LP: #418728)
939
940 - Added "If you are a list member" qualification to some messages from the
941 options login page. (LP: #266442)
942
943 - Changed the 'Approve' wording in the admindbdetails.html template to
944 'Accept/Approve' for better agreement with the button labels.
945
946 - Added '(by thread)' to the previous and next message links in the
947 archive to emphasize that even if you got to the message from a
948 subject, date or author index, previous and next are still by thread.
949
950 2.1.19 (28-Feb-2015)
951
952 New Features
953
954 - The subscribe_auto_approval feature backported from the 2.2 branch and
955 described above has been enhanced to accept entries of the form
956 @listname to auto approve members of another list. (LP: #1417093)
957
958 - There is a new list attribute dmarc_wrapped_message_text and a
959 DEFAULT_DMARC_WRAPPED_MESSAGE_TEXT setting to set the default for new
960 lists. This text is added to a message which is wrapped because of
961 dmarc_moderation_action in a separate text/plain part that precedes the
962 message/rfc822 part containing the original message. It can be used to
963 provide an explanation of why the message was wrapped or similar info.
964
965 - There is a new list attribute equivalent_domains and a
966 DEFAULT_EQUIVALENT_DOMAINS setting to set the default for new lists which
967 in turn defaults to the empty string. This provides a way to specify one
968 or more groups of domains, e.g., mac.com, me.com, icloud.com, which are
969 considered equivalent for validating list membership for posting and
970 moderation purposes.
971
972 - There is a new WEB_HEAD_ADD setting to specify text to be added to the
973 <HEAD> section of Mailman's internally generated web pages. This doesn't
974 apply to pages built from templates, but in those cases, custom templates
975 can be created. (LP: #1409396)
976
977 - There is a new DEFAULT_SUBSCRIBE_OR_INVITE setting. Set this to Yes
978 to make the default selection on the admin Mass Subscriptions page
979 Invite rather than Subscribe. (LP: #1404511)
980
981 - There is a new list attribute in the Bounce processing section.
982 bounce_notify_owner_on_bounce_increment if set to Yes will cause
983 Mailman to notify the list owner on every bounce that increments a
984 list member's score but doesn't result in a probe or disable. There
985 is a new configuration setting setting
986 DEFAULT_BOUNCE_NOTIFY_OWNER_ON_BOUNCE_INCREMENT to set the default
987 for new lists. This in turn defaults to No. (LP: #1382150)
988
989 Changed behavior
990
991 - Mailman's log files, request.pck files and heldmsg-* files are no
992 longer created world readable to protect against access by untrusted
993 local users. Note that permissions on existing log files won't be
994 changed so if you are concerned about this and don't rotate logs or
995 have a logrotate process that creates new log files instead of letting
996 Mailman create them, you will need to address that. (LP: #1327404)
997
998 Other changes
999
1000 - The Python Powered logo image has been replaced in the misc/ directory
1001 in the source distribution. Depending on how you've installed these
1002 images, you may need to copy PythonPowered.png from the misc/ directory
1003 in the source or from the $prefix/icons/ installed directory to another
1004 location for your web server. (LP: #1408575)
1005
1006 i18n
1007
1008 - The Polish translation has been updated by Stefan Plewako.
1009
1010 - The Interlingua translation has been updated by Martijn Dekker.
1011
1012 - The Japanese message catalog has been updated by SATOH Fumiyasu.
1013
1014 - Mailman's character set for Romanian has been changed from iso-8859-2
1015 to utf-8 and the templates and messages recoded. This change will
1016 require running 'bin/arch --wipe' on any existing Romanian language
1017 lists in order to recode the list's archives, and will require recoding
1018 any edited templates in lists/LISTNAME/ro/*, templates/DOMAIN/ro/* and
1019 templates/site/ro/*. It may also require recoding any existing
1020 iso-8859-2 text in list attributes. (LP: #1418735)
1021
1022 - Mailman's character set for Russian has been changed from koi8-r to
1023 utf-8 and the templates and messages recoded. This change will
1024 require running 'bin/arch --wipe' on any existing Russian language
1025 lists in order to recode the list's archives, and will require recoding
1026 any edited templates in lists/LISTNAME/ru/*, templates/DOMAIN/ru/* and
1027 templates/site/ru/*. It may also require recoding any existing koi8-r
1028 text in list attributes. (LP: #1418448)
1029
1030 - Mailman's versions.py has been augmented to help with the above two
1031 character set changes. The first time a list with preferred_language
1032 of Romanian or Russian is accessed or upon upgrade to this release,
1033 any list attributes which have string values such as description, info,
1034 welcome_msg, etc. that appear to be in the old character set will be
1035 converted to utf-8. This is done recursively for the values (but not
1036 the keys) of dictionary attributes and the elements of list and tuple
1037 attributes.
1038
1039 - The Russian message catalog and templates have been further updated by
1040 Danil Smirnov.
1041
1042 - The Romanian message catalog has been updated. (LP: #1415489)
1043
1044 - The Russian templates have been updated by Danil Smirnov. (LP: #1403462)
1045
1046 - The Japanese translation has been updated by SATOH Fumiyasu.
1047 (LP: #1402989)
1048
1049 - A minor change in the French translation of a listinfo subscribe form
1050 message has been made. (LP: #1331194)
1051
1052 Bug fixes and other patches
1053
1054 - Because of privacy concerns with the 2.2 backport adding real name to
1055 list rosters, this is controlled by a new ROSTER_DISPLAY_REALNAME
1056 setting that defaults to No. You may wish to set this to Yes in
1057 mm_cfg.py.
1058
1059 - Organization: headers are now unconditionally removed from posts to
1060 anonymous lists. Regexps in ANONYMOUS_LIST_KEEP_HEADERS weren't kept
1061 if the regexp included the trailing ':'. This is fixed too.
1062 (LP: #1419132)
1063
1064 - The admindb interface has been fixed so the the detail message body
1065 display doesn't lose part of a multi-byte character, and characters which
1066 are invalid in the message's charset are replaced rather than the whole
1067 body not being converted to the display charset. (LP: #1415406)
1068
1069 - Fixed a bug in bin/rmlist that would throw an exception or just fail to
1070 remove held message files for a list with regexp special characters in
1071 its name. (LP: #1414864)
1072
1073 - When applying DMARC mitigations, CookHeaders now adds the original From:
1074 to Cc: rather than Reply-To: in some cases to make MUA 'reply' and
1075 'reply all' more consistent with the non-DMARC cases. (LP: #1407098)
1076
1077 - The Subject: of the list welcome message wasn't always in the user's
1078 preferred language. Fixed. (LP: #1400988)
1079
1080 - Accept email command in Subject: prefixed with Re: or similar with no
1081 intervening space. (LP: #1400200)
1082
1083 - Fixed a UnicodeDecodeError that could occur in the web admin interface
1084 if 'text' valued attributes have unicode values. (LP: #1397170)
1085
1086 - We now catch the NotAMemberError exception thrown if an authenticated
1087 unsubscribe is submitted from the user options page for a nonmember.
1088 (LP: #1390653)
1089
1090 - Fixed an archiving bug that would cause messages with 'Subject: Re:'
1091 only to be indexed in the archives without a link to the message.
1092 (LP: #1388614)
1093
1094 - The vette log entry for a message discarded by a handler now includes
1095 the list name and the name of the handler. (LP: #558096)
1096
1097 - The options CGI now rejects all but HTTP GET and POST requests.
1098 (LP: #1372199)
1099
1100 - A list's poster password will now be accepted on an Urgent: header.
1101 (LP: #1371678)
1102
1103 - Fixed a bug which caused a setting of 2 for REMOVE_DKIM_HEADERS to be
1104 ignored. (LP: #1363278)
1105
1106 - Renamed messages/sr/readme.sr to README.sr. (LP: #1360616)
1107
1108 - Moved the dmarc_moderation_action checks from the Moderate handler to
1109 the SpamDetect handler so that the Reject and Discard actions will be
1110 done before the message might be held by header_filter_rules, and the
1111 Wrap Message and Munge From actions will be done on messages held by
1112 header_filter_rules if the message is approved. (LP: #1334450)
1113
1114 - <label> tags have been added around most check boxes and radio buttons
1115 and their text labels in the admin and admindb web GUI so they can be
1116 (de)selected by clicking the text. (LP: #266391)
1117
1118 - If checking DNS for dmarc_moderation_action and DNS lookup is not
1119 available, log it. (LP: #1324541)
1120
1121 - Handle missing From: header addresses for DMARC mitigation actions.
1122 (LP: #1318025)
1123
1124 2.1.18-1 (06-May-2014)
1125
1126 Bug fixes and other patches
1127
1128 - A critical incompatibility between the DMARC Wrap Message action and
1129 Python versions older than 2.6.x for some x <= 5 existed and caused
1130 Wrapped message to be shunted. This is fixed. (LP: #1316682)
1131
1132 - Sender: headers are no longer removed in from_is_list Munge From
1133 actions. (LP: #1315970)
1134
1135 2.1.18 (03-May-2014)
1136
1137 Acknowledgements
1138
1139 - Thanks to Jim Popovitch and Phil Pennock for the branch that formed the
1140 basis of the dmarc_moderation_action feature.
1141
1142 - Thanks to Franck Martin et al for the branch that formed the basis of
1143 the from_is_list feature.
1144
1145 Dependencies
1146
1147 - There is a new dependency associated with the new Privacy options ->
1148 Sender filters -> dmarc_moderation_action feature discussed below.
1149 This requires that the dnspython <http://www.dnspython.org/> package
1150 be available in Python. This package can be downloaded from the above
1151 site or from the CheeseShop <https://pypi.python.org/pypi/dnspython/>
1152 or installed with pip.
1153
1154 New Features
1155
1156 - The from_is_list feature introduced in 2.1.16 is now unconditionally
1157 available to list owners. There is also, a new Privacy options ->
1158 Sender filters -> dmarc_moderation_action feature which applies to list
1159 messages where the From: address is in a domain which publishes a DMARC
1160 policy of reject or possibly quarantine. This is a list setting with
1161 values of Accept, Wrap Message, Munge From, Reject or Discard. There is
1162 a new DEFAULT_DMARC_MODERATION_ACTION configuration setting to set the
1163 default for this, and the list admin UI is not able to set an action
1164 which is 'less' than the default. The prior ALLOW_FROM_IS_LIST setting
1165 has been removed and is effectively always Yes. There is a new
1166 dmarc_quarantine_moderation_action list setting with default set by a
1167 new DEFAULT_DMARC_QUARANTINE_MODERATION_ACTION configuration setting
1168 which in turn defaults to Yes. The list setting can be set to No to
1169 exclude domains with DMARC policy of quarantine from
1170 dmarc_moderation_action.
1171
1172 dmarc_moderation_action and from_is_list interact in the following way.
1173 If the message is From: a domain to which dmarc_moderation_action applies
1174 and if dmarc_moderation_action is other than Accept,
1175 dmarc_moderation_action applies to that message. Otherwise the
1176 from_is_list action applies.
1177
1178 Also associated with dmarc_moderation_action are configuration settings
1179 DMARC_RESOLVER_TIMEOUT and DMARC_RESOLVER_LIFETIME. These are described
1180 in more detail in Defaults.py. There are also new vette log entries
1181 written when dmarc_moderation_action is found to apply to a post.
1182
1183 i18n
1184
1185 - Added missing <mm-digest-question-start> tag to French listinfo template.
1186 (LP: #1275964)
1187
1188 Bug Fixes and other patches
1189
1190 - Removed HTML tags from the title of a couple of rmlist.py pages because
1191 browsers don't render tags in the title. (LP: #265848)
1192
1193 - Most Mailman generated notices to list owners and moderators are now
1194 sent as Precedence: list instead of bulk. (LP: #1313146)
1195
1196 - The Reply-To: munging options weren't honored if there was no
1197 from_is_list action. (LP: #1313010)
1198
1199 - Changed from_is_list actions to insert the list address in Cc: if the
1200 list is fully personalized. Otherwise, the list address is only in
1201 From: and Reply-To: overrides it. (LP: #1312970)
1202
1203 - Fixed the Munge From action to only Munge the From: and/or Reply-To: in
1204 the outgoing message and not in archives, digests and messages sent via
1205 the usenet gateway. (LP: #1311431)
1206
1207 - Fixed a long standing issue in which a notice sent to a user whose
1208 language is other than that of the list can cause subsequent things
1209 which should be in the list's language to be in the user's language
1210 instead. (LP: #1308655)
1211
1212 - Fixed the admin Membership List so a search string if any is not lost
1213 when visiting subsequent fragments of a chunked list. (LP: #1307454)
1214
1215 - For from_is_list feature, use email address from original From: if
1216 original From: has no display name and strip domain part from resultant
1217 names that look like email addresses. (LP: #1304511)
1218
1219 - Added the list name to the vette log "held message approved" entry.
1220 (LP: #1295875)
1221
1222 - Added the CGI module name to various "No such list" error log entries.
1223 (LP: #1295875)
1224
1225 - Modified contrib/mmdsr to report module name if present in "No such list
1226 error log entries.
1227
1228 - Fixed a NameError exception in cron/nightly_gzip when it tries to print
1229 the usage message. (LP: #1291038)
1230
1231 - Fixed a bug in ListAdmin._handlepost that would crash when trying to
1232 preserve a held message for the site admin if HOLD_MESSAGES_AS_PICKLES
1233 is False. (LP: #1282365)
1234
1235 - The from_is_list header munging feature introduced in Mailman 2.1.16 is
1236 no longer erroneously applied to Mailman generated notices.
1237 (LP: #1279667)
1238
1239 - Changed the message from the confirm CGI to not indicate approval is
1240 required for an acceptance of an invitation. (LP: #1277744)
1241
1242 - Fixed POSTFIX_STYLE_VIRTUAL_DOMAINS to be case-insensitiive.
1243 (LP: #1267003)
1244
1245 - Added recognition for another simple warning to bounce processing.
1246 (LP: #1263247)
1247
1248 - Fixed a few failing tests in tests/test_handlers.py. (LP: #1262950)
1249
1250 - Fixed bin/arch to not create scrubbed attachments for messages skipped
1251 when processing the --start= option. (LP: #1260883)
1252
1253 - Fixed email address validation to do a bit better in obscure cases.
1254 (LP: #1258703)
1255
1256 - Fixed a bug which caused some authentication cookies to expire too soon
1257 if AUTHENTICATION_COOKIE_LIFETIME is non-zero. (LP: #1257112)
1258
1259 - Fixed a possible TypeError in bin/sync_members introduced in 2.1.17.
1260 (LP: #1243343)
1261
1262 Miscellaneous
1263
1264 - Added to the contrib directory, a script from Alain Williams to count
1265 posts in a list's archive.
1266
1267 2.1.17 (23-Nov-2013)
1268
1269 New Features
1270
1271 - Handling of posts gated from usenet to a list via the Mail <-> News
1272 gateway is changed. Formerly, no list membership, moderation or
1273 *_these_nonmembers checks were done. Now, if the sender of the usenet
1274 post is a moderated member or a nonmember matching a *_these_nonmembers
1275 filter, those checks will be done and actions applied. Nonmember posts
1276 from senders not matching a *_these_nonmembers filter are still accepted
1277 as before. (LP: #1252575)
1278
1279 - There is a new mm_cfg.py setting ANONYMOUS_LIST_KEEP_HEADERS. Since it
1280 is not possible to know which non-standard headers in a message might
1281 reveal sender information, we now remove all headers from incoming posts
1282 to anonymous lists except those which match regular expressions in this
1283 list. The default setting keeps non X- headers except those known to
1284 reveal sender information, Mailman added X- headers and x-Spam- headers.
1285 See the description in Defaults.py for more information. (LP: #1246039)
1286
1287 i18n
1288
1289 - The Japanese message catalog has been updated by SATOH Fumiyasu.
1290 (LP: #1248855)
1291
1292 Bug Fixes and other patches
1293
1294 - Added a reopen command to the sample init.d script in misc/mailman.in.
1295 (LP: #1251917)
1296
1297 - Fixed a misspelling in Tagger.py causing an "unexpected keyword argument
1298 'Delete'" exception. (LP: #1251495)
1299
1300 - Fixed contrib/qmail-to-mailman.py to work with a user other than
1301 'mailman' and to recognize more listname-* addresses. (LP: #412293)
1302
1303 - Fixed a possible UnicodeDecodeError in bin/sync_members. (LP: #1243343)
1304
1305 - Fixed Makefile to not include $DESTDIR in paths compiled into .pyc
1306 files for traceback purposes. (LP: #1241770)
1307
1308 2.1.16 (16-Oct-2013)
1309
1310 New Features
1311
1312 - There is a new list attribute from_is_list to either rewrite the From:
1313 header of posts replacing the posters address with that of the list or
1314 wrap the message in an outer message From: the list for compatability
1315 with DMARC and or ADSP. There is a new mm_cfg.py setting
1316 DEFAULT_FROM_IS_LIST to control the default for new lists, and the
1317 existing REMOVE_DKIM_HEADERS setting has been extended to allow removing
1318 those headers only for certain from_is_list lists. This feature must
1319 be enabled by setting ALLOW_FROM_IS_LIST to Yes in mm_cfg.py. See the
1320 description of these settings in Defaults.py for more detail. This
1321 feature is experimental in 2.1.16, and it is subject to change or to
1322 become just one of the two methods in a subsequent release. People
1323 interested in this feature are encouraged to try it and report their
1324 experiences to the mailman-users@python.org list.
1325
1326 - There is a new DISPLAY_HELD_SUMMARY_SORT_BUTTONS setting which if set
1327 in mm_cfg.py will display a set of radio buttons in the admindb held
1328 message summary to select how the held messages are sorted and grouped
1329 for display. The exact setting determines the default grouping and
1330 sorting. See the description in Defaults.py for details.
1331
1332 - Setting digest_size_threshhold to zero now means no digests will be
1333 sent based on size instead of a digest being sent with every post.
1334 (LP: #558274)
1335
1336 - There is a new mm_cfg.py setting SUBSCRIBE_FORM_SECRET which will put
1337 a dynamically generated, hidden hash in the listinfo subscribe form and
1338 check it upon submission. Setting this will prevent automated processes
1339 (bots) from successfully POSTing web subscribes without first retrieving
1340 and parsing the form from the listinfo page. The form must also be
1341 submitted no later than FORM_LIFETIME nor no earlier than
1342 SUBSCRIBE_FORM_MIN_TIME after retrieval. Note that enabling this will
1343 break any static subscribe forms on your site. See the description in
1344 Defaults.py for more info. (LP: #1082746)
1345
1346 - add_members now has an option to add members with mail delivery disabled
1347 by admin. (LP: #1070574)
1348
1349 - IncomingRunner now logs rejected messages to the vette log.
1350 (LP: #1068837)
1351
1352 - The name of the mailmanctl master lock file is now congigurable via the
1353 mm_cfg.py setting MASTER_LOCK_FILE. (LP: #1082308)
1354
1355 - list_lists now has an option to list only lists with public archives.
1356 (LP: #1082711)
1357
1358 Contributed programs
1359
1360 - A new import_majordomo_into_mailman.pl script has been contributed by
1361 Geoff Mayes. (LP: #1129742)
1362
1363 - A new "sitemap" bash script has been contributed by Tomasz Chmielewski
1364 <mangoo@wpkg.org> to generate a sitemap.xml file of an installation's
1365 public archives for submission to search engines.
1366
1367 i18n
1368
1369 - The Danish translation has been updated thanks to Tom Christensen.
1370
1371 - Fixed a string in the Czech message catalog. (LP: #1234567)
1372
1373 - A Farsi (Persian) translation has been added thanks to Javad Hoseini and
1374 Mahyar Moghimi.
1375
1376 - Fixed several misspelled or garbled string replacements in the Spanish
1377 message catalog. (LP: #1160138)
1378
1379 - pt_BR message catalog has two new and an updated message per Hugo Koji
1380 Kobayashi. (LP: #1138578)
1381
1382 - German message catalog has been updated per Ralf Hildebrandt.
1383
1384 - Corrected typo in templates/it/private.html.
1385
1386 Bug Fixes and other patches
1387
1388 - Fixed a crash in SpamDetect.py which caused messages with unparseable
1389 RFC 2047 encoded headers to be shunted. (LP: #1235101)
1390
1391 - Fixed cron/disabled to send a fresh cookie when notifying disabled
1392 members. (LP: #1203200)
1393
1394 - Added "message_id" to the interpolation dictionary for the Article.html
1395 template. (LP: #725498)
1396
1397 - Changed the admin GUI to report only the bad entries in a list of email
1398 addresses if any are bad. (LP: #558253)
1399
1400 - Added logging for template errors in HyperArch.py. (LP: #558254)
1401
1402 - Added more explanation to the bad owner address message from
1403 bin/newlist. (LP: #1200763)
1404
1405 - Fixed a bug causing the admin web interface to fail CSRF checking if
1406 the list name contains a '+' character. (LP: #1190802)
1407
1408 - Fixed bin/mailmanctl -s to not remove the master lock if it can't be
1409 determined to be truly stale. (LP: #1189558)
1410
1411 - It is no longer possible to add 'invalid' addresses to the ban_list
1412 and the *_these_nonmembers filters from the check boxes on the admindb
1413 interface. (LP: #1187201)
1414
1415 - Backported recognition for mail.ru DSNs and minor bug fixes from
1416 lp:flufl.bounce. (LP: #1074592, LP: #1079249 and #1079254)
1417
1418 - Defended against buggy web servers that don't include an empty
1419 QUERY_STRING in the CGI environment. (LP: #1160647)
1420
1421 - The Switchboard.finish() method now logs the text of the exception when
1422 it fails to unlink/preserve a .bak file. (LP: #1165589)
1423
1424 - The pending (un)subscriptions waiting approval are now sorted by email
1425 address in the admindb interface as intended. (LP: #1164160)
1426
1427 - The subscribe log entry for a bin/add_members subscribe now identifies
1428 bin/add_members as the source. (LP: #1161642)
1429
1430 - Fixed a bug where the Subject: of the user notification of a
1431 bin/remove_members unsubscribe was not in the user's language.
1432 (LP: #1161445)
1433
1434 - Fixed a bug where BounceRunner could create and leave behind zero length
1435 bounce-events files. (LP: #1161610)
1436
1437 - Added recognition for another Yahoo bounce format. (LP: #1157961)
1438
1439 - Changed configure's method for getting Python's include directory from
1440 distutils.sysconfig.get_config_var('CONFINCLUDEPY') to
1441 distutils.sysconfig.get_python_inc(). (LP: #1098162)
1442
1443 - Added an Auto-Generated: header to password reminders. (LP: #558240)
1444
1445 - Fixed a bug where non-ascii characters in the real name in a subscription
1446 request could throw a UnicodeEncodeError upon subscription approval and
1447 perhaps in other situations too. (LP: #1047100)
1448
1449 - The query fragments send_unsub_notifications_to_list_owner and
1450 send_unsub_ack_to_this_batch will now assume default values if not set
1451 in mass unsubscribe URLs. (LP: #1032378)
1452
1453 - Replaced utf-8 encoded characters in newly added German templates with
1454 HTML entities. (LP: #1018208)
1455
1456 2.1.15 (13-Jun-2012)
1457
1458 Security
1459
1460 - Strengthened the validation of email addresses.
1461
1462 - An XSS vulnerability, CVE-2011-0707, has been fixed.
1463
1464 - The web admin interface has been hardened against CSRF attacks by adding
1465 a hidden, encrypted token with a time stamp to form submissions and not
1466 accepting authentication by cookie if the token is missing, invalid or
1467 older than the new mm_cfg.py setting FORM_LIFETIME which defaults to one
1468 hour. Posthumous thanks go to Tokio Kikuchi for this implementation
1469 which is only one of his many contributions to Mailman prior to his
1470 death from cancer on 14 January 2012.
1471
1472 New Features
1473
1474 - Added a password reminder button to the private archive login page.
1475 Backported from the 2.2 branch.
1476
1477 - There is a new list attribute regular_exclude_ignore set from mm_cfg.py
1478 DEFAULT_REGULAR_EXCLUDE_IGNORE. This defaults to True even though the
1479 prior behavior is equivalent to False. A True setting will ignore an
1480 exclude list if the poster is not a member of that list. The False
1481 setting can result in list members not receiving posts if the nonmember
1482 post is not accepted by the exclude list. Backported from 2.2 branch.
1483
1484 - Eliminated the list cache from the qrunners. Indirect self-references
1485 caused lists to never be dropped from the cache which in turn caused
1486 the qrunners to grow very large in installations with many lists or
1487 multiple large lists. Bug #862683.
1488
1489 - The user options 'list my other subscriptions' page now indicates for
1490 each list if the subscription is 'nomail' or 'digest'. Bug #793669.
1491
1492 - A new list poster password has been implemented. This password may only
1493 be used in Approved: or X-Approved: headers for pre-approving posts.
1494 Using this password for that purpose precludes compromise of a more
1495 valuable password sent in plain text email. Bug #770581.
1496
1497 - A new mm_cfg.py setting AUTHENTICATION_COOKIE_LIFETIME has been added.
1498 If this is set to a non-zero value, web authentication cookies will
1499 expire that many seconds following their last use. Its default value is
1500 zero to preserve current behavior.
1501
1502 - A new mm_cfg.py setting RESPONSE_INCLUDE_LEVEL has been added to control
1503 how much of the original message is included in automatic responses to
1504 email commands. The default is 2 to preserve the prior behavior of
1505 including the full message. Setting this to 1 in mm_cfg.py will include
1506 only the original headers, and 0 will include none of the original. It
1507 is recommended to set this to 0 in mm_cfg.py to minimize the effects of
1508 backscatter. Bug #265835.
1509
1510 - A new mm_cfg.py setting DEFAULT_RESPOND_TO_POST_REQUESTS has been added
1511 to control the default for respond_to_post_requests for new lists. It is
1512 set to Yes for backwards compatibility, but it is recommended that
1513 serious consideration be given to setting it to No. Bug #266051.
1514
1515 - A new mm_cfg.py setting DISCARD_MESSAGE_WITH_NO_COMMAND has been added to
1516 control whether a message to the -request address without any commands or
1517 a message to -confirm whose To: address doesn't match VERP_CONFIRM_REGEXP
1518 is responded to or just logged. It defaults to Yes which is different
1519 from prior behavior. Bug #410236.
1520
1521 - Two new mm_cfg.py settings, BROKEN_BROWSER_WORKAROUND and
1522 BROKEN_BROWSER_REPLACEMENTS, have been added to control escaping of
1523 additional characters beyond the standard <, >, &, and " in the web UI.
1524 See the documentation of these settings in Defaults.py. The default
1525 values for these settings result in no change from the prior release.
1526 Bug #774588.
1527
1528 i18n
1529
1530 - Added some missing German templates from Egon Frerich.
1531
1532 - Added Greek translation from Antonis Limperis.
1533
1534 - A few errors in the Basque translation are fixed. Bug #836861.
1535
1536 - Fixed a misspelling in the German invite.txt template. Bug #815444.
1537
1538 - Fixed a missing format character in the Spanish translation.
1539 Bug #670988.
1540
1541 - Thanks go to the following for updating translations for the changes in
1542 this release.
1543 Thijs Kinkhorst
1544 Stefan Förster
1545 Fabian Wenk
1546
1547 Bug Fixes and other patches
1548
1549 - Fixed a bug that could send an admin notice of a held subscription with
1550 the subject in the user's preferred language instead of the list's
1551 preferred language and possibly not properly RFC 2047 encoded.
1552 (LP: #998949)
1553
1554 - Fixed a possible CPU bound loop in OutgoingRunner if the attempt to
1555 Connect to the SMTP server throws a socket.error. (LP: #966531)
1556
1557 - Fixed a potential crash in the web UI if a language is removed from the
1558 LC_DESCRIPTIONS dictionary. (LP: #966565)
1559
1560 - Added an Auto-Submitted: header to invitations and (un)subscription
1561 confirmation requests to reduce the possibility of an autoresponder
1562 confirming the request. (LP: #265831)
1563
1564 - Added javascript to the private.html and admlogin.html templates to
1565 focus the cursor on the entry field. (LP: #266054)
1566
1567 - Added CPPFLAGS and LDFLAGS to src/Makefile to support their use.
1568 (LP: #637652)
1569
1570 - Stopped removing the trailing slash from the List-Archive: header URL.
1571 (LP: #964190)
1572
1573 - A configured version of contrib/courier-to-mailman.py is now created in
1574 build/contrib/courier-to-mailman.py. (LP: #999250)
1575
1576 - Subscription disabled warnings are now sent without a Precedence:
1577 header. Bug #808821.
1578
1579 - Backported 2.2 branch fix for a problem in SpamDetect.py that could
1580 cause header_filter_rules to fail to match RFC 2047 encoded headers.
1581
1582 - Fix for bug #629738 could cause a crash in the admindb details display
1583 if the decoded message body contained characters not in the character
1584 set of the list's preferred language. Fixed. Bug #910440.
1585
1586 - Added recognition for another Qmail bounce format.
1587
1588 - Fixed an erroneous seek in the Mailman.Mailbox.Mailbox.AppendMessage
1589 method that could cause a corrupt mailbox for files opened 'w+'.
1590 Bug #901957.
1591
1592 - A held message with a null sender caused a crash in the admindb
1593 interface. This is fixed by changing the sender to <missing>.
1594 Bug #897103.
1595
1596 - Changed subject prefixing to allow for possible whitespace between an
1597 'Re' and the following colon when determining how to add the prefix.
1598 Bug #893290.
1599
1600 - Fixed a problem where topics regexps would not match RFC 2047 encoded
1601 Keywords: and/or Subject: headers. Bug #891676.
1602
1603 - Fixed misleading response to an email approval of a held message.
1604 Bug #889968.
1605
1606 - Added masthead.txt to the list of templates that can be edited via the
1607 web admin interface. Bug #266805.
1608
1609 - Changed the way digest_footer is added to the RFC 1153 (plain) format
1610 digest for RFC compliance. Bug #887610.
1611
1612 - Fixed cron/checkdbs to report unsubscriptions waiting approval.
1613 Bug #873821.
1614
1615 - The fix for BUG #266220 (sf1181161) has been enhanced so that if there
1616 is a pathological HTML part such that the Approved: password text isn't
1617 found, but it is found after stripping out HTML tags, the post is
1618 rejected with an informative message.
1619
1620 - A bug that would cause reset of any new_member_options bits other than
1621 the four displayed as checkboxes on the list admin General Options page
1622 whenever the page was updated or bin/config_list attempted to update
1623 new_member_options has been fixed. Bug #865825.
1624
1625 - A problem with the logic avoiding unnecessarily reloading a current list
1626 object from the config.pck arises if the list is updated by another
1627 process within the same second that it was last read/written. That can
1628 cause the reading of latest version of the list to be skipped. This has
1629 been fixed. Bug #862675.
1630
1631 - Fixed bin/export.py to accept case insensitive password schemes.
1632 Bug #833134.
1633
1634 - Added Tokio Kikuchi's icons to the misc/ and installed icons/
1635 directories. Bug #782474.
1636
1637 - Fixed a problem which could result in raw, undecoded message bodies
1638 appearing in plain digests and archives. Bug #787790.
1639
1640 - Fixed a problem in admindb.py where the character set for the display of
1641 the message body excerpt was not correctly determined. Bug #779751.
1642
1643 - Prevented setting user passwords with leading/trailing whitespace.
1644 Bug #778088.
1645
1646 - Mailman now sets the 'secure' flag in cookies set via https URLs.
1647 Bug #770377.
1648
1649 - Added a logout link to the admindb interface and made both admin and
1650 admindb logout effective for a site admin cookie if allowed.
1651 Bug #769318.
1652
1653 - Replaced the old Mailman logos and icon that install to Mailman's icons
1654 directory with the new ones. If you copy these elsewhere on your
1655 server, please copy these new ones.
1656
1657 - Changed bin/genaliases to only call the POSTFIX_*_CMD commands once when
1658 MTA = 'Postfix'. Bug #266408.
1659
1660 - Added a report of the affected members to the warnings issued when
1661 setting a list with digest members digestable=No and when setting a list
1662 with non-digest members nondigestable=no. Bug #761232.
1663
1664 - Fixed a problem where content filtering could remove the headers from
1665 an attached message/rfc822 part if the message in that part is
1666 multipart/alternative and collapse_alternatives is Yes. Bug #757062.
1667
1668 - Changed the subscribe CGI to strip leading and trailing whitespace from
1669 the supplied email address. Bug #745432.
1670
1671 - Changed the maximum number of arguments for the who command to be
1672 considered administrivia from 2 to 1 to help avoid false positives.
1673 Bug #739524.
1674
1675 - Added the list name as 'display-name' in added Sender: headers to help
1676 mitigate Outlook et al 'on behalf of' displays. Bug #736849.
1677
1678 - Fixed a typo in the usage() definition cron/gate_news. Bug #721015.
1679
1680 - Fixed an uncaught KeyError when poster tries to cancel a post which was
1681 already handled. Bug #266224.
1682
1683 - Held message user notifications now come From: list-owner instead of
1684 list-bounces. Bug #714424.
1685
1686 - Issue an HTTP 404 status for private archive file not found.
1687
1688 - @listname entries in *_these_nonmembers are no longer case sensitive.
1689 Bug #705715.
1690
1691 - Changed bin/rmlist to also remove heldmsg files for the removed list and
1692 fixed a problem with removal of stale locks for the list. Bug #700528.
1693
1694 - Fixed a bug where content filtering could leave a multipart message or
1695 part with just one sub-part. These should be recast to just the sub-part.
1696 Bug #701558.
1697
1698 - Fixed a bug that could erroneously handle posts from addresses in
1699 *_these_nonmembers and send held/rejected notices to bogus addresses when
1700 The From or other sender header is RFC 2047 encoded. Bug #702516.
1701
1702 - Updated contrib/mm-handler-2.1.10 to better handle lists with names that
1703 look like admin addresses. Bug #697161.
1704
1705 - Added bounce recognition for a bogus Dovecot MDN. Bug #693134.
1706
1707 - Fixed a problem where an emailed command in the Subject: header with a
1708 non-ascii l10n of an 'Re:' prefix is ignored. Bug #685261.
1709
1710 - Fixed a problem with approving a post by email when the body of the
1711 approval mail is base64 encoded. Bug #677115.
1712
1713 - Fixed the host name in the From: address of the owner notification from
1714 bin/add_members. Bug #666181.
1715
1716 2.1.14 (20-Sep-2010)
1717
1718 Security
1719
1720 - Two potential XSS vulnerabilities have been identified and fixed.
1721
1722 New Features
1723
1724 - A new feature for controlling the addition/replacement of the Sender:
1725 header in outgoing mail has been implemented. This allows a list owner
1726 to set include_sender_header on the list's General Options page in the
1727 admin GUI. The default for this setting is Yes which preserves the prior
1728 behavior of removing any pre-existing Sender: and setting it to the
1729 list's -bounces address. Setting this to No stops Mailman from adding or
1730 modifying the Sender: at all.
1731
1732 Additionally, there is a new Defaults.py/mm_cfg.py setting
1733 ALLOW_SENDER_OVERRIDES which defaults to Yes but which can be set to No
1734 to remove the include_sender_header setting from General Options, and
1735 thus preserve the prior behavior completely.
1736
1737 - Bounce processing has been enhanced so that if a bounce is returned to a
1738 list from a non-member who is a member of a regular_include_list, the
1739 bounce will be processed as a bounce for the included list.
1740
1741 i18n
1742
1743 - Fixed a missing format character in the German bin/mailmanctl docstring.
1744
1745 - Updated Dutch translation from Jan Veuger.
1746
1747 - Updated Japanese Translation from Tokio Kikuchi.
1748
1749 - Updated Finnish translation from Joni Töyrylä.
1750
1751 - Made a few corrections to some Polish templates. Bug #566731.
1752
1753 - Made a minor change to the Chinese (China) message catalog. Bug #545772.
1754
1755 - Changed a few DOCTYPE directives in templates for compliance.
1756 Bug #500952 and Bug #500955.
1757
1758 Bug Fixes and other patches
1759
1760 - Made minor wording improvements and typo corrections in some messages.
1761 Bug #426979.
1762
1763 - Fixed i18n._() to catch exceptions due to bad formats. Bug #632660.
1764
1765 - Fixed admindb interface to decode base64 and quoted-printable encoded
1766 message body excerpts for display. Bug #629738.
1767
1768 - Fixed web CGI tracebacks to properly report sys.path. Bug #615114.
1769
1770 - Changed the member options login page unsubscribe request to include the
1771 requesters IP address in the confirmation request. Bug #610527.
1772
1773 - Changed fix_url to lock the list if not locked. Bug #610364.
1774
1775 - Made a minor change to the English subscribeack.txt (welcome message)
1776 template to emphasize that a password is only required to unsubscribe
1777 *without confirmation*.
1778
1779 - Fixed an issue in admindb that could result in a KeyError and "we hit a
1780 bug" response when a moderator acts on a post that had been handled by
1781 someone else after the first moderator had retrieved it. Bug #598671.
1782
1783 - Fixed a bug which would fail to show a list on the admin and listinfo
1784 overview pages if its web_page_url contained a :port. Bug # 597741.
1785
1786 - Fixed bin/genaliases to not throw TypeError when MTA = None.
1787 Bug #587657.
1788
1789 - Provided the ability to specify in mm_cfg.py a local domain (e.g.
1790 'localhost') for the local addresses in the generated virtual-mailman
1791 when MTA = 'Postfix'. See VIRTUAL_MAILMAN_LOCAL_DOMAIN in Defaults.py.
1792 Bug #328907.
1793
1794 - Made a minor change to the removal of an Approved: pseudo-header from
1795 a text/html alternative to allow for an inserted '\xA0' before the
1796 password.
1797
1798 - Fixed Content Filtering collapse_alternatives to work on deeply nested
1799 multipart/alternative parts. Bug #576675.
1800
1801 - We now accept/remove X-Approved: and X-Approve: headers in addition to
1802 Approved: and Approve: for pre-approving posts. Bug #557750.
1803
1804 - Reordered the 'cancel' and 'subscribe' buttons on the subscription
1805 confirmation web page so the default action upon 'enter' will be the
1806 subscribe button in browsers that pick the first button. Bug #530654.
1807
1808 - Fixed a bug in the admindb interface that could apply a moderator
1809 action to a message not displayed. Bug #533468.
1810
1811 - Added a traceback to the log message produced when processing the
1812 digest.mbox throws an exception.
1813
1814 - Added a urlhost argument to the MailList.MailList.Create() method to
1815 allow bin/newlist and the the create CGI to pass urlhost so the host
1816 will be correct in the listinfo link on the emptyarchive page.
1817 Bug #529100.
1818
1819 - Added the List-Post header to the default list of headers retained in
1820 messages in the MIME digest. Bug #526143.
1821
1822 - When daemonizing mailmanctl, we now ensure terminal files are closed.
1823
1824 - Fixed a bug in pipermail archiving that caused fallback threading by
1825 subject to fail. Bug #266572.
1826
1827 - We now give an HTTP 401 status for authentication failures from admin,
1828 admindb, private, options and roster CGIs, and an HTTP 404 status from
1829 all the CGIs for an invalid list name.
1830
1831 - Backported the listinfo template change from the 2.2 branch to fix
1832 Bug #514050.
1833
1834 - Fixed a bug where going to an archives/private/list.mbox/list.mbox URL
1835 would result in a munged URL if authentication was required. Bug #266164.
1836
1837 - Fixed a bug where check_perms would throw an OSError if an entry in
1838 Mailman's lists/ directory was not a directory. Bug #265613.
1839
1840 - Fixed a bug where a message with an Approved: header held by a handler
1841 that precedes Approve (SpamDetect by default) would not have the
1842 Approved: header removed if the held message was approved. Bug #501739.
1843
1844 2.1.13 (22-Dec-2009)
1845
1846 i18n
1847
1848 - Updated Dutch message catalog from Jan Veuger.
1849
1850 - Added Asturian translation from Marcos Costales and the Asturian
1851 Language Team.
1852
1853 Bug Fixes and other patches
1854
1855 - Added "white-space: pre-wrap" style for <pre> tag in archives.
1856 Bug #266467.
1857
1858 - Added vette logging for rejected and discarded (un)subscribe requests.
1859
1860 - Fixed a bug in admindb.py that could erroneously discard an unsubscribe
1861 request as a duplicate.
1862
1863 - Decoded RFC 2047 encoded message subjects for a few reports.
1864 Bug #266428.
1865
1866 - Fixed the French, Spanish and Hebrew translations which improperly
1867 translated the 'coding:' line in bin/config_list output.
1868
1869 - Fixed the auto-responder to treat messages to -confirm, -join, -leave,
1870 -subscribe and -unsubscribe as requests rather than posts. Bug #427962.
1871
1872 - Configure/make no longer builds Japanese and Korean codecs in
1873 pythonlib if Python already has them.
1874
1875 - Inadvertently setting a null site or list password allowed access
1876 to a list's web admin interface without authentication. Fixed by
1877 not accepting null passwords.
1878
1879 - Changed VERP_CONFIRM_REGEXP in Defaults.py to work if the replying
1880 MUA folds the To: header and in cases where the list name includes '+'.
1881
1882 - Fixed some paths in contrib/check_perms_grsecurity.py. Bug #411192.
1883
1884 - Replies to commands sent to list-request now come From: list-owner
1885 instead of list-bounces.
1886
1887 - Mailman no longer folds long sub-part headers in multipart messages.
1888 In addition, Mailman no longer escapes From_ lines in the body of
1889 messages sent to regular list members, although MTA's may do it anyway.
1890 This is to avoid breaking signatures per Bug #265967.
1891
1892 - XSS protection in the web interface went too far in escaping HTML
1893 entities. Fixed.
1894
1895 - Removed or anonymized additional headers in posts to anonymous lists.
1896
1897 - Fixed a bug that could cause incorrect threading of replies to archived
1898 messages that arrive with timestamps in the same second.
1899
1900 - Scrubbed HTML attachments containing tab characters would get the tabs
1901 replaced by a string of ' ' without a semicolon. Fixed.
1902
1903 - Caught a TypeError in content filtering, collapse alternatives that
1904 occurred with a malformed message if a multipart/alternative part
1905 wasn't multi-part. Reported in comments to bug #266230.
1906
1907 - Fixed a few things in bin/update:
1908 - Changed some old messages for more current meaning.
1909 - Fixed qfiles update to not lose metadata from 2.1.5+ format entries.
1910 - Fixed 2.0.x template migration to not die if the templates/ tree
1911 contains subdirectories from a version control system.
1912
1913 - Fixed a bug that would show a list on the admin and listinfo overview
1914 pages if its web_page_url host contained the current host as a
1915 substring. Bug #342162.
1916
1917 - Fixed a bug in Utils.canonstr() that would throw a UnicodeDecodeError
1918 if the string contained an HTML entity > 255 and also characters in the
1919 128-255 range. Bug #341594.
1920
1921 - Added recognition for more bounces.
1922
1923 - Updated contrib/mmdsr to report preserved messages and to use mktemp to
1924 create temp files.
1925
1926 2.1.12 (23-Feb-2009)
1927
1928 Bug fixes and other patches
1929
1930 - Fix compatibility with Python 2.6.
1931
1932 - Fixed a bug in admin.py which would result in chunked pages of the
1933 membership list for members whose address begins with a non-alphanumeric
1934 character to not be visible or retrievable.
1935
1936 - Changed ListAdmin.py to make rejected post messages From: the -owner
1937 address instead of the -bounces address.
1938
1939 - With MTA = 'Postfix', if the STANZA END for a list being removed is
1940 missing or munged, the remainder of the aliases and/or virtual-mailman
1941 file is lost. Fixed.
1942
1943 - Since Mailman 2.1.1, 2.0.x outstanding subscription and held message
1944 requests have not been migrated properly. This is fixed.
1945 Bug #266106 (sf998384).
1946
1947 - Changed cron/gate_news to continue processing the remaining lists on
1948 certain errors that can be caused by configuration of a particular list.
1949 Bug #265941 (sf775100).
1950
1951 - Fixed a bug in AvoidDuplicates.py that caused it to fail if the address
1952 in the To: or Cc: header differed in case from the case-preserved member
1953 address. Bug #297795.
1954
1955 - Fixed a problem in SecurityManager that caused it to not find the
1956 cookie when CheckCookie was not given a user and the user in the cookie
1957 had a %xx encoded character. Bug # 299220.
1958
1959 - Fixed a minor fromusenet reporting issue in the contributed mmdsr
1960 script.
1961
1962 - Fixed a minor issue in cron/gate_news that could cause a list's
1963 watermark to not be completely updated.
1964
1965 - Fixed an issue that prevented editing the options.html template from
1966 the web admin interface. SF Bug #2164798.
1967
1968 - Fixed a problem in Decorate which could throw a TypeError on conversion
1969 to unicode of a header/footer that was already unicode because of
1970 interpolating a unicode value.
1971
1972 - Fixed an issue where list creation would report bad owner email
1973 instead of bad listname when the list name had non-ascii characters.
1974 SF Bug #2126489.
1975
1976 - Fixed an issue where in some circumstances HyperArch.py would translate
1977 ' at ' into the wrong language ultimately throwing a UnicodeDecodeError
1978 when the translation was decoded with a different character set.
1979 Bug #308152.
1980
1981 - Corrected a typo in Mailman/Gui/Privacy.py. Bug #309757.
1982
1983 - Changed the pattern used to recognize URLs in messages for the pipermail
1984 archive in order to try to do a better job of making hyperlinks.
1985 Bug #310124.
1986
1987 - Added missing --bare option to French translation of list_lists help.
1988 Bug #312119.
1989
1990 - Fixed a long standing error that stopped relative hrefs from being
1991 generated for links on Mailman's web pages.
1992
1993 - Changed the admindb interface so that when messages are rejected from
1994 the summary page, the reject reason is the rejection message from the
1995 Errors.HoldMessage subclass instead of the generic "No reason given".
1996
1997 - Fixed the admin Membership List Find member function so the 'letter'
1998 links to a chunked result would still be limited to the Find member
1999 search. SF patch #1532081.
2000
2001 - Changed scripts/driver to return a 405 status for non GET, POST, HEAD
2002 methods. SF patch #1578756.
2003
2004 - Fixed a bug in admindb.py in the implementation of replacing "No Reason
2005 Given" with the default rejection reason. Bug #325016.
2006
2007 - Changed Gui/Topics.py to validate regexps in VERBOSE mode. Bug #327008.
2008
2009 - Worked around a potential problem in HyperArch.py with unicode character
2010 set arguments. Bug #328353.
2011
2012 - Recognize a couple more bounces.
2013
2014 - Fixed a bug introduced in 2.1.11 which would attempt to store bounce info
2015 for a member just deleted if bounce_you_are_disabled_warnings is zero.
2016
2017 i18n
2018
2019 - Updated Dutch, Catalan and Polish translations.
2020
2021 Miscellaneous
2022
2023 - Added Lindsay Haisley's courier_to_mailman.py to the contrib directory.
2024
2025 - Added John Dennis' (RedHat) FHS patch to the contrib directory.
2026
2027 2.1.11 (30-Jun-2008)
2028
2029 New Features
2030
2031 - Added a new cron/cull_bad_shunt script to cull and optionally
2032 archive old entries from the bad and shunt queues. This is controlled
2033 by new Defaults.py/mm_cfg.py settings BAD_SHUNT_STALE_AFTER (default
2034 7 days) and BAD_SHUNT_ARCHIVE_DIRECTORY (default None) which determine
2035 how long to keep bad and shunt queue entries and optionally, where to
2036 archive removed entries.
2037
2038 - Prepended list name to bounce log unrecognized bounce messages.
2039
2040 - Added a new Defaults.py|mm_cfg.py setting ACCEPTABLE_LISTNAME_CHARACTERS
2041 with default value '[-+_.=a-z0-9]'. This Python regular expression
2042 character class specifies the characters allowed in list names. The
2043 motivation for this is the fact that previously, a list named, e.g.,
2044 xxx&yyy could be created and MTA aliases generated that would cause
2045 The MTA to execute yyy as a command. There is a possible security issue
2046 here, but it is not believed to be exploitable in any meaningful way.
2047
2048 Bug fixes and other patches
2049
2050 - Changed the preservation of unparseable messages to be conditional on
2051 the Defaults.py/mm_cfg.py setting of QRUNNER_SAVE_BAD_MESSAGES and
2052 changed the queue directory in which messages are preserved from 'shunt'
2053 to 'bad'.
2054
2055 - Fixed a bug introduced in 2.1.10 that caused some email subscribe
2056 requests to be shunted (1966837).
2057
2058 - Fixed a problem with bin/update erroneously moving templates from
2059 templates/xx to lists/xx if a list has the same name as a language
2060 code. Also fixed the absolute path to lists/ (1418670 ).
2061
2062 - Changed Utils.ValidateEmail to not allow specials (particularly ':')
2063 in unquoted local parts (1956393).
2064
2065 - Changed bin/update to remove .bak files erroneously left behind in
2066 qfiles/*/ by a 2.1.9 bug.
2067
2068 - Added 's' to %(listname) in templates/ia/admlogin.html and
2069 templates/sl/help.txt (1682990).
2070
2071 - Use newer template variable for site-owner address in
2072 templates/ko/newlist.txt and templates/ru/newlist.txt (1578766).
2073
2074 - Corrections to Spanish translation submitted by Wikimedia Foundation
2075 (1433262) and Debian.
2076
2077 - Corrections to German translation submitted by Ralf Doeblitz (916196).
2078
2079 - Correction to French translation submitted by Maxime Carron (1588617).
2080
2081 - Correction to Portuguese translation submitted by Gabriel P. Silva
2082 (1733057).
2083
2084 - Add #! line to fblast.py test script (1578740).
2085
2086 - Fixed unescaped '%' in templates/nl/newlist.txt (1719017).
2087
2088 - Changed non-ascii characters in some templates/*/*.html files to HTML
2089 entities.
2090
2091 - Fixed a problem in Decorate.py that could result in a multipart
2092 message with no part headers for the original body part (1991348).
2093
2094 - Improved recognition of some bounce messages.
2095
2096 - Rearranged calls to the list setBounceInfo() method in Bouncer.py
2097 to accommodate MemberAdaptors that store bounce info outside the
2098 list instance.
2099
2100 - Fixed CookHeaders.py which in some cases with new style prefixing
2101 would insert an extra space between the prefix and the subject.
2102
2103 - Changed OldStyleMemberships.py to remove the member from one_last_digest
2104 when changing from regular to digest delivery to avoid the possibility
2105 of a duplicate digest in some circumstances.
2106
2107 - Patched Danish message catalog for proper use of HTML entities per
2108 Jonas Smedegaard (1999966).
2109
2110 - Improved bounce loop detection and handling in BounceRunner.py.
2111
2112 - Merged the Catalan i18n from the Mailman Catalan Translation Team.
2113
2114 - German translation updated by Peer Heinlein.
2115
2116 - Added check for gateway_to_news before holding for ModeratedNewsgroup.
2117
2118 - At some point, cron/senddigests and bin/update were inadvertently
2119 'preconfigured'. This has been fixed.
2120
2121 - Brazilian Portuguese translation updated by Diego Francisco
2122 de Gastal Morales.
2123
2124 - Added 'listname' to the replacements for the archidxfoot.html template.
2125
2126 Miscellaneous
2127
2128 - Brad Knowles' mailman daily status report script updated to 0.0.18.
2129
2130 2.1.10 (21-Apr-2008)
2131
2132 Security
2133
2134 - The 2.1.9 fixes for CVE-2006-3636 were not complete. In particular,
2135 some potential cross-site scripting attacks were not detected in
2136 editing templates and updating the list's info attribute via the web
2137 admin interface. This has been assigned CVE-2008-0564 and has been
2138 fixed. Thanks again to Moritz Naumann for assistance with this.
2139
2140 - There is a new mm_cfg.py/Defaults.py variable
2141 OWNERS_CAN_CHANGE_MEMBER_PASSWORDS which controls whether the list
2142 owner can change a member's password from the member's options page.
2143 This defaults to No and should be changed to Yes only if list owners
2144 are trusted to not change a member's password, log in as the member
2145 and make global membership changes.
2146
2147 New Features
2148
2149 - Changed cmd_who.py to list all members if authorization is with the
2150 list's admin or moderator password and to accept the password if the
2151 roster is public. Also changed the web roster to show hidden members
2152 when authorization is by site or list's admin or moderator password
2153 (1587651).
2154
2155 - Added the ability to put a list name in accept_these_nonmembers
2156 to accept posts from members of that list (1220144).
2157
2158 - Added a new 'sibling list' feature to exclude members of another list
2159 from receiving a post from this list if the other list is in the To: or
2160 Cc: of the post or to include members of the other list if that list is
2161 not in the To: or Cc: of the post (Patch ID 1347962).
2162
2163 - Added the admin_member_chunksize attribute to the admin General Options
2164 interface (Bug 1072002, Partial RFE 782436).
2165
2166 Internationalization
2167
2168 - Added the Hebrew translation from Dov Zamir. This includes addition of
2169 a direction ('ltr', 'rtl') to the LC_DESCRIPTIONS table. The
2170 add_language() function defaults direction to 'ltr' to not break
2171 existing mm_cfg.py files.
2172
2173 - Added the Slovak translation from Martin Matuska.
2174
2175 - Added the Galician translation from Frco. Javier Rial Rodríguez.
2176
2177 Bug fixes and other patches
2178
2179 - Added bounce recognition for several additional bounce formats.
2180
2181 - Fixed CommandRunner.py to decode a quoted-printable or base64 encoded
2182 message part (1829061).
2183
2184 - Fixed Scrubber.py to avoid loss of an implicit text/plain message part
2185 with no Content-* headers in a MIME multipart message (759841). Fixed
2186 several other minor scrubber issues (1242450).
2187
2188 - Added Date and Message-ID headers to the confirm reply message that
2189 Mailman adds to the admin notification (1471318).
2190
2191 - Fixed Cgi/options.py to not present the "empty" topic to user.
2192
2193 - Fixed Handlers/CalcRecips.py to not process topics if topics are
2194 disabled for the list. This caused users who had previously subscribed
2195 to topics and elected to not receive non-matching posts to receive no
2196 messages after topics were disabled for the list.
2197
2198 - Fixed MaildirRunner.py to handle hyphenated list names.
2199
2200 - Fixed a bug in MimeDel.py (content filtering) which caused
2201 *_filename_extensions to not match if the extension in the message was
2202 not all lower case.
2203
2204 - Fixed versions.py to not call a non-existant method when converting held
2205 posts from Mailman 1.0.x lists.
2206
2207 - Added a test to configure to detect a missing python-devel package on
2208 some RedHat systems.
2209
2210 - Fixed bin/dumpdb to once again be able to dump marshals (broken since
2211 2.1.5) (963137).
2212
2213 - Worked around a bug in the Python email library that could cause Mailman
2214 to not get the correct value for the sender of a message from an RFC
2215 2231 encoded header causing spurious held messages.
2216
2217 - Fixed bin/check_perms to detect certain missing permissions on the
2218 archives/private/ and archives/private/<list>/database/ directories.
2219
2220 - Improved exception handling in cron/senddigests.
2221
2222 - Changed the admindb page to not show the "Discard all messages marked
2223 Defer" checkbox when there are only (un)subscribes and no held messages.
2224 Also added a separator and heading for "Held Messages" like the ones for
2225 "Subscribe Requests" and "Unsubscribe Requests". Suppressed the
2226 "Database Updated" message when coming from the login page. Also
2227 removed the "Discard all messages marked Defer" checkbox from the
2228 details page where it didn't work (1562922, 1000699).
2229
2230 - Fixed admin.py so null VARHELP category is handled (1573393).
2231
2232 - Fixed OldStyleMemberships.py to preserve delivery statuses BYADMIN
2233 and BYUSER on a straight change of address (1642388). Also fixed a
2234 bug that could result in a member key with uppercase in the domain.
2235
2236 - Fixed bin/withlist so that -r can take a full package path to a
2237 callable.
2238
2239 - Removal of DomainKey/DKIM signatures is now controlled by Defaults.py
2240 mm_cfg.py variable REMOVE_DKIM_HEADERS (default = No). Also, if
2241 REMOVE_DKIM_HEADERS = Yes, an Authentication-Results: header will be
2242 removed if present.
2243
2244 - The DeprecationWarning issued by Python 2.5 regarding string exceptions
2245 is supressed.
2246
2247 - format=flowed and delsp=yes are now preserved for message bodies when
2248 message headers/footers are added and attachments are scrubbed
2249 (1495122).
2250
2251 - Queue runner processing is improved to log and preserve for analysis in
2252 the shunt queue certain bad queue entries that were previously logged
2253 but lost. Also, entries are preserved when an attempt to shunt throws
2254 an exception (1656289).
2255
2256 - The admin Membership List pages have been changed in that the email
2257 address which forms a part of the various CGI data keys is now
2258 urllib.quote()ed. This allows changing options for and unsubbing an
2259 address which contains a double-quote character, but it may require
2260 changes to scripts that screen-scrape the web admin interface to
2261 produce a membership list so they will report an unquoted address.
2262
2263 - The fix for bug 1181161 in 2.1.7 was incomplete. The Approve(d): line
2264 wasn't always found in quoted-printable encoded parts and was never
2265 found in base64 encoded parts. This is now fixed.
2266
2267 - Fixed a mail loop if a list owner puts the list's -bounces or -admin
2268 address in the list's owner attribute (1834569).
2269
2270 - Fixed the mailto: link in archived messages to prefix the subject with
2271 Re: and to put the correct message-id in In-Reply-To (1621278, 1834281).
2272
2273 - Coerced list name arguments to lower case in the change_pw, inject,
2274 list_admins and list_owners command line tools (patch 1842412).
2275
2276 - Fixed cron/disabled to test if bounce info is stale before disabling
2277 a member when the threshold has been reduced.
2278
2279 - It wasn't noted here, but in 2.1.9, queue runner processing was made
2280 more robust by making backups of queue entries when they were dequeued
2281 so they could be recovered in the event of a system failure. This
2282 opened the possibility that if a message itself caused a runner to
2283 crash, a loop could result that would endlessly reprocess the message.
2284 This has now been fixed by adding a dequeue count to the entry and
2285 moving the entry aside and logging the fact after the third dequeue of
2286 the same entry.
2287
2288 - Fixed the command line scripts add_members, sync_members and
2289 clone_member to properly handle banned addresses (1904737).
2290
2291 - Fixed bin/newlist to add the list's preferred language to the list's
2292 available_languages if it is other than the server's default language
2293 (1906368).
2294
2295 - Changed the first URL in the RFC 2369 List-Unsubscribe: header to go
2296 to the options login page instead of the listinfo page.
2297
2298 - Changed the options login page to not issue the "No address given" error
2299 when coming from the List-Unsubscribe and other direct links. Also
2300 changed to remember the user's language selection when redisplaying the
2301 page following an error.
2302
2303 - Changed cmd_subscribe.py to properly accept (no)digest without a
2304 password and to recognize (no)digest and address= case insensitively.
2305
2306 - Fixed a problem where GuiBase._getValidValue() would truncate a
2307 floating point Number type to an int if the value was a float instead
2308 of a numeric string. This affected setting floating point values with
2309 config_list.
2310
2311 Miscellaneous
2312
2313 - Brad Knowles' mailman daily status report script updated to 0.0.17.
2314
2315 - An updated mm-handler (mm-handler-2.1.10) that can help reduce
2316 backscatter has been added to the contrib directory.
2317
2318 2.1.9 (12-Sep-2006)
2319
2320 Security
2321
2322 - A malicious user could visit a specially crafted URI and inject an
2323 apparent log message into Mailman's error log which might induce an
2324 unsuspecting administrator to visit a phishing site. This has been
2325 blocked. Thanks to Moritz Naumann for its discovery.
2326
2327 - Fixed denial of service attack which can be caused by some
2328 standards-breaking RFC 2231 formatted headers. CVE-2006-2941.
2329
2330 - Several cross-site scripting issues have been fixed. Thanks to Moritz
2331 Naumann for their discovery. CVE-2006-3636
2332
2333 - Fixed an unexploitable format string vulnerability. Discovery and fix
2334 by Karl Chen. Analysis of non-exploitability by Martin 'Joey' Schulze.
2335 Also thanks go to Lionel Elie Mamane. CVE-2006-2191.
2336
2337 Internationalization
2338
2339 - New languages: Arabic, Vietnamese.
2340
2341 Bug fixes and other patches
2342
2343 - Fixed Decorate.py so that characters in message header/footer which
2344 are not in the character set of the list's language are ignored rather
2345 than causing shunted messages (1507248).
2346
2347 - Switchboard.py - Closed very tiny holes at the upper ends of queue
2348 slices that could result in unprocessable queue entries. Improved FIFO
2349 processing when two queue entries have the same timestamp.
2350
2351 2.1.8 (15-Apr-2006)
2352
2353 Security
2354
2355 - A cross-site scripting hole in the private archive script of 2.1.7
2356 has been closed. Thanks to Moritz Naumann for its discovery.
2357
2358 Bug fixes and other patches
2359
2360 - Bouncers support added: 'unknown user', Microsoft SMTPSVC, Prodigy.net
2361 and several others.
2362
2363 - Updated email library to 2.5.7 which will encode payload into qp/base64
2364 upon setting. This enabled backing out the scrubber related patches
2365 including 'X-Mailman-Scrubbed' header in 2.1.7.
2366
2367 - Fix SpamDetect.py potential hold/reject loop problem.
2368
2369 - A warning message from email package to the stderr can cause error
2370 in Logging because stderr may be detached from the process during
2371 the qrunner run. We chose not to output errors to stderr but to
2372 the logs/error if the process is running under mailmanctl subprocess.
2373
2374 - DKIM header cleansing was separated from Cleanse.py and added to
2375 -owner messages too.
2376
2377 - Fixes: Lose Topics when go directly to topics URL (1194419).
2378 UnicodeError running bin/arch (1395683). edithtml.py missing import
2379 (1400128). Bad escape in cleanarch. Wrong timezone in list archive
2380 index pages (1433673). bin/arch fails with TypeError (1430236).
2381 Subscription fails with some Language combinations (1435722).
2382 Postfix delayed notification not recognized (863989). 2.1.7 (VERP)
2383 mistakes delay notice for bounce (1421285). show_qfiles: 'str'
2384 object has no attribute 'as_string' (1444447). Utils.get_domain()
2385 wrong if VIRTUAL_HOST_OVERVIEW off (1275856).
2386
2387 Miscellaneous
2388
2389 - Brad Knowles' mailman daily status report script updated to 0.0.16.
2390
2391 2.1.7 (31-Dec-2005)
2392
2393 Security
2394
2395 - The fix for CAN-2005-0202 has been enhanced to issue an appropriate
2396 message instead of just quietly dropping ./ and ../ from URLs.
2397
2398 - A note on CVE-2005-3573: Although the RFC2231 bug example in the CVE has
2399 been solved in Mailman 2.1.6, there may be more cases where
2400 ToDigest.send_digests() can block regular delivery. We put the
2401 send_digests() calling part in a try/except clause and leave a message
2402 in the error log if something happened in send_digests(). Daily call of
2403 cron/senddigests will provide more detail to the site administrator.
2404
2405 - List administrators can no longer change the user's option/subscription
2406 globally. Site admin can change these only if
2407 mm_cfg.ALLOW_SITE_ADMIN_COOKIES is set to Yes.
2408
2409 - <script> tags are HTML-escaped in the edithtml CGI script.
2410
2411 - Since the probe message for disabled users may reach unintended
2412 recipients, the password is excluded from sendProbe() and probe.txt.
2413 Note that the default value of VERP_PROBE has been set to `No' from
2414 2.1.6., thus this change doesn't affect the default behavior.
2415
2416 New Features
2417
2418 - Always remove DomainKey (and similar) headers from messages sent to the
2419 list. (1287546)
2420
2421 - List owners can control the content filter behavior when collapsing
2422 multipart/alternative parts to its first subpart. This allows the
2423 option of letting the HTML part pass through after other content
2424 filtering is done.
2425
2426 Internationalization
2427
2428 - New language: Interlingua.
2429
2430 Bug fixes and other patches
2431
2432 - Defaults.py.in: SCRUBBER_DONT_USE_ATTACHMENT_FILENAME is set to True for
2433 safer operation.
2434
2435 - Fixed the bug where Scrubber.py munges quoted-printable by introducing
2436 the 'X-Mailman-Scrubbed' header which marks that the payload is
2437 scrubber-munged. The flag is referenced in ToDigest.py, ToArchive.py,
2438 Decorate.py and Archiver. A similar problem in ToDigest.py where the
2439 plain digest is generated is also fixed.
2440
2441 - Fixed Syslog.py to write quopri encoded messages when it fail to write
2442 8-bit characters.
2443
2444 - Fixed MTA/Postfix.py to check aliases group permission in check_perms
2445 and fixed mailman-install document on this matter (1378270).
2446
2447 - Fixed private.py to go to the original URL after authorization
2448 (1080943).
2449
2450 - Fixed bounce log score messages to be more consistent.
2451
2452 - Fixed bin/remove_members to accept no arguments when both --fromall and
2453 --file= options are specified.
2454
2455 - Changed cgi-bin and mail wrapper "group not found" error message to be
2456 more descriptive of the actual problem.
2457
2458 - The list's ban_list now applies to address changes, admin mass
2459 subscribes and invites, and to confirmations/approvals of address
2460 changes, subscriptions and invitations.
2461
2462 - quoted-printable and base64 encoded parts are decoded before passing to
2463 HTML_TO_PLAIN_TEXT_COMMAND (1367783).
2464
2465 - Approve: header is removed from posts, and treated the same as the
2466 Approved: header. (1355707)
2467
2468 - Fixed the removal of the line following Approve[d]: line in body of
2469 post. (1318883)
2470
2471 - The Approve[d]: <password> header is removed from all text/* parts in
2472 addition the initial text/plain part. It must still be the first
2473 non-blank line in the first text/plain part or it won't be found or
2474 removed at all. (1181161)
2475
2476 - Posts are now logged in post log file with the true sender, not
2477 listname-bounces. (1287921)
2478
2479 - Correctly initialize and remember the list's default_member_moderation
2480 attribute in the web list creation page. (1263213)
2481
2482 - PEP263 charset is added to the config_list output. (1343100)
2483
2484 - Fixed header_filter_rules getting lost if accessed directly and
2485 authentication was needed by login page. (1230865)
2486
2487 - Obscure email when the poster doesn't set full name in 'From:' header.
2488
2489 - Preambles and epilogues are taken into account when calculating message
2490 sizes for holding purposes. (Mark Sapiro)
2491
2492 - Logging/Logger.py unicode transform option. (1235567)
2493
2494 - bin/update crashes with bogus files. (949117)
2495
2496 - Bugs and patches: 1212066/1301983 (Date header in create/remove notice)
2497
2498 2.1.6 (30-May-2005)
2499
2500 Security
2501
2502 - Critical security patch for path traversal vulnerability in private
2503 archive script (CAN-2005-0202).
2504
2505 - Added the ability for Mailman generated passwords (both member and list
2506 admin) to be more cryptographically secure. See new configuration
2507 variables USER_FRIENDLY_PASSWORDS, MEMBER_PASSWORD_LENGTH, and
2508 ADMIN_PASSWORD_LENGTH. Also added a new bin/withlist script called
2509 reset_pw.py which can be used to reset all member passwords. Passwords
2510 generated by Mailman are now 8 characters by default for members, and 10
2511 characters for list administrators.
2512
2513 - A potential cross-site scripting hole in the driver script has been
2514 closed. Thanks to Florian Weimer for its discovery. Also, turn
2515 STEALTH_MODE on by default.
2516
2517 Internationalization
2518
2519 - Chinese languages are now supported. They have been moved from 'big5'
2520 and 'gb' to 'zh_TW' and 'zh_CN' respectively for compliance to the IANA
2521 spec. Note, however, that the character sets were changed from 'Big5'
2522 or 'GB2312' to 'UTF-8' to cope with the insufficient codecs support in
2523 Python 2.3 and earlier. You may have to install Chinese capable codecs
2524 (like CJKCodecs) separately to handle the incoming messages which are in
2525 local charsets, or upgrade your Python to 2.4 or newer.
2526
2527 Behavior or defaults changes
2528
2529 - VERP_PROBES is disabled by default.
2530
2531 - bin/withlist can be run without a list name, but only if -i is given.
2532 Also, withlist puts the directory it's found in at the end of sys.path,
2533 making it easier to run withlist scripts that live in $prefix/bin.
2534
2535 - bin/newlist grew two new options: -u/--urlhost and -e/--emailhost which
2536 lets the user provide the web and email hostnames for the new mailing
2537 list. This is a better way to specify the domain for the list, rather
2538 than the old 'mylist@hostname' syntax (which is still supported for
2539 backward compatibility, but deprecated).
2540
2541 Compatibility
2542
2543 - Python 2.4 compatibility issue: time.strftime() became strict about the
2544 'day of year' range. (1078482)
2545
2546 New Features
2547
2548 - New feature: automatic discards of held messages. List owners can now
2549 set how many days to hold the messages in the moderator request queue.
2550 cron/checkdb will automatically discard old messages. See the
2551 max_days_to_hold variable in the General Options and
2552 DEFAULT_MAX_DAYS_TO_HOLD in Defaults.py. This defaults to 0
2553 (i.e. disabled). (790494)
2554
2555 - New feature: subject_prefix can be configured to include a sequence
2556 number which is taken from the post_id variable. Also, the prefix is
2557 always put at the start of the subject, i.e. "[list-name] Re: original
2558 subject", if mm_cfg.OLD_STYLE_PREFIXING is set No. The default style
2559 is "Re: [list-name]" if numbering is not set, for backward compatibility.
2560 If the list owner is using numbering feature by "%d" directive, the new
2561 style, "[list-name 123] Re:", is always used.
2562
2563 - List owners can now cusomize the non-member rejection notice from
2564 admin/<listname>/privacy/sender page. (1107169)
2565
2566 - Allow editing of the welcome message from the admin page (1085501).
2567
2568 - List owners can now use Scrubber to get the attachments scrubbed (held
2569 in the web archive), if the site admin permits it in mm_cfg.py. New
2570 variables introduced are SCRUBBER_DONT_USE_ATTACHMENT_FILENAME and
2571 SCRUBBER_USE_ATTACHMENT_FILENAME_EXTENSION in Defaults.py for scrubber
2572 behavior. (904850)
2573
2574 Documentation
2575
2576 - Most of the installation instructions have been moved to a latex
2577 document. See doc/mailman-install/index.html for details.
2578
2579 Bug fixes and other patches
2580
2581 - Mail-to-news gateway now strips subject prefix off from a response
2582 by a mail user if news_prefix_subject_too is not set.
2583
2584 - Date and Message-Id headers are added for digests. (1116952)
2585
2586 - Improved mail address sanity check. (1030228)
2587
2588 - SpamDetect.py now checks attachment header. (1026977)
2589
2590 - Filter attachments by filename extensions. (1027882)
2591
2592 - Bugs and patches: 955381 (older Python compatibility), 1020102/1013079/
2593 1020013 (fix spam filter removed), 665569 (newer Postfix bounce
2594 detection), 970383 (moderator -1 admin requests pending), 873035
2595 (subject handling in -request mail), 799166/946554 (makefile
2596 compatibility), 872068 (add header/footer via unicode), 1032434
2597 (KNOWN_SPAMMERS check for multi-header), 1025372 (empty Cc:), 789015
2598 (fix pipermail URL), 948152 (Out of date link on Docs), 1099138
2599 (Scrubber.py breaks on None part), 1099840/1099840 (deprecated %
2600 insertion), 880073/933762 (List-ID RFC compliance), 1090439 (passwd
2601 reminder shunted), 1112349 (case insensitivity in acceptable_aliases),
2602 1117618 (Don't Cc for personalized anonymous list), 1190404 (wrong
2603 permission after editing html)
2604
2605 2.1.5 (15-May-2004)
2606
2607 - The admindb page has a checkbox that allows you to discard all held
2608 messages that are marked Defer. On heavy lists with lots of spam holds,
2609 this makes clearing them much faster.
2610
2611 - The qrunner system has changed to use only one file per message.
2612 However the configuration variable METADATA_FORMAT has been removed, and
2613 support for SAVE_MSGS_AS_PICKLES has been changed. The latter no longer
2614 writes messages as plain text. Instead, they are stored as pickles of
2615 plain strings, using the text pickle format. This still makes them
2616 non-binary files readable and editable by humans.
2617
2618 bin/dumpdb also works differently. It will print out the entire pickle
2619 file (with more verbosity) and if used with 'python -i', it binds msg to
2620 a list of all objects found in the pickle file.
2621
2622 Removed from Defaults.py: PENDINGDB_LOCK_TIMEOUT,
2623 PENDINGDB_LOCK_ATTEMPTS, METAFMT_MARSHAL, METAFMT_BSDDB_NATIVE,
2624 METAFMT_ASCII, METADATA_FORMAT
2625
2626 - The bounce processor has been redesigned so that now when an address's
2627 bounce score reaches the threshold, that address will be sent a probe
2628 message. Only if the probe bounces will the address be disabled. The
2629 score is reset to zero when the probe is sent. Also, bounce events are
2630 now kept in an event file instead of in memory. This should help
2631 contain the bloat of the BounceRunner.
2632
2633 New supporting variables in Defaults.py: VERP_PROBE_FORMAT,
2634 VERP_PROBE_REGEXP
2635
2636 REGISTER_BOUNCES_EVERY is promoted to a Defaults.py variable.
2637
2638 - The pending database has been changed from a global pickle file, to a
2639 unique pickle file per mailing list.
2640
2641 - The 'request' database file has changed from a marshal, to the more
2642 secure pickle format.
2643
2644 - Disallow multiple password retrievals.
2645
2646 - SF patch #810675 which adds a "Discard all messages marked Defer" button
2647 for faster admindb maintenance.
2648
2649 - The email package is updated to version 2.5.5.
2650
2651 - New language: Turkish.
2652
2653 - Bugs and patches: 869644, 869647 (NotAMemberError for old cookie data),
2654 878087 (bug in Slovenian catalog), 899263 (ignore duplicate pending
2655 ids), 810675 (discard all defers button)
2656
2657 2.1.4 (31-Dec-2003)
2658
2659 - Close some cross-site scripting vulnerabilities in the admin pages
2660 (CAN-2003-0965).
2661
2662 - New languages: Catalan, Croatian, Romanian, Slovenian.
2663
2664 - New mm_cfg.py/Defaults.py variable PUBLIC_MBOX which allows the site
2665 administrator to disable public access to all the raw list mbox files
2666 (this is not a per-list configuration).
2667
2668 - Expanded header filter rules under Privacy -> Spam Filters. Now you can
2669 specify regular expression matches against any header, with specific
2670 actions tied to those matches.
2671
2672 - Rework the SMTP error handling in SMTPDirect.py to avoid scoring bounces
2673 for all recipients when a permanent error code is returned by the mail
2674 server (e.g. because of content restrictions).
2675
2676 - Promoted SYNC_AFTER_WRITE to a Default.py/mm_cfg.py variable and
2677 make it control syncing on the config.pck file. Also, we always flush
2678 and sync message files.
2679
2680 - Reduce archive bloat by not storing the HTML body of Article objects in
2681 the Pipermail database. A new script bin/rb-archfix was added to clean
2682 up older archives.
2683
2684 - Proper RFC quoting for List-ID descriptions.
2685
2686 - PKGDIR can be passed to the make command in order to specify a different
2687 directory to unpack the distutils packages in misc. (SF bug 784700).
2688
2689 - Improved logging of the origin of subscription requests.
2690
2691 - Bugs and patches: 832748 (unsubscribe_policy ignored for unsub button on
2692 member login page), 846681 (bounce disabled cookie was always out of
2693 date), 835870 (check VIRTUAL_HOST_OVERVIEW on through the web list
2694 creation), 835036 (global address change when the new address is already
2695 a member of one of the lists), 833384 (incorrect admin password on a
2696 hold message confirmation attachment would discard the message), 835012
2697 (fix permission on empty archive index), 816410 (confirmation page
2698 consistency), 834486 (catch empty charsets in the scrubber), 777444 (set
2699 the process's supplemental groups if possible), 860135 (ignore
2700 DiscardMessage exceptions during digest scrubbing), 828811 (reduce
2701 process size for list and admin overviews), 864674/864676 (problems
2702 accessing private archives and rosters with admin password), 865661
2703 (Tokio Kikuchi's i18n patches), 862906 (unicode prefix leak in admindb),
2704 841445 (setting new_member_options via config_list), n/a (fixed email
2705 command 'set delivery')
2706
2707 2.1.3 (28-Sep-2003)
2708
2709 Performance, Reliability, Security
2710
2711 - Closed a cross-site scripting exploit in the create cgi script.
2712
2713 - Improvements in the performance of the bounce processor.
2714 Now, instead of processing each bounce immediately (which
2715 can cause severe lock contention), bounce events are queued.
2716 Every 15 minutes by default, the queued bounce events are
2717 processed en masse, on a list-per-list basis, so that each
2718 list only needs to be locked once.
2719
2720 - When some or all of a message's recipients have temporary
2721 delivery failures, the message is moved to a "retry" queue.
2722 This queue wakes up occasionally and moves the file back to
2723 the outgoing queue for attempted redelivery. This should
2724 fix most observed OutgoingRunner 100% cpu consumption,
2725 especially for bounces to local recipients when using the
2726 Postfix MTA.
2727
2728 - Optional support for fsync()'ing qfile data after writing.
2729 Under some catastrophic system failures (e.g. power lose),
2730 it would be possible to lose messages because the data
2731 wasn't sync'd to disk. By setting SYNC_AFTER_WRITE to True
2732 in Mailman/Queue/Switchboard.py, you can force Mailman to
2733 fsync() queue files after flushing them. The benefits are
2734 debatable for most operating environments, and you must
2735 ensure that your Python has the os.fsync() function defined
2736 before enabling this feature (it isn't, even on all
2737 Unix-like operating systems).
2738
2739 Internationalization
2740
2741 - New languages Ukrainian, Serbian, Danish, Euskara/Basque.
2742
2743 - Fixes to template lookup. Lists with local overriding
2744 templates would find the wrong template.
2745
2746 - .mo files (for internationalization) are now generated at
2747 build time instead of coming as part of the source
2748 distribution.
2749
2750 Documentation
2751
2752 - A first draft of member documentation by Terri Oda. There
2753 is also a Japanese translation of this manual by Ikeda Soji.
2754
2755 Archiver / Pipermail
2756
2757 - In the configuration variables PUBLIC_EXTERNAL_ARCHIVER, and
2758 PRIVATE_EXTERNAL_ARCHIVER, %(hostname)s has been added to
2759 the list of allowable substitution variables.
2760
2761 - The timezone is now taken into account when figuring the
2762 posting date for an article.
2763
2764 Scripts / Cron
2765
2766 - Fixes to cron/disabled for NotAMemberError crashes.
2767
2768 - New script bin/show_qfiles which prints the contents of .pck
2769 message files. New script bin/discard which can be used to
2770 mass discard held messages.
2771
2772 - Fixes to cron/mailpasswds to account for old password-less
2773 subscriptions.
2774
2775 - bin/list_members has grown two new options: --invalid/-i
2776 prints only the addresses in the member database that are
2777 invalid (which could have snuck in via old releases);
2778 --unicode/-u prints addresses which are stored as Unicode
2779 objects instead of as normal strings.
2780
2781 Miscellaneous
2782
2783 - Fixes to problems in some configurations where Python wouldn't
2784 be able to find its standard library.
2785
2786 - Fixes to the digest which could cause MIME-losing missing
2787 newlines when parts are scrubbed via the content filters.
2788
2789 - In the News/Mail gateway admin page, the configuration variable
2790 nntp_host can now be a name:port pair.
2791
2792 - When messages are pulled from NNTP, the member moderation checks
2793 are short-circuited.
2794
2795 - email 2.5.4 is included. This fixes an RFC 2231 bug, among
2796 possibly others.
2797
2798 - Fixed some extra spaces that could appear in the List-ID header.
2799
2800 - Fixes to ensure that invalid email addresses can't be invited.
2801
2802 - WEB_LINK_COLOR in Defaults.py/mm_cfg.py should now work.
2803
2804 - Fixes so that shunted message file names actually match
2805 those logged in log/errors.
2806
2807 - An improved pending action cookie generation algorithm has
2808 been added.
2809
2810 - Fixes to the DSN bounce detector.
2811
2812 - The usual additional u/i, internationalization, unicode, and
2813 other miscellaneous fixes.
2814
2815 2.1.2 (22-Apr-2003)
2816
2817 - New languages Portuguese (Portugal) and Polish.
2818
2819 - Many convenient constants have been added to the Defaults.py
2820 module to (hopefully) make it more readable.
2821
2822 - Email addresses which contain 8-bit characters in them are now
2823 rejected and won't be subscribed. This is not the same as 8-bit
2824 characters in the realname, which is still allowed.
2825
2826 - The X-Originating-Email header is removed for anonymous lists.
2827 Hotmail apparently adds this header.
2828
2829 - When running make to build Mailman, you can specify $DESTDIR to
2830 the install target to specify an alternative location for
2831 installation, without influencing the paths stored in
2832 e.g. Defaults.py. This is useful to package managers.
2833
2834 - New Defaults.py variable DELIVERY_RETRY_WAIT which controls how
2835 long the outgoing qrunner will wait before it retries a
2836 tempfailure delivery.
2837
2838 - The semantics for the extend.py hook to MailList objects has
2839 changed slightly. The hook is now called before attempting to
2840 lock and load the database.
2841
2842 - Mailman now uses the email package version 2.5.1
2843
2844 - bin/transcheck now checks for double-%'s
2845
2846 - bin/genaliases grew a -q / --quiet flag
2847
2848 - cron/checkdbs grew a -h / --help option.
2849
2850 - The -c / --change-msg option has been removed from bin/add_members
2851
2852 - bin/msgfmt.py has been added, taken from Python 2.3's Tools/i18n
2853 directory. The various .mo files are now no longer distributed
2854 with Mailman. They are generated at build time instead.
2855
2856 - A new file misc/sitelist.cfg which can be used with
2857 bin/config_list provides a small number of recommended settings
2858 for your site list. Be sure to read it over before applying!
2859 sitelist.cfg is installed into the data directory.
2860
2861 - Many bug fixes, including these SourceForge bugs closed and
2862 patches applied: 677668, 690448, 700538, 700537, 673294, 683906,
2863 671294, 522080, 521124, 534297, 699900, 697321, 695526, 703941,
2864 658261, 710678, 707608, 671303, 717096, 694912, 707624, 716755,
2865 661138, 716754, 716702, 667167, 725369, 726415
2866
2867
2868 2.1.1 (08-Feb-2003)
2869
2870 Lots of bug fixes and language updates. Also:
2871
2872 - Closed a cross-site scripting vulnerability in the user options page.
2873
2874 - Restore the ability to control which headers show up in messages
2875 included in plaintext and MIME digests. See the variables
2876 PLAIN_DIGEST_KEEP_HEADERS and MIME_DIGEST_KEEP_HEADERS in
2877 Defaults.py.
2878
2879 - Messages included in the plaintext digests are now sent through
2880 the scrubber to remove (and archive) attachments. Otherwise,
2881 attachments would screw up plaintext digests. MIME digests
2882 include the attachments inline.
2883
2884 2.1 final (30-Dec-2002)
2885
2886 Last minute bug fixes and language updates.
2887
2888 2.1 rc 1 (24-Dec-2002)
2889
2890 Bug fixes and language updates. Also,
2891
2892 - Lithuanian support has been added.
2893
2894 - bin/remove_members grew --nouserack and --noadminack switches
2895
2896 - configure now honors --srcdir
2897
2898 2.1 beta 6 (09-Dec-2002)
2899
2900 Lots and lots of bug fixes, and translation updates. Also,
2901
2902 - ARCHIVER_OBSCURES_EMAILADDRS is now set to true by default.
2903
2904 - QRUNNER_SAVE_BAD_MESSAGES is now set to true by default.
2905
2906 - Bounce messages which were recognized, but in which no member
2907 addresses were found are no longer forwarded to the list
2908 administrator.
2909
2910 - bin/arch grew a --wipe option which first removes the entire old
2911 archive before regenerating the new one.
2912
2913 - bin/mailmanctl -u now prints a warning that permission problems
2914 could appear, such as when trying to delete a list through the
2915 web that has some archives in it.
2916
2917 - bin/remove_members grew --nouserack/-n and -noadminack/-N options.
2918
2919 - A new script bin/list_owners has been added for printing out
2920 list owners and moderators.
2921
2922 - Dates in the web version of archived messages are now relative
2923 to the local timezone, and include the timezone names, when
2924 available.
2925
2926 2.1 beta 5 (19-Nov-2002)
2927
2928 As is typical for a late beta release, this one includes the usual
2929 bug fixes, tweaks, and massive new features (just kidding).
2930
2931 IMPORTANT: If you are using Pipermail, and you have any archives
2932 that were created or added to in 2.1b4, you will need to run
2933 bin/b4b5-archfix, followed by bin/check_perms to fix some serious
2934 performance problems. From you install directory, run
2935 "bin/b4b5-archfix --help" for details.
2936
2937 - The personalization options have been tweaked to provide more
2938 control over mail header and decoration personalizations. In
2939 2.1b4, when personalization was enabled, the To and Cc headers
2940 were always overwritten. But that's usually not appropriate for
2941 anything but announce lists, so now these headers aren't changed
2942 unless "Full personalization" is enabled.
2943
2944 - You now need to go to the General category to enable emergency
2945 moderation.
2946
2947 - The order of the hold modules in the GLOBAL_PIPELINE has
2948 changed, again. Now Moderate comes before Hold.
2949
2950 - Estonian language support has been added.
2951
2952 - All posted messages should now get decorated with headers and
2953 footers in a MIME-safe way. Previously, some MIME type messages
2954 didn't get decorated at all.
2955
2956 - bin/arch grew a -q/--quiet option
2957
2958 - bin/list_lists grew a -b/--bare option
2959
2960 2.1 beta 4 (26-Oct-2002)
2961
2962 The usual assortment of bug fixes and language updates, some u/i
2963 tweaks, as well as the following:
2964
2965 - Configuring / building / installing
2966 o Tightened up some configure checks; it will now bark loudly
2967 if you don't have the Python distutils package available
2968 (some Linux distros only include distutils in their "devel"
2969 packages).
2970
2971 o Mailman's username/group security assertions are now done by
2972 symbolic name instead of numeric id. This provides a level
2973 of indirection that makes it much easier to move or package
2974 Mailman. --with-mail-gid and --with-cgi-gid are retained,
2975 but they control the group names used instead.
2976
2977 - Command line scripts
2978 o A new script, bin/transcheck that language teams can use to
2979 check their .po files.
2980
2981 o bin/list_members grew a --fullnames/-f option to print the
2982 full names along with the addresses.
2983
2984 o cron/senddigests grew --help/-h and --listname/-l options.
2985
2986 o bin/fix_url.py grew some command line options to support moving
2987 a list to a specific virtual domain.
2988
2989 - Pipermail / archiving
2990 o Reworked the directory layout for archive attachments to be
2991 less susceptible to inode overload. Attachments are now
2992 placed in
2993
2994 archives/private/<listname>/attachments/<YYYYMMDD>/<msgidhash>
2995
2996 o Internationalization support in the archiver has been improved.
2997
2998 - Internationalization
2999 o New languages: Swedish.
3000
3001 - Mail handling
3002 o Content filtering now has a pass_mime_type variable, which
3003 is a whitelist of MIME types to allow in postings. See the
3004 details of the variable in the Content Filtering category
3005 for more information.
3006
3007 o If a member has enabled their DontReceiveDuplicates option,
3008 we'll also strip their addresses from the Cc headers in the
3009 copy of the message sent to the list. This helps keep the
3010 Cc lines from growing astronomically.
3011
3012 o Bounce messages are now forwarded to the list administrators
3013 both if they are unrecognized, and if no list member's
3014 address could be extracted.
3015
3016 o Content filtering now has a filter_action variable which
3017 controls what happens when a message matches the content
3018 filter rules. The default is still to discard the message.
3019
3020 o When searching for an Approve/Approved header, the first
3021 non-whitespace line of the body of the message is also
3022 checked, if the body has a MIME type of text/plain.
3023
3024 o If a list is personalized, and the list's posting address is
3025 not included in a Reply-To header, the posting address is
3026 copied into a Cc header, otherwise there was no (easy) way a
3027 recipient could reply back to the list.
3028
3029 o Added a MS Exchange bounce recognizer.
3030
3031 o New configuration variable news_moderation which allows the
3032 mail->news gateway to properly post to moderated newsgroups.
3033
3034 o Messages sent to a list's owners now comes from the site
3035 list to prevent mail loops when list owners or moderators
3036 having bouncing addresses.
3037
3038 - Miscellaneous
3039 o mailanctl prevents runaway restarts by imposing a maximum
3040 restart value (defaulting to 10) for restarting the
3041 qrunners. If you hit this limit, do "mailmanctl stop"
3042 followed by "mailmanctl start".
3043
3044 o The Membership Management page's search feature now includes
3045 searching on members real names.
3046
3047 o The start of a manual for list administrators is given in
3048 Python HOWTO format (LaTeX). It's in doc/mailman-admin.tex
3049 but it still needs lots of fleshing out.
3050
3051 o More protections against creating a list with an invalid name.
3052
3053 2.1 beta 3 (09-Aug-2002)
3054
3055 The usual assortment of bug fixes and language updates.
3056
3057 - New languages: Dutch, Portuguese (Brazil)
3058
3059 - New configure script options: --with-mailhost, --with-urlhost,
3060 --without-permcheck. See ./configure --help for details.
3061
3062 - The encoding of Subject: prefixes is controlled by a new list
3063 option encode_ascii_prefixes. This is useful for languages with
3064 character sets other than us-ascii. See the Languages admin
3065 page for details.
3066
3067 - A new list option news_prefix_subject_too controls whether
3068 postings gated from mail to news should have the subject prefix
3069 added to their Subject: header.
3070
3071 - The algorithm for upgrading the moderation controls for a
3072 Mailman 2.0.x list has changed. The change should be
3073 transparent, but you'll want to double check the moderation
3074 controls after upgrading from MM2.0.x. This should have no
3075 effect for upgrades from a previous MM2.1 beta.
3076
3077 See the UPGRADING file for details.
3078
3079 - On the Mass Subscribe admin page, a text box has been added so
3080 that the admin can add a custom message to be prepended to the
3081 welcome/invite notification.
3082
3083 - On the admindb page, a link is included to more easily reload
3084 the page.
3085
3086 - The Sendmail.py delivery module is sabotaged so that it can't be
3087 used naively. You need to read the comments in the file and
3088 edit the code to use this unsafe module.
3089
3090 - When a member sends a `help' command to the request address,
3091 the url to their options page is included in the response.
3092
3093 - Autoresponses, -request command responses, and posting hold
3094 notifications are inhibited for any message that has a
3095 Precedence: {bulk|list|junk} header. This is to avoid mail
3096 loops between email 'bots. If the original message has an
3097 X-Ack: yes header, the response is sent.
3098
3099 Responses are also limited to a maximum number per day, as
3100 defined in the site variable MAX_AUTORESPONSES_PER_DAY. This is
3101 another guard against 'bot loops, and it defaults to 10.
3102
3103 - When a Reply-To: header is munged to include both the original
3104 and the list address, the list address is always added last.
3105
3106 - The cron/mailpasswds script has grown a -l/--listname option.
3107
3108 - The cron/disabled script has grown options to send out
3109 notifications for reasons other than bounce-disabled. It has
3110 also grown a -f/--force option. See cron/disabled --help for
3111 details.
3112
3113 - The bin/dumpdb script has grown a -n/--noprint option.
3114
3115 - An experimental new mechanism for processing incoming messages
3116 has been added. If you can configure your MTA to do qmail-style
3117 Maildir delivery, Mailman now has a MaildirRunner qrunner. This
3118 may turn out to be much more efficient and scalable, but for
3119 MM2.1, it will not be officially supported. See Defaults.py.in
3120 and Mailman/Queue/MaildirRunner.py for details.
3121
3122 2.1 beta 2 (05-May-2002)
3123
3124 Lots of bug fixing, and the following new features and changes:
3125
3126 - A "de-mime" content filter feature has been added. This
3127 oft-requested feature allows you to specify MIME types that
3128 Mailman should strip off of any messages before they're posted
3129 to the list. You can also optionally convert text/html to
3130 text/plain (by default, through lynx if it's available).
3131
3132 - Changes to the way the RFC 2919 and 2369 headers (i.e. the
3133 List-*: headers) are added:
3134 o List-Id: is always added
3135 o List-Post:, List-Help:, List-Subscribe:,
3136 List-Unsubscribe:, and List-Archive: are only added to
3137 posting messages.
3138 o X-List-Administrivia: is only added to messages Mailman
3139 creates and sends out of its own accord.
3140
3141 Also, if the site administrator allows it, list owners can
3142 suppress the addition of all the List-*: headers. List owners
3143 can also separately suppress the List-Post: header for
3144 announce-only lists.
3145
3146 - A new framework for email commands has been added. This allows
3147 you to easily add, delete, or change the email commands that
3148 Mailman understands, on a per-site, per-list, or even per-user
3149 basis.
3150
3151 - Users can now change their digest delivery type from MIME to
3152 plain text globally, for all lists they are subscribed to.
3153
3154 - No language select pulldowns are shown if the list only supports
3155 one language.
3156
3157 - More mylist-admin eradication.
3158
3159 - Several performance improvements in the bounce qrunner, one of
3160 which is to make it run only once per minute instead of once per
3161 second.
3162
3163 - Korean language support as been added.
3164
3165 - Gatewaying from news -> mail uses its connections to the nntpd
3166 more efficiently.
3167
3168 - In bin/add_members, -n/--non-digest-members-file command line
3169 switch is deprecated in favor of -r/--regular-members-file.
3170
3171 - bin/sync_members grew a -g/--goodbye-msg switch.
3172
3173 2.1 beta 1 (16-Mar-2002)
3174
3175 In addition to the usual bug fixes, performance improvements, and
3176 GUI changes, here are the highlights:
3177
3178 - MIME and other message handling
3179 o More robustness against badly MIME encapsulated messages: if
3180 a MessageParseError is raised during the initial parse, the
3181 message can either be discarded or saved in qfiles/bad,
3182 depending on the value of the new configuration variable
3183 QRUNNER_SAVE_BAD_MESSAGES.
3184
3185 o There is a new per-user option that can be used to avoid
3186 receipt of extra copies, when a member of the list is also
3187 explicitly CC'd.
3188
3189 o Always add an RFC 2822 Date: header if missing, since not
3190 all MTAs insert one automatically.
3191
3192 o The Sender: and Errors-To: headers are no longer added to
3193 outgoing messages.
3194
3195 o Headers and footers are always added by concatenation, if
3196 the message is not MIME and if the list's charset is a
3197 superset of us-ascii.
3198
3199 - List administration
3200 o An `invitation' feature has been added. This is selectable
3201 as a radio button on the mass subscribe page. When
3202 selected, users are invited to join instead of immediately
3203 joined, i.e. they get a confirmation message.
3204
3205 o You can now enable and disable list owner notifications for
3206 disabled-due-to-bouncing and removal-due-to-bouncing
3207 actions. The site config variables
3208 DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE and
3209 DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL control the default
3210 behavior.
3211
3212 o List owners can now decide whether they receive unrecognized
3213 bounce messages or not (i.e. messages that the bounce
3214 processor doesn't recognize). Site admins can set the
3215 default value for this flag with the config variable
3216 DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER.
3217
3218 o The admindb summary page gives the option of clearing the
3219 moderation flag of members who are on quarantined.
3220
3221 o The action to take when a moderated member posts to a list
3222 is now configurable. The message can either be held,
3223 rejected (bounced), or discarded. If the message is
3224 rejected, a rejection notice string can be given.
3225
3226 o In the General admin page, you can now set the default value
3227 for five per-user flags: concealing the user's email
3228 address, acknowledging posts sent by the user, copy
3229 suppression, not-me-too selection, and the default digest
3230 type. Site admins can set the default bit field with the
3231 new DEFAULT_NEW_MEMBER_OPTIONS variable.
3232
3233 o A new "Emergency brake" feature for turning on moderation of
3234 all list postings. This is useful for when flamewars break
3235 out, and the list needs a cooling off period. Messages
3236 containing an Approved: header with the list owner password
3237 are still allowed through, as are messages approved through
3238 the admindb interface.
3239
3240 o When a moderated message is approved for the list, add an
3241 X-Mailman-Approved-At: header which contains the timestamp
3242 of the approval action (changed from X-Moderated: with a
3243 different format).
3244
3245 o Lists can now be converted to using a less error prone
3246 mechanism for variable substitution syntax in headers and
3247 footers. Instead of %(var)s strings, you'd use $var
3248 strings. You must use "bin/withlist -r convert" to enable
3249 this.
3250
3251 o When moderating held messages, the header text box and the
3252 message excerpt text box are now both read-only.
3253
3254 o You can't delete the site list through the web.
3255
3256 o When creating new lists through the web, you have the option
3257 of setting the "default member moderation" flag.
3258
3259 - Security and privacy
3260 o New feature: banned subscription addresses. Privacy
3261 options/subscription rules now have an additional list box
3262 which can contain addresses or regular expressions.
3263 Subscription requests from any matching address are
3264 automatically rejected.
3265
3266 o Membership tests which compare message headers against list
3267 rosters are now more robust. They now check, by default
3268 these header in order: From:, unixfrom, Reply-To:, Sender:.
3269 If any match, then the membership test succeeds.
3270
3271 o ALLOW_SITE_ADMIN_COOKIES is a new configuration variable
3272 which says whether to allow AuthSiteAdmin cookies or not.
3273 Normally, when a list administrator logs into a list with
3274 the site password, they are issued a cookie that only allows
3275 them to do administration for this one list. By setting
3276 ALLOW_SITE_ADMIN_COOKIES to 1, the user only needs to
3277 authenticate to one list with the site password, and they
3278 can administer any mailing list.
3279
3280 I'm not sure this feature is wise, so the default value for
3281 ALLOW_SITE_ADMIN_COOKIES is 0.
3282
3283 o Marc MERLIN's new recipes for secure Linuxes have been
3284 updated.
3285
3286 o DEFAULT_PRIVATE_ROSTER now defaults to 1.
3287
3288 o Passwords are no longer included in the confirmation pages.
3289
3290 - Internationalization
3291 o With the approval of Tamito KAJIYAMA, the Japanese codecs
3292 for Python are now included automatically, so you don't need
3293 to download and install these separate. It is installed in
3294 a Mailman-specific place so it won't affect your larger
3295 Python installation.
3296
3297 o The configure script will produce a warning if the Chinese
3298 codes are not installed. This is not a fatal error.
3299
3300 o Russian templates and catalogs have been added.
3301
3302 o Finnish templates and catalogs have been added.
3303
3304 - Scripts and utilities
3305 o New program bin/unshunt to safely move shunted messages back
3306 into the appropriate processing queue.
3307
3308 o New program bin/inject for sending a plaintext message into
3309 the incoming queue from the command line.
3310
3311 o New cron script cron/disabled for periodically culling the
3312 disabled membership.
3313
3314 o bin/list_members has grown some new command line switches
3315 for filtering on different criteria (digest mode, disable
3316 mode, etc.)
3317
3318 o bin/remove_members has grown the --fromall switch.
3319
3320 o You can now do a bin/rmlist -a to remove an archive even
3321 after the list has been deleted.
3322
3323 o bin/update removes the $prefix/Mailman/pythonlib directory.
3324
3325 o bin/withlist grows a --all/-a flag so the --run/-r option
3326 can be applied to all the mailing lists. Also, interactive
3327 mode is now the default if -r isn't used. You don't need to
3328 run this script as "python -i bin/withlist" anymore.
3329
3330 o There is a new script contrib/majordomo2mailman.pl which
3331 should ease the transition from Majordomo to Mailman.
3332
3333 - MTA integration
3334 o Postfix integration has been made much more robust, but now
3335 you have to set POSTFIX_ALIAS_CMD and POSTFIX_MAP_CMD to
3336 point to the postalias and postmap commands respectively.
3337
3338 o VERP-ish delivery has been made much more efficient by
3339 eliminating extra disk copies of messages for each recipient
3340 of a VERP delivery. It has also been made more robust in
3341 the face of failures during chunk delivery. This required a
3342 rewrite of SMTPDirect.py and one casualty of that rewrite
3343 was the experimental threaded delivery. It is no longer
3344 supported (but /might/ be resurrected if there's enough
3345 demand -- or a contributed patch :).
3346
3347 o A new site config variable SMTP_MAX_SESSIONS_PER_CONNECTION
3348 specifies how many consecutive SMTP sessions will be
3349 conducted down the same socket connection. Some MTAs have a
3350 limit on this.
3351
3352 o Support for VERP-ing confirmation messages. These are less
3353 error prone since the Subject: header doesn't need to be
3354 retained, and they allow a more user friendly (and i18n'd)
3355 Subject: header. VERP_CONFIRM_FORMAT, VERP_CONFIRM_REGEXP,
3356 and VERP_CONFIRMATIONS control this feature (only supported
3357 for invitation confirmations currently, but will be expanded
3358 to the other confirmations).
3359
3360 o Several new list-centric addresses have been added:
3361 -subscribe and -unsubscribe are synonyms for -join and
3362 -leave, respectively. Also -confirm has been added to
3363 support VERP'd confirmations.
3364
3365 - Archiver
3366 o There's now a default page for the Pipermail archive link
3367 for when no messages have yet been posted to the list.
3368
3369 o Just the mere presence of an X-No-Archive: is enough to
3370 inhibit archiving for this message; the value of the header
3371 is now ignored.
3372
3373 - Configuring, building, installing
3374 o Mailman now has a new favicon, donated by Terry Oda. Not
3375 all web pages are linked to the favicon yet though.
3376
3377 o The add-on email package is now distributed and installed
3378 automatically, so you don't need to do this. It is
3379 installed in a Mailman-specific place so it won't affect
3380 your larger Python installation.
3381
3382 o The default value of VERP_REGEXP has changed.
3383
3384 o New site configuration variables BADQUEUE_DIR and
3385 QRUNNER_SAVE_BAD_MESSAGES which describe where to save
3386 messages which are not properly MIME encoded.
3387
3388 o configure should be more POSIX-ly conformant.
3389
3390 o The Mailman/pythonlib directory has been removed, but a new
3391 $prefix/pythonlib directory has been added.
3392
3393 o Regression tests are now installed.
3394
3395 o The second argument to add_virtual() calls in mm_cfg.py are
3396 now optional.
3397
3398 o DEFAULT_FIRST_STRIP_REPLY_TO now defaults to 0.
3399
3400 o Site administrators can edit the Mailman/Site.py file to
3401 customize some filesystem layout policies.
3402
3403
3404 2.1 alpha 4 (31-Dec-2001)
3405
3406 - The administrative requests database page (admindb) has been
3407 redesigned for better usability when there are lots of held
3408 postings. Changes include:
3409 o A summary page which groups held messages by sender email
3410 address. On this page you can dispose of all the sender's
3411 messages in one action. You can also view the details of
3412 all the sender's messages, or the details of a single
3413 message. You can also add the sender to one of the list's
3414 sender filters.
3415
3416 o A details page where you can view all messages, just those
3417 for a particular sender, or just a single held message.
3418 This details page is laid out the same as the old admindb
3419 page.
3420
3421 o The instructions have been shorted on the summary and
3422 details page, with links to more detailed explanations.
3423
3424 - Bounce processing
3425 o Mailman now keeps track of the reason a member's delivery
3426 has been disabled: explicitly by the administrator,
3427 explicitly by the user, by the system due to excessive
3428 bounces, or for (legacy) unknown reasons.
3429
3430 o A new bounce processing algorithm has been implemented (we
3431 might actually understand this one ;). When an address
3432 starts bouncing, the member gets a "bounce score". Hard
3433 (fatal) bounces score 1.0, while soft (transient) bounces
3434 score 0.5.
3435
3436 List administrators can specify a bounce threshold above
3437 which a member gets disabled. They can also specify a time
3438 interval after which, if no bounces are received from the
3439 member, the member's bounce score is considered stale and is
3440 thrown away.
3441
3442 o A new cron script, cron/disabled, periodically sends
3443 notifications to members who are bounce disabled. After a
3444 certain number of warnings the member is deleted from the
3445 list. List administrators can control both the number of
3446 notifications and the amount of time between notifications.
3447
3448 Notifications include a confirmation cookie that the member
3449 can use to re-enable their subscription, via email or web.
3450
3451 o New configuration variables to support the bounce processing
3452 are DEFAULT_BOUNCE_SCORE_THRESHOLD,
3453 DEFAULT_BOUNCE_INFO_STALE_AFTER,
3454 DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS,
3455 DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL.
3456
3457 - Privacy and security
3458 o Sender filters can now be regular expressions. If a line
3459 starts with ^ it is taken as a (raw string) regular
3460 expression, otherwise it is a literal email address.
3461
3462 o Fixes in 2.0.8 ported forward: prevent cross-site scripting
3463 exploits.
3464
3465 - Mail delivery
3466 o Aliases have all been changed so that there's more
3467 consistency between the alias a message gets delivered to,
3468 and the script & queue runner that handles the message.
3469
3470 I've also renamed the mail wrapper script to `mailman' from
3471 `wrapper' to avoid collisions with other MLM's. You /will/
3472 need to regenerate your alias files with bin/genaliases, and
3473 you may need to update your smrsh (Sendmail) configs.a
3474
3475 Bounces always go to listname-bounces now, since
3476 administration has been separated from bounce processing.
3477 listname-admin is obsolete.
3478
3479 o VERP support! This greatly improves the accuracy of bounce
3480 detection. Configuration variables which control this feature
3481 include VERP_DELIVERY_INTERVAL, VERP_PERSONALIZED_DELIVERIES,
3482 VERP_PASSWORD_REMINDERS, VERP_REGEXP, and VERP_FORMAT. The
3483 latter two must be tuned to your MTA.
3484
3485 o A new alias mailman-loop@dom.ain is added which directs all
3486 output to the file $prefix/data/owner-bounces.mbox. This is
3487 used when sending messages to the site list owners, as the
3488 final fallback for bouncing messages.
3489
3490 o New configuration variable POSTFIX_STYLE_VIRTUAL_DOMAINS
3491 which should be set if you are using the Postfix MTA and
3492 want Mailman to play nice with Postfix-style virtual
3493 domains.
3494
3495 - Miscellaneous
3496 o Better interoperability with Python 2.2.
3497
3498 o MailList objects now record the date (in seconds since
3499 epoch) that they were created. This is in a hidden
3500 attribute `created_at'.
3501
3502 o bin/qrunner grows a -s/--subproc switch which is usually
3503 used only when it's started from mailmanctl.
3504
3505 o bin/newlist grows a -l/--language option so that the list's
3506 preferred language can be set from the command line.
3507
3508 o cron changes: admin reminders go out at 8am local time instead
3509 of 10pm local time.
3510
3511 - Pipermail archiver
3512 o MIME attachments are scrubbed out into separate files which
3513 can be viewed by following a link in the original article.
3514 Article contains an indication of the size of the
3515 attachment, its type, and other useful information.
3516
3517 o New script bin/cleanarch which can be used to `clean' an
3518 .mbox archive file by fixing unescaped embedded Unix From_
3519 lines.
3520
3521 o New configuration variable ARCHIVE_SCRUBBER in
3522 Defaults.py.in which names the module that Pipermail should
3523 use to scrub articles of MIME attachments.
3524
3525 o New configuration variable ARCHIVE_HTML_SANITIZER which
3526 describes how the scrubber should handle text/html
3527 attachments.
3528
3529 o PUBLIC_ARCHIVE_URL has change its semantics. It is now an
3530 absolute url, with the hostname and listname parts
3531 interpolated into it on a per-list basis.
3532
3533 o Pipermail should now provide the proper character set in the
3534 Content-Type: header for archived articles.
3535
3536 - Internationalization
3537 o Czech translations by Dan Ohnesorg.
3538
3539 o The Hungarian charset has be fixed to be iso-8859-2.
3540
3541 o The member options login page now has a language selection
3542 widget.
3543
3544 - Building, configuration
3545 o email-0.96 package is required (see the misc directory).
3546
3547 o New recipes for integrating Mailman and Sendmail,
3548 contributed by David Champion.
3549
3550
3551 2.1 alpha 3 (22-Oct-2001)
3552
3553 - Realname support
3554 o Mailman now tracks a member's Real Name in addition to their
3555 email address.
3556
3557 o List members can now supply their Real Names when
3558 subscribing via the web. Their Real Names are parsed from
3559 any thru-email subscriptions.
3560
3561 o Members can change their Real Names on their options page,
3562 and admins can change members' Real Names on the membership
3563 pages. Mass subscribing accepts "email@dom.ain (Real Name)"
3564 and "Real Name <email@dom.ain>" entries, for both
3565 in-text-box and file-upload mass subscriptions.
3566
3567 - Filtering and Privacy
3568 o Reply-To: munging has been enhanced to allow a wider range
3569 of list policies. You can now pre-strip any Reply-To:
3570 headers before adding list-specific ones (i.e. you can
3571 override or extend existing Reply-To: headers). If
3572 stripping, the old headers are no longer saved on
3573 X-Reply-To:
3574
3575 o New sender moderation rules. The old `posters',
3576 `member_only_posting', `moderated' and `forbidden_posters'
3577 options have been removed in favor of a new moderation
3578 scheme. Each member has a personal moderation bit, and
3579 non-member postings can be automatically accepted, held for
3580 approval, rejected (bounced) or discarded.
3581
3582 o When membership rosters are private, responses to
3583 subscription (and other) requests are made more generic so
3584 that these processes can't be covertly mined for hidden
3585 addresses. If a subscription request comes in for a user
3586 who is already subscribed, the user is notified of potential
3587 membership mining.
3588
3589 o When a held message is approved via the admindb page, an
3590 X-Moderated: header is added to the message.
3591
3592 o List admins can now set an unsubscribe policy which requires
3593 them to approve of member unsubscriptions.
3594
3595 - Web U/I
3596 o All web confirmations now require a two-click procedure,
3597 where the first click gives them a page that allows them to
3598 confirm or cancel their subscription. It is bad form for an
3599 email click (HTTP GET) to have side effects.
3600
3601 o Lots of improvements for clarity.
3602
3603 o The Privacy category has grown three subcategories.
3604
3605 o The General options page as a number of subsection headers.
3606
3607 o The Passwords and Languages categories are now on separate
3608 admin pages.
3609
3610 o The admin subcategories are now formated as two columns in
3611 the top and bottom legends.
3612
3613 o When creating a list through the web, you can now specify
3614 the initial list of supported languages.
3615
3616 o The U/I for unsubscribing a member on the admin's membership
3617 page should be more intuitive now.
3618
3619 o There is now a separate configuration option for whether the
3620 goodbye_msg is sent when a member is unsubscribed.
3621
3622 - Performance
3623 o misc/mailman is a Unix init script, appropriate for
3624 /etc/init.d, and containing chkconfig hooks for systems that
3625 support it.
3626
3627 o bin/mailmanctl has been rewritten; the `restart' command
3628 actually works now. It now also accepts -s, -q, and -u
3629 options.
3630
3631 o bin/qrunner has been rewritten too; it can serve the role of
3632 the old cron/qrunner script for those who want classic
3633 cron-invoked mail delivery.
3634
3635 o Internally, messages are now stored in the qfiles directory
3636 primarily as pickles. List configuration databases are now
3637 stored as pickles too (i.e. config.pck). bin/dumpdb knows
3638 how to display both pickles and marshals.
3639
3640 - Mail delivery
3641 o If a user's message is held for approval, they are sent a
3642 notification message containing a confirmation cookie. They
3643 can use this confirmation cookie to cancel their own
3644 postings (if they haven't already been approved).
3645
3646 o When held messages are forwarded to an explicit address
3647 using the admindb page, it is done so in a message/rfc822
3648 encapsulation.
3649
3650 o When a message is first held for approval, the notification
3651 sent to the list admin is a 3-part multipart/mixed. The
3652 first part holds the notification message, the second part
3653 hold the original message, and the third part hold a cookie
3654 confirmation message, to which the admin can respond to
3655 approve or discard the message via email.
3656
3657 o In the mail->news gateway, you can define mail headers that
3658 must be modified or deleted before the message can be posted
3659 to the nntp server.
3660
3661 o The list admin can send an immediate urgent message to the
3662 entire list membership, bypassing digest delivery. This is
3663 done by adding an Urgent: header with the list password.
3664 Urgent messages with an invalid password are rejected.
3665
3666 o Lists can now optionally personalize email messages, if the
3667 site admin allows it. Personalized messages mean that the
3668 To: header includes the recipient's address instead of the
3669 list's address, and header and footer messages can contain
3670 user-specific information. Note that only regular
3671 deliveries can currently be personalized.
3672
3673 o Message that come from Usenet but that have broken MIME
3674 boundaries are ignored.
3675
3676 o If the site administrator agrees, list owners have the
3677 ability to disable RFC 2369 List-* headers.
3678
3679 o There is now an API for an external process to post a
3680 message to a list. This posting process can also specify an
3681 explicit list of recipients, in effect turning the mailing
3682 list into a "virtual list" with a fluid membership. See
3683 Mailman/Post.py for details.
3684
3685 - Building/testing/configuration
3686 o mimelib is no longer required, but you must install the
3687 email package (see the tarball in the misc directory).
3688
3689 o An (as yet) incomplete test suite has been added. Don't try
3690 running it in a production environment!
3691
3692 o Better virtual host support by adding a mapping from the
3693 host name given in cgi's HTTP_HOST/SERVER_NAME variable to
3694 the email host used in list addresses. (E.g. www.python.org
3695 maps to @python.org).
3696
3697 o Specifying urls to external public archivers is more
3698 flexible.
3699
3700 o The filters/ subdirectory has been removed.
3701
3702 o There is now a `site list' which is a mailing list that must
3703 be created first, and from which all password reminders
3704 appear to come from. It is recommended that this list be
3705 called "mailman@your.site".
3706
3707 o bin/move_list is no longer necessary (see the FAQ for
3708 detailed instructions on renaming a list).
3709
3710 o A new script bin/fix_url.py can be used with bin/withlist to
3711 change a list's web_page_url configuration variable (since
3712 it is no longer modifiable through the web).
3713
3714 - Internationalization
3715 o Support for German, Hungarian, Italian, Japanese, and
3716 Norwegian have been added.
3717
3718 - Miscellaneous
3719 o Lots of new bounce detectors. Bounce detectors can now
3720 discard temporary bounce messages by returning a special
3721 Stop value.
3722
3723 o bin/withlist now sports a -q/--quiet flag.
3724
3725 o bin/add_members has a new -a/--admin-notify flag which can
3726 be used to inhibit list owner notification for each
3727 subscription.
3728
3729 - Membership Adaptors
3730 o Internally, mailing list memberships are accessed through a
3731 MemberAdaptor interface. This would allow for integrating
3732 membership databases with external sources (e.g. Zope or
3733 LDAP), although the only MemberAdaptor currently implemented
3734 is a "classic" adaptor which stores the membership
3735 information on the MailList object.
3736
3737 o There's a new pipeline handler module called FileRecips.py
3738 which could be used to get all regular delivery mailing list
3739 recipients from a Sendmail-style :include: file (see List
3740 Extensibility bullet below).
3741
3742 This work was sponsored by Control.com
3743
3744 - List Extensibility
3745 o A framework has been added which can be used to specialize
3746 and extend specific mailing lists. If there is a file
3747 called lists/<yourlist>/extend.py, it is execfile()'d after
3748 the MailList object is instantiated. The file should
3749 contain a function extend() which will be called with the
3750 MailList instance. This function can do all sorts of deep
3751 things, like modify the handler pipeline just for this list,
3752 or even strip out particular admin GUI elements (see below).
3753
3754 o All the admin page GUI elements are now separate
3755 components. This provides greater flexibility for list
3756 customization. Also, each GUI element will be given an
3757 opportunity to handle admin CGI form data.
3758
3759 This work was sponsored by Control.com
3760
3761 - Topic Filters
3762 o A new feature has been added called "Topic Filters". A list
3763 administrator can create topics, which are essentially
3764 regular expression matches against Subject: and Keyword:
3765 headers (including such pseudo-headers if they appear in the
3766 first few lines of the body of a message).
3767
3768 List members can then `subscribe' to various topics, which
3769 allows them to filter out any messages that don't match a
3770 topic, or to filter out any message that does match a
3771 topic. This can be useful for high volume lists where not
3772 everyone will be interested in every message.
3773
3774 This work was sponsored by Control.com
3775
3776 2.1 alpha 2 (11-Jul-2001)
3777
3778 - Building
3779 o mimelib 0.4 is now required. Get it from
3780 http://mimelib.sf.net. If you've installed an earlier
3781 version of mimelib, you must upgrade.
3782
3783 o /usr/local/mailman is now the default installation
3784 directory. Use configure's --prefix switch to change it
3785 back to the default (/home/mailman) or any other
3786 installation directory of your choice.
3787
3788 - Security
3789 o Better definition of authentication domains. The following
3790 roles have been defined: user, list-admin, list-moderator,
3791 creator, site-admin.
3792
3793 o There is now a separate role of "list moderator", which has
3794 access to the pending requests (admindb) page, but not the
3795 list configuration pages.
3796
3797 o Subscription confirmations can now be performed via email or
3798 via URL. When a subscription is received, a unique (sha)
3799 confirm URL is generated in the confirmation message.
3800 Simply visiting this URL completes the subscription process.
3801
3802 o In a similar manner, removal requests (via web or email
3803 command) no longer require the password. If the correct
3804 password is given, the removal is performed immediately. If
3805 no password is given, then a confirmation message is
3806 generated.
3807
3808 - Internationalization
3809 o More I18N patches. The basic infrastructure should now be
3810 working correctly. Spanish templates and catalogs are
3811 included, and English, French, Hungarian, and Big5 templates
3812 are included.
3813
3814 o Cascading specializations and internationalization of
3815 templates. Templates are now search for in the following
3816 order: list-specific location, domain-specific location,
3817 site-wide location, global defaults. Each search location
3818 is further qualified by the language being displayed. This
3819 means that you only need to change the templates that are
3820 different from the global defaults.
3821
3822 Templates renamed: admlogin.txt => admlogin.html
3823 Templates added: private.html
3824
3825 - Web UI
3826 o Redesigned the user options page. It now sits behind an
3827 authentication so user options cannot be viewed without the
3828 proper password. The other advantage is that the user's
3829 password need not be entered on the options page to
3830 unsubscribe or change option values. The login screen also
3831 provides for password mail-back, and unsubscription w/
3832 confirmation.
3833
3834 Other new features accessible from the user options page
3835 include: ability to change email address (with confirmation)
3836 both per-list and globally for all list on virtual domain;
3837 global membership password changing; global mail delivery
3838 disable/enable; ability to suppress password reminders both
3839 per-list and globally; logout button.
3840
3841 [Note: the handle_opts cgi has gone away]
3842
3843 o Color schemes for non-template based web pages can be defined
3844 via mm_cfg.
3845
3846 o Redesign of the membership management page. The page is now
3847 split into three subcategories (Membership List, Mass
3848 Subscription, and Mass Removal). The Membership List
3849 subcategory now supports searching for member addresses by
3850 regular expression, and if necessary, it groups member
3851 addresses first alphabetically, and then by chunks.
3852
3853 Mass Subscription and Mass Removal now support file upload,
3854 with one address per line.
3855
3856 o Hyperlinks from the logos in the footers have been removed.
3857 The sponsors got too much "unsubscribe me!" spam from
3858 desperate user of Mailman at other sites.
3859
3860 o New buttons on the digest admin page to send a digest
3861 immediately (if it's non-empty), to start a new digest
3862 volume with the next digest, and to select the interval with
3863 which to automatically start a new digest volume (yearly,
3864 monthly, quarterly, weekly, daily).
3865
3866 DEFAULT_DIGEST_VOLUME_FREQUENCY is a new configuration
3867 variable, initially set to give a new digest volume monthly.
3868
3869 o Through-the-web list creation and removal, using a separate
3870 site-wide authentication role called the "list creator and
3871 destroyer" or simply "list creator". If the configuration
3872 variable OWNERS_CAN_DELETE_THEIR_OWN_LISTS is set to 1 (by
3873 default, it's 0), then list admins can delete their own
3874 lists.
3875
3876 This feature requires an adaptor for the particular MTA
3877 you're using. An adaptor for Postfix is included, as is a
3878 dumb adaptor that just emails mailman@yoursite with the
3879 necessary Sendmail style /etc/alias file changes. Some MTAs
3880 like Exim can be configured to automatically recognize new
3881 lists. The adaptor is selected via the MTA option in
3882 mm_cfg.py
3883
3884 - Email UI
3885 o In email commands, "join" is a synonym for
3886 "subscribe". "remove" and "leave" are synonyms for
3887 "unsubscribe". New robot addresses are support to make
3888 subscribing and unsubscribing much easier:
3889
3890 mylist-join@mysite
3891 mylist-leave@mysite
3892
3893 o Confirmation messages have a shortened Subject: header,
3894 containing just the word "confirm" and the confirmation
3895 cookie. This should help for MUAs that like to wrap long
3896 Subject: lines, messing up confirmation.
3897
3898 o Mailman now recognizes an Urgent: header, which, if it
3899 contains the list moderator or list administrator password,
3900 forces the message to be delivered immediately to all
3901 members (i.e. both regular and digest members). The message
3902 is also placed in the digest. If the password is incorrect,
3903 the message will be bounced back to the sender.
3904
3905 - Performance
3906 o Refinements to the new qrunner subsystem which preserves
3907 FIFO order of messages.
3908
3909 o The qrunner is no longer started from cron. It is started
3910 by a Un*x init-style script called bin/mailmanctl (see
3911 below). cron/qrunner has been removed.
3912
3913 - Command line scripts
3914 o bin/mailmanctl script added, which is used to start, stop,
3915 and restart the qrunner daemon.
3916
3917 o bin/qrunner script added which allows a single sub-qrunner
3918 to run once through its processing loop.
3919
3920 o bin/change_pw script added (eases mass changing of list
3921 passwords).
3922
3923 o bin/update grows a -f switch to force an update.
3924
3925 o bin/newlang renamed to bin/addlang; bin/rmlang removed.
3926
3927 o bin/mmsitepass has grown a -c option to set the list
3928 creator's password. The site-wide `create' web page is
3929 linked to from the admin overview page.
3930
3931 o bin/newlist's -o option is removed. This script also grows
3932 a way of spelling the creation of a list in a specific
3933 virtual domain.
3934
3935 o The `auto' script has been removed.
3936
3937 o bin/dumpdb has grown -m/--marshal and -p/--pickle options.
3938
3939 o bin/list_admins can be used to print the owners of a mailing list.
3940
3941 o bin/genaliases regenerates from scratch the aliases and
3942 aliases.db file for the Postfix MTA.
3943
3944 - Archiver
3945 o New archiver date clobbering option, which allows dates to
3946 only be clobber if they are outrageously out-of-date
3947 (default setting is 15 days on either side of received
3948 timestamp). New configuration variables:
3949
3950 ARCHIVER_CLOBBER_DATE_POLICY
3951 ARCHIVER_ALLOWABLE_SANE_DATE_SKEW
3952
3953 The archived copy of messages grows an X-List-Received-Date:
3954 header indicating the time the message was received by
3955 Mailman.
3956
3957 o PRIVATE_ARCHIVE_URL configuration variable is removed (this
3958 can be calculated on the fly, and removing it actually makes
3959 site configuration easier).
3960
3961 - Miscellaneous
3962 o Several new README's have been added.
3963
3964 o Most syslog entries for the qrunner have been redirected to
3965 logs/error.
3966
3967 o On SIGHUP, qrunner will re-open all its log files and
3968 restart all child processes. See "bin/mailmanctl restart".
3969
3970 - Patches and bug fixes
3971 o SF patches and bug fixes applied: 420396, 424389, 227694,
3972 426002, 401372 (partial), 401452.
3973
3974 o Fixes in 2.0.5 ported forward:
3975 Fix a lock stagnation problem that can result when the
3976 user hits the `stop' button on their browser during a
3977 write operation that can take a long time (e.g. hitting
3978 the membership management admin page).
3979
3980 o Fixes in 2.0.4 ported forward:
3981 Python 2.1 compatibility release. There were a few
3982 questionable constructs and uses of deprecated modules
3983 that caused annoying warnings when used with Python 2.1.
3984 This release quiets those warnings.
3985
3986 o Fixes in 2.0.3 ported forward:
3987 Bug fix release. There was a small typo in 2.0.2 in
3988 ListAdmin.py for approving an already subscribed member
3989 (thanks Thomas!). Also, an update to the OpenWall
3990 security workaround (contrib/securelinux_fix.py) was
3991 included. Thanks to Marc Merlin.
3992
3993 2.1 alpha 1 (04-Mar-2001)
3994
3995 - Python 2.0 or newer required. Also required is `mimelib' a new
3996 library for handling MIME documents. This will be bundled in
3997 future releases, but for now, you must download and install it
3998 (using Python's distutils) from
3999
4000 http://barry.wooz.org/software/Code/mimelib-0.2.tar.gz
4001
4002 You need mimelib 0.2 or better.
4003
4004 - Redesigned qrunner subsystem. Now there are multiple message
4005 queues, and considerable flexibility in file formats for
4006 integration with external systems. The current crop of queues
4007 include:
4008
4009 archive -- for posting messages to an archiver
4010 commands -- for incoming email commands and bounces
4011 in -- for list-destined incoming email
4012 news -- for messages outgoing to a nntp server
4013 out -- for messages outgoing to a smtp server
4014 shunt -- for messages that trigger unexpected exceptions in Mailman
4015 virgin -- for messages that are generated by Mailman
4016
4017 cron/qrunner is now a long running script that forks off
4018 sub-runners for each of the above queues. qrunner still plays
4019 nice with cron, but it is expected to be started by init at some
4020 point in the future. Some support exists for parallel
4021 processing of messages in the queues.
4022
4023 - Support for internationalization support merged in. Original
4024 work done by Juan Carlos Rey Anaya and Victoriano Giralt. I've
4025 tested about 90% of the web side, 50% of the email, and 50% of
4026 the command line / cron scripts.
4027
4028 New scripts: bin/newlang, bin/rmlang
4029
4030 - New delivery script `auto' for automatic integration with the
4031 Postfix MTA.
4032
4033 - A bunch of new bounce detectors.
4034
4035 Changes ported from Mailman 2.0.2 and 2.0.1:
4036
4037 - A fix for a potential privacy exploit where a clever list
4038 administrator could gain access to user passwords. This doesn't
4039 allow them to do much more harm to the user then they normally
4040 could, but they still shouldn't have access to the passwords.
4041
4042 - In the admindb page, don't complain when approving a
4043 subscription of someone who's already on the list (SF bug
4044 #222409 - Thomas Wouters).
4045
4046 Also, quote for HTML the Subject: text printed for held
4047 messages, otherwise messages with e.g. "Subject: </table>" could
4048 royally screw page formatting.
4049
4050 - Docstring fix bin/newlist to remove mention of "immediate"
4051 argument (Thomas Wouters).
4052
4053 - Fix for bin/update when PREFIX != VAR_PREFIX (SF bug #229794 --
4054 Thomas Wouters).
4055
4056 - Bug fix release, namely fixes a buglet in bin/withlist affecting
4057 the -l and -r flags; also a problem that can cause qrunner to
4058 stop processing mail after disk-full events (SourceForge bug
4059 127199).
4060
4061 2.0 final (21-Nov-2000)
4062
4063 No changes from rc3.
4064
4065 2.0 release candidate 3 (16-Nov-2000)
4066
4067 - By popular demand, Reply-To: munging policy is now to always
4068 override any Reply-To: header in the original message, if
4069 reply_goes_to_list is set to "This list" or "Explicit Address"
4070
4071 - bin/newlist given -q/--quiet flag instead of the <immediate>
4072 positional argument
4073
4074 - Hopefully last fix to DEFAULT_URL not ending in a slash
4075 sensitivity
4076
4077 - 2.0rc2 buglets fixed:
4078 o newlist argument parsing
4079 o updating with unlocked lists
4080 o HyperArch.py traceback when there's no
4081 Content-Transfer-Encoding: header
4082
4083 - SourceForge bugs fixed:
4084 122358 (qmail-to-mailman.py listname case folding)
4085
4086 - SourceForge patches applied:
4087 102373 (qmail-to-mailman.py listname case folding)
4088
4089 2.0 release candidate 2 (10-Nov-2000)
4090
4091 - Documentation updates: start in the doc/ directory.
4092
4093 - bin/withlist accepts additional command line arguments when used
4094 with the --run flag; bin/mmsitepass and bin/newlist accept
4095 -h/--help flags
4096
4097 - bin/newlist has a -o/--output flag to append /etc/aliases
4098 suggestions to a specified file
4099
4100 - SourceForge bugs fixed:
4101 116615 (README.BSD update), 117015 (duplicate messages on
4102 moderated posts), 117548 (exception in HyperArch.py), 117682
4103 (typos), 121185 (vsnprintf signature), 121591 and 122017
4104 (bogus link after web unsubscribe), 121811 (`subscribe' in
4105 Subject: doesn't get archived)
4106
4107 - SourceForge patches applied:
4108 101812 (securelinux_fix.py contrib), 102097 (fix for bug
4109 117548), 102211 (additional args for withlist), 102268 (case
4110 insensitive Content-Transfer-Encoding:)
4111
4112 2.0 release candidate 1 (23-Oct-2000)
4113
4114 - Bug fixes and security patches.
4115
4116 - Better html rendition of articles in non us-ascii charsets
4117 (Jeremy Hylton). See VERBATIM_ENCODING variable in
4118 Defaults.py.in for customization.
4119
4120 2.0 beta 6 (22-Sep-2000)
4121
4122 - Building
4123 o Tested with Python 1.5.2, Python 1.6, and Python 2.0 beta 1.
4124 Conducted on RH Linux 6.1 only, but should work
4125 cross-platform.
4126
4127 o Configure now accepts --with-username, --with-groupname,
4128 --with-var-prefix flags. See `configure --help' or the
4129 INSTALL file for details.
4130
4131 o Setting the CFLAGS environment variable before invoking
4132 configure now works.
4133
4134 o The icons are now copied into $prefix/icons at install time.
4135 Patch by David Champion.
4136
4137 - Standards
4138 o Compliance with RFC 2369 (List-*: headers). Patch by
4139 Darrell Fuhriman. List-ID: header is kept for historical
4140 reasons.
4141
4142 o Fixes by Jeremy Hylton to Pipermail in support of non-ASCII
4143 charsets, based on the Content-Type: and encoded-words in
4144 the original message. Mail headers are now decoded as per
4145 RFC 2047.
4146
4147 o Many more bounce formats are detected: Microsoft's SMTPSVC,
4148 Compuserve, GroupWise, SMTP32, and the more generic
4149 SimpleMatch (which catches lots of similar but slightly
4150 different formats).
4151
4152 - Defaults
4153 o Email addresses can now be obscured in Pipermail archives by
4154 setting mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS to 1 (obscuring
4155 is turned off by default). Patch provided by Chris Snell.
4156
4157 o The default NNTP host can now be set by editing
4158 mm_cfg.DEFAULT_NNTP_HOST. Patch by David Champion.
4159
4160 o The default archiving mode (public/private) can now be set
4161 by editing mm_cfg.DEFAULT_ARCHIVE. Patch by Ted Cabeen.
4162
4163 - Web UI
4164 o The variable details pages in the administrators interface
4165 is now `live', i.e. there's a submit button on the details
4166 page.
4167
4168 o A link to the administrative interface is placed in the
4169 footer of the general user pages (authentication still
4170 required, of course!)
4171
4172 o The user options change results page has a link back to the
4173 user's main page.
4174
4175 o In the admindb page (for dealing with held postings), the
4176 default forward address is now listname-owner instead of
4177 listname-admin. This avoids bounce detection on the
4178 forwarded message.
4179
4180 - Miscellaneous
4181 o Fixed config.db corruption problem when disk-full errors are
4182 encountered.
4183
4184 o Command line scripts accept list names case-insensitively.
4185
4186 o bin/remove_members takes a -a flag to remove all members of
4187 a list in one fell swoop.
4188
4189 o List admin passwords must be non-empty.
4190
4191 o Mailman generated passwords are slightly more mnemonic, and
4192 shouldn't have confusing character selections (i.e. `i'
4193 only, but no `1' or `l').
4194
4195 o Crossposting to two gated mailing lists should be fixed.
4196
4197 o Many other bug fixes and minor web UI improvements.
4198
4199 2.0 beta 5 (01-Aug-2000)
4200
4201 - Bug fix release. This includes a fix for a small security hole
4202 which could be exploited to gain mailman group access by a local
4203 user (not a mail or web user).
4204
4205 - As part of the fix for the "cookie reauthorization" bug, only
4206 session cookies are used now. This means that administrative
4207 and private archive cookies expire only when the browser session
4208 is quit, however an explicit "Logout" button has been added.
4209
4210 2.0 beta 4 (06-Jul-2000)
4211
4212 - Bug fix release.
4213
4214 2.0 beta 3 (29-Jun-2000)
4215
4216 - Delivery mechanism (qrunner) refined to support immediate
4217 queuing, queuing directly from MTA, and queuing on any error
4218 along the delivery pipeline. This means 1) that huge lists
4219 can't time out the MTA's program delivery channel; 2) it is much
4220 harder to completely lose messages; 3) eventually, qrunner will
4221 be elaborated to meter delivery to the MTA so as not to swamp
4222 it. The tradeoff is in more disk I/O since every message coming
4223 into the system (and most that are generated by the system) live
4224 on disk for some part of their journey through Mailman.
4225
4226 For now, see the Default.py variables QRUNNER_PROCESS_LIFETIME
4227 and QRUNNER_MAX_MESSAGES for primitive resource management.
4228
4229 The API to the pipeline handler modules has changed. See
4230 Mailman/Handlers/HandlerAPI.py for details.
4231
4232 - Revamped admindb web page: held messages are split into headers
4233 and bodies so they are easier to vette; admins can now also
4234 preserve a held message (for spam evidence gathering) or forward
4235 the message to a specified email address; disposition of held
4236 messages can be deferred; held messages have a more context
4237 meaningful default rejection message.
4238
4239 - Change to the semantics for `acceptable_aliases' list
4240 configuration variable, based on suggestions by Harald Meland.
4241
4242 - New mm_cfg.py variables NNTP_USERNAME and NNTP_PASSWORD can be
4243 set on a site-wide basis if connection to your nntpd requires
4244 authentication.
4245
4246 - The list attribute `num_spawns' has been removed. The mm_cfg.py
4247 variables MAX_SPAWNS, and DEFAULT_NUM_SPAWNS removed too.
4248
4249 - LIST_LOCK_LIFETIME cranked to 5 hours and LIST_LOCK_TIMEOUT
4250 shortened to 10 seconds. QRUNNER_LOCK_LIFETIME cranked up to 10
4251 hours. This should decrease the changes for bogus and harmful
4252 lock breaking.
4253
4254 - Resent-to: is now one of the headers checked for explicit
4255 destinations.
4256
4257 - Tons more bounce formats are recognized. The API to the bounce
4258 modules has changed.
4259
4260 - A rewritten LockFile module which should fix most (hopefully all)
4261 bugs in the locking machinery. Many improvements suggested by
4262 Thomas Wouters and Harald Meland.
4263
4264 - Experimental support (disabled by default) for delivering SMTP
4265 chunks to the MTA via multiple threads. Your Python executable
4266 must have been compiled with thread support enabled, and you
4267 must set MAX_DELIVERY_THREADS in mm_cfg.py. Note that this may
4268 not improve your overall system performance.
4269
4270 - Some changes and additions to scripts: bin/find_member now
4271 supports a -w/--owner flag to match regexps against mailing list
4272 owners; bin/find_member now supports multiple regexps;
4273 cron/gate_news command line option changes; new script
4274 bin/dumbdb for debugging purposes; bin/clone_member can now also
4275 remove the old address and change change the list owner
4276 addresses.
4277
4278 - The News/Mail gateway admin page has a button that lets you do
4279 an explicit catchup of the newsgroup.
4280
4281 - The CVS repository has been moved out to SourceForge. For more
4282 information, see the project summary at
4283
4284 http://sourceforge.net/project/?group_id=103
4285
4286 - Lots 'o bug fixes and some performance improvements.
4287
4288 2.0 beta 2 (07-Apr-2000)
4289
4290 - Rewritten gate_news cron script which should be more efficient
4291 and avoid race and locking problems. Each list now maintains
4292 its own watermark, and when you use the admin CGI script to turn
4293 on gating from Usenet->mail, an automatic mass catch up is done
4294 to avoid flooding the mailing list. cron/gate_news's command
4295 line interface has also changed. See its docstring for
4296 details.
4297
4298 - A new cron script called qrunner has been added to retry message
4299 deliveries that fail because of temporary smtpd problems.
4300
4301 - New command line script called bin/list_lists which does exactly
4302 that: lists all the mailing lists on the system (much like the
4303 listinfo CGI does).
4304
4305 - bin/withlist is now directly executable, however if you want to
4306 use python -i, you must still explicitly invoke it.
4307 bin/withlist also now cleans up after itself by unlocking any
4308 locked lists. It does NOT save any dirty lists though - you
4309 must do this explicitly.
4310
4311 - $prefix permissions (and all subdirs) must now be 02775.
4312 bin/check_perms has been updated to fix all the subdir
4313 permissions.
4314
4315 - "make update" (a.k.a. bin/update) is run automatically when you
4316 do a "make install"
4317
4318 - The CGI driver script now puts information about the Python
4319 environment into the logs/error file (but not the diagnostic web
4320 page).
4321
4322 - Bug fixes and some performance improvements
4323
4324 2.0 beta 1 (19-Mar-2000)
4325
4326 - Python 1.5.2 (or newer) is now required.
4327
4328 - A new bundled auto-responder has been added. You can now
4329 configure an autoresponse text for each list's primary
4330 addresses:
4331
4332 listname@yourhost.com -- the general posting address
4333 listname-request@... -- the automated "request bot" address
4334 listname-admin@... -- the human administrator address
4335
4336 - The standard UI now includes three logos at the bottom of the
4337 page: Dragon's Mailman logo, the Python Powered logo, and the
4338 GNU logo. All point to their respective home pages.
4339
4340 - It is now possible to set the Reply-To: field on lists to an
4341 arbitrary address. NOTE: Reply-To: munging is generally
4342 considered harmful! However for some read-only lists, it is
4343 useful to direct replies to a parallel discussion list.
4344
4345 - There is a new message delivery architecture which uses a
4346 pipeline processor for incoming and internally generated
4347 messages. Mailman no longer contains a bundled bulk-mailer;
4348 instead message delivery is handled completely by the MTA. Most
4349 MTAs give a high enough priority to connections from the
4350 localhost that mail will not be lost because of system load, but
4351 this is not guaranteed (or handled) by Mailman currently. Be
4352 careful also if your smtpd is on a different host than the
4353 Mailman host. In practice, mail lossage has not be observed.
4354
4355 For this reason cron/run_queue is no longer needed (see the
4356 UPGRADING file for details).
4357
4358 Also, you can choose whether you want direct smtp delivery, or
4359 delivery via the command line to a sendmail-compatible daemon.
4360 You can also easily add your own delivery module. See
4361 Mailman/Defaults.py for details.
4362
4363 - A similar pipeline architecture for the parsing of bounce
4364 messages has been added. Most common bounce formats are now
4365 handled, including Qmail, Postfix, and DSN. It is now much
4366 easier to add new bounce detectors.
4367
4368 - The approval pending architecture has also been revamped.
4369 Subscription requests and message posts waiting for admin
4370 approval are no longer kept in the config.db file, but in a
4371 separate requests.db file instead.
4372
4373 - Finally made consistent the use of Sender:/From:/From_ in the
4374 matching of headers for such things as member-post-only. Now,
4375 if USE_ENVELOPE_SENDER is true, Sender: will always be chosen
4376 over From:, however the default has been changed to
4377 USE_ENVELOPE_SENDER false so that From: is always chosen over
4378 Sender:. In both cases, if no header is found, From_ (i.e. the
4379 envelope sender is used). Note that the variable is now
4380 misnamed! Most people want From: matching anyway and any are
4381 easily spoofable.
4382
4383 - New scripts bin/move_list, bin/config_list
4384
4385 - cron/upvolumes_yearly, cron/upvolumes_monthly, cron/archive,
4386 cron/run_queue all removed. Edit your crontab if you used these
4387 scripts. Other scripts removed: contact_transport, deliver,
4388 dumb_deliver.
4389
4390 - Several web UI improvements, especially in the admin page.
4391
4392 - Remove X-pmrqc: headers to prevent return reciepts for Pegasus
4393 mail users.
4394
4395 - Security patch when using external archivers.
4396
4397 - Honor "X-Archive: No" header by not putting this message in the
4398 archive.
4399
4400 - Changes to the log file format.
4401
4402 - The usual bug fixes.
4403
4404 1.1 (05-Nov-1999)
4405
4406 - All GIFs removed. See http://www.gnu.org/philosophy/gif.html
4407 for the reason why.
4408
4409 - Improvements to the Pipermail archiver which make things faster.
4410 Primary change is that the .txt files are not gzipped on every
4411 posted message. Instead, use the new cron script `nightly_gzip'
4412 to gzip the .txt file in batches (this means that the .txt file
4413 will lag behind the on-line archives a little).
4414
4415 - From the C drivers programs, Python is invoked with the -S
4416 option. This tells Python to avoid importing the site module,
4417 which can improve start up time of the Python process
4418 considerably. Note that the command line script invocation has
4419 not been changed.
4420
4421 - New configuration variables PUBLIC_EXTERNAL_ARCHIVER and
4422 PRIVATE_EXTERNAL_ARCHIVER which can contain a shell command
4423 string for os.popen(). This can be used to invoke an external
4424 archiver instead of the bundled Pipermail archiver. See
4425 Defaults.py for details.
4426
4427 - new script `bin/find_member' which can be used to search for a
4428 member by regular expression.
4429
4430 - More child processes are reaped, which should eliminate most
4431 occurrences of zombie processes.
4432
4433 - A few small miscellaneous bug fixes (including PR#99, PR#107)
4434 and improvements to the file locking algorithms.
4435
4436 1.0 (30-Jul-1999)
4437
4438 - Configure script now allows $PREFIX (by default /home/mailman)
4439 to be permissions 02755. Also, configure now tests for
4440 vsnprintf()
4441
4442 - Workaround, taken from GNU screen, for systems missing
4443 vsnprintf()
4444
4445 - Return-Receipt-To: and Disposition-Notification-To: headers are
4446 always removed from posted messages (they can be used to troll
4447 for list membership).
4448
4449 - Workaround for MSIE4.01 (and possibly other versions) bug in the
4450 handling of cookies.
4451
4452 - A small collection of other bug fixes.
4453
4454 1.0rc3 (10-Jul-1999)
4455
4456 - new script bin/check_perms which checks (and optionally fixes)
4457 the permissions and group ownerships of the files in your
4458 Mailman installation.
4459
4460 - Removed a bottleneck in the archiving code that was causing
4461 performance problems on highly loaded servers.
4462
4463 - The code that saves a list's state and configuration database
4464 has been made more robust.
4465
4466 - Additional exception handlers have been added in several places
4467 to alleviate problems with Mailman bombing out when it really
4468 would be better to print/log a helpful message.
4469
4470 - The "password" mail command will now mail back the sender's
4471 subscription password when given with no arguments.
4472
4473 - The embarrassing subject-prefixing bug present in rc2 has been
4474 fixed.
4475
4476 - A small (but nice :) collection of other squashed bugs.
4477
4478 1.0rc2 (14-Jun-1999)
4479
4480 - A security flaw in the CGI cookie mechanisms was discovered --
4481 the Mailman-issued cookies were easily spoofable, implying that
4482 e.g. admin access to all Mailman lists via the web interface
4483 could be compromised. This flaw has now been fixed.
4484
4485 - Handling of SMTP errors has been improved.
4486
4487 - Both "Mass Subscription" via web admin interface and
4488 bin/add_members have been greatly sped up.
4489
4490 - autoconf check for syslog has been revamped, and is now verified
4491 to work on SCO OpenServer 5. If syslog can't be found, the C
4492 wrappers will compile, but without any syslog calls.
4493
4494 - Various other bug fixes.
4495
4496 1.0rc1 (04-May-1999)
4497
4498 - There is a new Mailman logo, contributed by The Dragon De
4499 Monsyne. Please read the INSTALL file for information about
4500 installing the logo in a place your Web server can find it.
4501
4502 - USE_ENVELOPE_SENDER is now set to 0 by default. Turning this on
4503 caused problems for too many users; lists restricted to
4504 member-only posts were not matching the addresses correctly.
4505
4506 - A revamped bin/withlist to be a little more useful.
4507
4508 - A revamped cron/mailpasswds which groups users by virtual hosts.
4509
4510 - The usual assortment of bug fixes.
4511
4512 1.0b11 (03-Apr-1999)
4513
4514 - Bug fixes and improvements for case preservation of subscribed
4515 addresses. The DATA_FILE_VERSION has been bumped to 14.
4516
4517 - New script bin/withlist, useful for interactive debugging.
4518
4519 1.0b10 (26-Mar-1999)
4520
4521 - New script bin/sync_members which can be used to synchronize a
4522 list's membership against a flat (e.g. sendmail :include: style)
4523 file.
4524
4525 - bin/add_members and bin/remove_members now accept addresses on
4526 the command line with `-' as the value for the -d and -n
4527 options.
4528
4529 - Added variable USE_ENVELOPE_SENDER to Defaults.py for site-wide
4530 configuration of address matching scheme. With this variable
4531 set to true, the envelope sender (e.g. Unix "From_" header) is
4532 used to match addresses, otherwise the From: header is used.
4533 Envelope sender matching seems not to work on many systems.
4534 This variable is currently defaulted to 1, but may change to 0
4535 for the final release.
4536
4537 - Reorganization of the membership management admin page. Also
4538 member addresses are linked to their options page. Only the
4539 `General' category has the admin password change form.
4540
4541 - Major reorganization of email command handling and responses.
4542 `notmetoo' is the preferred email command instead of `norcv',
4543 although the latter is still accepted as an argument. If more
4544 than 5 errors are found in the message, command processing is
4545 halted.
4546
4547 - User options page now shows the user their case-preserved
4548 subscribed address as well.
4549
4550 - The usual assortment of bug fixes.
4551
4552 1.0b9 (01-Mar-1999)
4553
4554 - New bin scripts: clone_member, list_members, add_members (a
4555 consolidation of convertlist and populate_new_list which have
4556 been removed).
4557
4558 - Two new readmes have been added: README.LINUX and README.QMAIL
4559
4560 - New configure option --with-cgi-ext which can be used if your
4561 Web server requires extensions on CGI scripts. The extension
4562 must include a dot (e.g. --with-cgi-ext=".cgi").
4563
4564 - Many bug fixes, including the setgid problem that was causing
4565 mail to be lost on some versions of Linux.
4566
4567 1.0b8 (14-Jan-1999)
4568
4569 - Bug fixes and workarounds for certain Linuxes.
4570
4571 - Illegal addresses are no longer allowed to be subscribed, from
4572 any interface.
4573
4574 1.0b7 (31-Dec-1998)
4575
4576 - Many, many bug fixes. Some performance improvements for large
4577 lists. Some improvements in the Web interfaces. Some security
4578 improvements. Improved compatibility with Python 1.5.
4579
4580 - bin/convert_list and bin/populate_new_list have been replaced
4581 by bin/add_members.
4582
4583 - Admins can now get notification on subscriptions and
4584 unsubscriptions. Posts are now logged.
4585
4586 - The username portion of email addresses are now case-preserved
4587 for delivery purposes. All other address comparisions are
4588 case-insensitive.
4589
4590 - New default SMTP_MAX_RCPTS that limits the number of "RCPT TO"
4591 SMTP commands that can be given for a single message. Most
4592 MTAs have some hard limit.
4593
4594 - "Precedence: bulk" header and "List-id:" header are now added
4595 to all outgoing messages. The latter is not added if the
4596 message already has a "List-id:" header. See RFC 2046 and
4597 draft-chandhok-listid-02 for details.
4598
4599 - The standard (as of Python 1.5.2) smtplib.py is now used.
4600
4601 - The install process now compiles all the .py files in the
4602 installation.
4603
4604 - Versions of the Mailman papers given at IPC7 and LISA-98 are
4605 now included.
4606
4607 1.0b6 (07-Nov-1998)
4608
4609 - Archiving is (finally) back in.
4610
4611 - Administrivia filter added.
4612
4613 - Mail queue mechanism revamped with better concurrency control.
4614
4615 - For recipients that have estmp MTAs, set delivery notification
4616 status so that only delivery failure notices are sent out,
4617 inhibiting 4 hour and N day warning notices.
4618
4619 - Now expire old unconfirmed subscription requests, rather than
4620 keeping them forever.
4621
4622 - Added proposed standard List-Id: header, and our own
4623 X-MailmanVersion header.
4624
4625 - Prevent havoc from attempts to subscribe a list to itself. (!)
4626
4627 - Refine mail command processing to prevent loops.
4628
4629 - Pending subscription DB redone with better locking and cleaner
4630 interface.
4631
4632 - posters functionality expanded.
4633
4634 - Subscription policy more flexible, sensible, and
4635 site-configurable.
4636
4637 - Various and sundry bug fixes.
4638
4639 1.0b5 (27-Jul-1998)
4640
4641 - New file locking that should be portable and work w/ NFS.
4642
4643 - Better use of packages.
4644
4645 - Better error logging and reporting.
4646
4647 - Less startup overhead.
4648
4649 - Various and sundry bug fixes.
4650
4651
4652 1.0b4 (03-Jun-1998)
4653
4654 - A configure script for easy installation (Barry Warsaw)
4655
4656 - The ability to install Mailman to locations other than
4657 /home/mailman (Barry Warsaw)
4658
4659 - Use cookies on the admin pages (also hides admin pages from
4660 others) (Scott Cotton)
4661
4662 - Subscription requests send a request for confirmation, which may
4663 be done by simply replying to the message (Scott Cotton)
4664
4665 - Facilities for gating mail to a newsgroup, and for gating a
4666 newsgroup to a mailing list (John Viega)
4667
4668 - Contact the SMTP port instead of calling sendmail (primarily for
4669 portability) (John Viega)
4670
4671 - Changed all links on web pages to relative links where appropriate.
4672 (John Viega)
4673
4674 - Use MD5 if crypt is not available (John Viega)
4675
4676 - Lots of fixing up of bounce handling (Ken Manheimer)
4677
4678 - General UI polishing (Ken Manheimer)
4679
4680 - mm_html: Make it prominent when the user's delivery is disabled
4681 on his option page. (Ken Manheimer)
4682
4683 - mallist:DeleteMember() Delete the option setings if any. (Ken
4684 Manheimer)
4685
4686 1.0b3 (03-May-1998)
4687
4688 - mm_message:Deliverer.DeliverToList() added missing newline
4689 between the headers and message body. Without it, any sequence
4690 of initial body lines that _looked_ like headers ("Sir: Please
4691 excuse my impertinence, but") got treated like headers.
4692
4693 - Fixed typo which broke subscription acknowledgement message
4694 (thanks to janne sinkonen for pointing this out promptly after
4695 release). (Anyone who applied my intermediate patch will
4696 probably see this one trigger patch'es reversed-patch
4697 detector...)
4698
4699 - Fixed cgi-wrapper.c so it doesn't segfault when invoked with
4700 improper uid or gid, and generally wrappers are cleaned up a
4701 bit.
4702
4703 - Prevented delivery-failure notices for misdirected subscribe-
4704 confirmation requests from bouncing back to the -request addr,
4705 and then being treated as failing requests.
4706
4707 Implemented two measures. Set the reply-to for the
4708 confirmation- request to the -request addr, and the sender to be
4709 the list admin. This way, bounces go to list admin instead of
4710 to -request addr. (Using the errors-to header wasn't
4711 sufficient. Thanks, barry, for pointing out the use of sender
4712 here.) Second, ignore any mailcommands coming from postmaster
4713 or non-login system type accounts (mailer-daemon, daemon,
4714 postoffice, etc.)
4715
4716 - Reenabled admin setting of web_page_url - crucial for having
4717 lists use alternate names of a host that occupies multiple
4718 addresses.
4719
4720 - Fixed and refined admin-options help mechanism. Top-level visit
4721 to general-category (where the "general" isn't in the URL) was
4722 broken. New help presentation shows the same row that shows on
4723 the actual options page.
4724
4725 - cron/crontab.in crontab template had wrong name for senddigests.
4726
4727 - Default digest format setting, as distributed, is now non-MIME,
4728 on urging of reasoned voices asserting that there are still
4729 enough bad MIME implementations in the world to be a nuisance to
4730 too many users if MIME is the default. Sigh.
4731
4732 - MIME digests now preserve the structure of MIME postings,
4733 keeping attachments as attachments, etc. They also are more
4734 structured in general.
4735
4736 - Added README instructions explaining how to determine the right
4737 UID and GID settings for the wrapper executables, and improved
4738 some of the explanations about exploratory interaction
4739 w/mailman.
4740
4741 - Removed the constraint that subscribers have their domain
4742 included in a static list in the code. We might want to
4743 eventually reincorporate the check for the sake of a warning
4744 message, to give a heads up to the subscriber, but try delivery
4745 anyway...
4746
4747 - Added missing titles to error docs.
4748
4749 - Improved several help details, including particularly explaining
4750 better how real_name setting is used.
4751
4752 - Strengthened admonition against setting reply_goes_to_list.
4753
4754 - Added X-BeenThere header to postings for the sake of prevention
4755 of external mail loops.
4756
4757 - Improved handling of bounced messages to better recognize
4758 members address, and prevent duplicate attempts to react (which
4759 could cause superfluous notices to administrator).
4760
4761 - Added __delitem__ method to mm_message.OutgoingMessage, to fix
4762 the intermediate patch posted just before this one.
4763
4764 - Using keyword substitution format for more message text (ie,
4765 "substituting %(such)s into text" % {'such': "something"}) to
4766 make the substitutions less fragile and, presumably, easier to
4767 debug.
4768
4769 - Removed hardwired (and failure-prone) /tmp file logging from
4770 answer.majordomo_mail, and generally spiffed up following janne
4771 sinkkonen's lead.
4772
4773 1.0b2 (13-Apr-1998)
4774 1.0b1 (09-Apr-1998)
4775
4776 Web pages much more polished
4777 - Better organized, text more finely crafted
4778 - Easier, more refined layout
4779 - List info and admin interface overviews, enumerate all public lists
4780 (via, e.g., http://www.python.org/mailman/listinfo - sans the
4781 specific list)
4782 - Admin interface broken into sections, with help elaboration for
4783 complicated configuration options
4784
4785 Mailing List Archives
4786 - Integrated with a newer, *much* improved, external pipermail - to be
4787 found at http://starship.skyport.net/crew/amk/maintained/pipermail.html
4788 - Private archives protected with mailing list members passwords,
4789 cookie-fied.
4790
4791 Spam prevention
4792 - New spam prevention measures catch most if not all spam without
4793 operator intervention or general constraints on who can post to
4794 list:
4795 require_explicit_destination option imposes hold of any postings
4796 that do not have the list name in any of the to or cc header
4797 destination addresses. This catches the vast majority of random
4798 spam.
4799 Other options (forbidden_posters, bounce_matching_headers) provide
4800 for filtering of known transgressors.
4801 - Option obscure_addresses (default on) causes mailing list subscriber
4802 lists on the web to be slightly mangled so they're not directly
4803 recognizable as email address by web spiders, which might be
4804 seeking targets for spammers.
4805
4806 Site configuration arrangement organized - in mailman/mailman/modules:
4807 - When installing, create a mailman/modules/mm_cfg.py (if there's not
4808 one already there), using mm_cfg.py.dist as a template.
4809 mm_default.py contains the distributed defaults, including
4810 descriptions of the values. mm_cfg.py does a 'from mm_defaults.py
4811 import *' to get the distributed defaults. Include settings in
4812 mm_cfg.py for any values in mm_defaults.py that need to be
4813 customized for your site, after the 'from .. import *'.
4814 See mm_cfg.py.dist for more details.
4815
4816 Logging
4817 - Major operations (subscription, admin approval, bounce,
4818 digestification, cgi script failure tracebacks) logged in files
4819 using a reliable mechanism
4820 - Wrapper executables log authentication complaints via syslog
4821
4822 Wrappers
4823 - All cgi-script wrapper executables combined in a single source,
4824 easier to configure. (Mail and aliases wrappers separate.)
4825
4826 List structure version migration
4827 - Provision for automatic update of list structures when moving to a
4828 new version of the system. See modules/versions.py.
4829
4830 Code cleaning
4831 - Many more module docstrings, __version__ settings, more function
4832 docstrings.
4833 - Most unqualified exception catches have been replaced with more
4834 finely targeted catches, to avoid concealing bugs.
4835 - Lotsa long lines wrapped (pet peeve:).
4836
4837 Random details (not complete, sorry):
4838 - make archival frequency a list option
4839 - Option for daily digest dispatch, in addition to size threshhold
4840 - make sure users only get one periodic password notifcation message for
4841 all the lists they're on (repaired 1.0b1.1 varying-case mistake)
4842 - Fix rmlist sans-argument bug causing deletion of all lists!
4843 - doubled generated random passwords to four letters
4844 - Cleaned lots and lots of notices
4845 - Lots and lots of html page cleanup, including table-of-contents, etc
4846 - Admin options sections - don't do the "if so" if the ensuing list
4847 is empty
4848 - Prevent list subject-prefix cascade
4849 - Sources under CVS
4850 - Various spam filters - implicit-destination, header-field
4851 - Adjusted permissions for group access
4852 - Prevent redundant subscription from redundant vetted requests
4853 - Instituted centralize, robustish logging
4854 - Wrapper sources use syslog for logging (john viega)
4855 - Sorting of users done on presentation, not in list.
4856 - Edit options - give an error for non-existent users, not an options page.
4857 - Bounce handling - offer 'disable' option, instead of remove, and
4858 never remove without notifying admin
4859 - Moved subscribers off of listinfo (and made private lists visible
4860 modulo authentication)
4861 - Parameterize default digest headers and footers and create some
4862 - Put titles on cgi result pages that do not get titles (all?)
4863 - Option for immediate admin notifcation via email of pending
4864 requests, as well as periodic
4865 - Admin options web-page help
4866 - Enabled grouped and cascading lists despite implicit-name constraint
4867 - Changed subscribers list so it has its own script (roster)
4868 - Welcome pages: http://www.python.org/mailman/{admin,listinfo}/
4869
4870 0.95 (25-Jan-1997)
4871 - Fixed a bug in sending out digests added when adding disable mime option.
4872 - Added an option to not notify about bounced posts.
4873 - Added hook for pre-posting filters. These could be used to
4874 auto-strip signatures. I'm using the feature to auto-strip footers
4875 that are auto-generated by mail received from another mailing list.
4876
4877 0.94 (22-Jan-1997)
4878 - Made admin password work ubiquitously in place of a user password.
4879 - Added an interface for getting / setting user options.
4880 - Added user option to disable mime digests (digested people only)
4881 - Added user option to not receive your own posts (nondigested people only)
4882 - Added user option to ack posts
4883 - Added user option to disable list delivery to their box.
4884 - Added web interface to user options
4885 - Config number of sendmail spawns on a per-list basis
4886 - Fixed extra space at beginning of each message in digests...
4887 - Handled comma separated emails in bounce messages...
4888 - Added a FindUser() function to MailList. Used it where appropriate.
4889 - Added mail interface to setting list options.
4890 - Added name links to the templates options page
4891 - Added an option so people can hide their names from the subscription list.
4892 - Added an answer_majordomo_mail script for people switching...
4893
4894 0.93 (18/20-Jan-1997)
4895 - When delivering to list, don't call sendmail directly. Write to a file,
4896 and then run the new deliver script, which forks and exits in the parent
4897 immediately to avoid hanging when delivering mail for large lists, so that
4898 large lists don't spend a lot of time locked.
4899 - GetSender() no longer assumes that you don't have an owner-xxx address.
4900 - Fixed unsubscribing via mail.
4901 - Made subscribe via mail generate a password if you don't supply one.
4902 - Added an option to clobber the date in the archives to the date the list
4903 resent the post, so that the archive doesn't get mail from people sending
4904 bad dates clumped up at the beginning or end.
4905 - Added automatic error message processing as an option. Currently
4906 logging to /tmp/bounce.log
4907 - Changed archive to take a list as an argument, (the old way was broken)
4908 - Remove (ignore) spaces in email addresses
4909 - Allow user passwords to be case insensitive.
4910 - Removed the cleanup script since it was now redundant.
4911 - Fixed archives if there were no archives.
4912 - Added a Lock() call to Load() and Create(). This fixes the
4913 problem of loading then locking.
4914 - Removed all occurances of Lock() except for the ones in mailing
4915 list since creating a list
4916 now implicitly locks it.
4917 - Quote single periods in message text.
4918 - Made bounce system handle digest users fairly.
4919
4920 0.92 (13/16-Jan-1997)
4921 - Added Lock and Unlock methods to list to ensure each operation is atomic
4922 - Added a cmd that rms all files of a mailing list (but not the aliases)
4923 - Fixed subscribing an unknown user@localhost (confirm this)
4924 - Changed the sender to list-admin@... to ensure we avoid mail loops.
4925 - check to make sure there are msgs to archive before calling pipermail.
4926 - started using this w/ real mailing lists.
4927 - Added a cron script that scours the maillog for User/Host unknown errs
4928 - Sort membership lists
4929 - Always display digest_is_default option
4930 - Don't slam the TO list unless you're sending a digest.
4931 - When making digest summaries, if missing sender name, use their email.
4932 - Hacked in some protection against crappy dates in pipermail.py
4933 - Made it so archive/digest volumes can go up monthly for large large lists.
4934 - Number digest messages
4935 - Add headers/footers to each message in digest for braindead mailers
4936 - I removed some forgotten debug statements that caused server errors
4937 when a CGI script sent mail.
4938 - Removed loose_matches flag, since everything used it.
4939 - Fixed a problem in pipermail if there was no From line.
4940 - In upvolume_ scripts, remove INDEX files as we leave a volume.
4941 - Threw a couple of scripts in bin for generating archives from majordomo's
4942 digest-archives. I wouldn't recommend them for the layman, though, they
4943 were meant to do a job quickly, not to be usable.
4944
4945 0.91 (23-Dec-1996)
4946 - broke code into mixins for managability
4947 - tag parsing instead of lots of gsubs
4948 - tweaked pipermail (see comments on pipermail header)
4949 - templates are now on a per-list basis as intended.
4950 - request over web that your password be emailed to you.
4951 - option so that web subscriptions require email confirmation.
4952 - wrote a first pass at an admin interface to configurable variables.
4953 - made digests mime-compliant.
4954 - added a FakeFile class that simulates enough of a file object on a
4955 string of text to fool rfc822.Message in non-seek mode.
4956 - changed OutgoingMessage not to require its args in constructor.
4957 - added an admin request DB interface.
4958 - clearly separated the internal name from the real name.
4959 - replaced lots of ugly, redundant code w/ nice code.
4960 (added Get...Email() interfaces, GetScriptURL, etc...)
4961 - Wrote a lot of pretty html formatting functions / classes.
4962 - Fleshed out the newlist command a lot. It now mails the new list
4963 admin, and auto-updates the aliases file.
4964 - Made multiple owners acceptable.
4965 - Non-advertised lists, closed lists, max header length, max msg length
4966 - Allowed editing templates from list admin pages.
4967 - You can get to your info page from the web even if the list is closed.
4968
4969
4970 Local Variables:
4971 mode: indented-text
4972 indent-tabs-mode: nil
4973 End: