1
Mailman - The GNU Mailing List Management System
2
Copyright (C) 1998-2004 by the Free Software Foundation, Inc.
3
59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
5
Here is a history of user visible changes to Mailman.
9
- The admindb page has a checkbox that allows you to discard all held
10
messages that are marked Defer. On heavy lists with lots of spam holds,
11
this makes clearing them much faster.
13
- The qrunner system has changed to use only one file per message.
14
However the configuration variable METADATA_FORMAT has been removed, and
15
support for SAVE_MSGS_AS_PICKLES has been changed. The latter no longer
16
writes messages as plain text. Instead, they are stored as pickles of
17
plain strings, using the text pickle format. This still makes them
18
non-binary files readable and editable by humans.
20
bin/dumpdb also works differently. It will print out the entire pickle
21
file (with more verbosity) and if used with 'python -i', it binds msg to
22
a list of all objects found in the pickle file.
24
Removed from Defaults.py: PENDINGDB_LOCK_TIMEOUT,
25
PENDINGDB_LOCK_ATTEMPTS, METAFMT_MARSHAL, METAFMT_BSDDB_NATIVE,
26
METAFMT_ASCII, METADATA_FORMAT
28
- The bounce processor has been redesigned so that now when an address's
29
bounce score reaches the threshold, that address will be sent a probe
30
message. Only if the probe bounces will the address be disabled. The
31
score is reset to zero when the probe is sent. Also, bounce events are
32
now kept in an event file instead of in memory. This should help
33
contain the bloat of the BounceRunner.
35
New supporting variables in Defaults.py: VERP_PROBE_FORMAT,
38
REGISTER_BOUNCES_EVERY is promoted to a Defaults.py variable.
40
- The pending database has been changed from a global pickle file, to a
41
unique pickle file per mailing list.
43
- The 'request' database file has changed from a marshal, to the more
46
- Disallow multiple password retrievals.
48
- SF patch #810675 which adds a "Discard all messages marked Defer" button
49
for faster admindb maintenance.
51
- The email package is updated to version 2.5.5.
53
- New language: Turkish.
55
- Bugs and patches: 869644, 869647 (NotAMemberError for old cookie data),
56
878087 (bug in Slovenian catalog), 899263 (ignore duplicate pending
57
ids), 810675 (discard all defers button)
61
- Close some cross-site scripting vulnerabilities in the admin pages
64
- New languages: Catalan, Croatian, Romanian, Slovenian.
66
- New mm_cfg.py/Defaults.py variable PUBLIC_MBOX which allows the site
67
administrator to disable public access to all the raw list mbox files
68
(this is not a per-list configuration).
70
- Expanded header filter rules under Privacy -> Spam Filters. Now you can
71
specify regular expression matches against any header, with specific
72
actions tied to those matches.
74
- Rework the SMTP error handling in SMTPDirect.py to avoid scoring bounces
75
for all recipients when a permanent error code is returned by the mail
76
server (e.g. because of content restrictions).
78
- Promoted SYNC_AFTER_WRITE to a Default.py/mm_cfg.py variable and
79
make it control syncing on the config.pck file. Also, we always flush
80
and sync message files.
82
- Reduce archive bloat by not storing the HTML body of Article objects in
83
the Pipermail database. A new script bin/rb-archfix was added to clean
86
- Proper RFC quoting for List-ID descriptions.
88
- PKGDIR can be passed to the make command in order to specify a different
89
directory to unpack the distutils packages in misc. (SF bug 784700).
91
- Improved logging of the origin of subscription requests.
93
- Bugs and patches: 832748 (unsubscribe_policy ignored for unsub button on
94
member login page), 846681 (bounce disabled cookie was always out of
95
date), 835870 (check VIRTUAL_HOST_OVERVIEW on through the web list
96
creation), 835036 (global address change when the new address is already
97
a member of one of the lists), 833384 (incorrect admin password on a
98
hold message confirmation attachment would discard the message), 835012
99
(fix permission on empty archive index), 816410 (confirmation page
100
consistency), 834486 (catch empty charsets in the scrubber), 777444 (set
101
the process's supplemental groups if possible), 860135 (ignore
102
DiscardMessage exceptions during digest scrubbing), 828811 (reduce
103
process size for list and admin overviews), 864674/864676 (problems
104
accessing private archives and rosters with admin password), 865661
105
(Tokio Kikuchi's i18n patches), 862906 (unicode prefix leak in admindb),
106
841445 (setting new_member_options via config_list), n/a (fixed email
107
command 'set delivery')
111
Performance, Reliability, Security
113
- Closed a cross-site scripting exploit in the create cgi script.
115
- Improvements in the performance of the bounce processor.
116
Now, instead of processing each bounce immediately (which
117
can cause severe lock contention), bounce events are queued.
118
Every 15 minutes by default, the queued bounce events are
119
processed en masse, on a list-per-list basis, so that each
120
list only needs to be locked once.
122
- When some or all of a message's recipients have temporary
123
delivery failures, the message is moved to a "retry" queue.
124
This queue wakes up occasionally and moves the file back to
125
the outgoing queue for attempted redelivery. This should
126
fix most observed OutgoingRunner 100% cpu consumption,
127
especially for bounces to local recipients when using the
130
- Optional support for fsync()'ing qfile data after writing.
131
Under some catastrophic system failures (e.g. power lose),
132
it would be possible to lose messages because the data
133
wasn't sync'd to disk. By setting SYNC_AFTER_WRITE to True
134
in Mailman/Queue/Switchboard.py, you can force Mailman to
135
fsync() queue files after flushing them. The benefits are
136
debatable for most operating environments, and you must
137
ensure that your Python has the os.fsync() function defined
138
before enabling this feature (it isn't, even on all
139
Unix-like operating systems).
143
- New languages Ukrainian, Serbian, Danish, Euskara/Basque.
145
- Fixes to template lookup. Lists with local overriding
146
templates would find the wrong template.
148
- .mo files (for internationalization) are now generated at
149
build time instead of coming as part of the source
154
- A first draft of member documentation by Terri Oda. There
155
is also a Japanese translation of this manual by Ikeda Soji.
159
- In the configuration variables PUBLIC_EXTERNAL_ARCHIVER, and
160
PRIVATE_EXTERNAL_ARCHIVER, %(hostname)s has been added to
161
the list of allowable substitution variables.
163
- The timezone is now taken into account when figuring the
164
posting date for an article.
168
- Fixes to cron/disabled for NotAMemberError crashes.
170
- New script bin/show_qfiles which prints the contents of .pck
171
message files. New script bin/discard which can be used to
172
mass discard held messages.
174
- Fixes to cron/mailpasswds to account for old password-less
177
- bin/list_members has grown two new options: --invalid/-i
178
prints only the addresses in the member database that are
179
invalid (which could have snuck in via old releases);
180
--unicode/-u prints addresses which are stored as Unicode
181
objects instead of as normal strings.
185
- Fixes to problems in some configurations where Python wouldn't
186
be able to find its standard library.
188
- Fixes to the digest which could cause MIME-losing missing
189
newlines when parts are scrubbed via the content filters.
191
- In the News/Mail gateway admin page, the configuration variable
192
nntp_host can now be a name:port pair.
194
- When messages are pulled from NNTP, the member moderation checks
197
- email 2.5.4 is included. This fixes an RFC 2231 bug, among
200
- Fixed some extra spaces that could appear in the List-ID header.
202
- Fixes to ensure that invalid email addresses can't be invited.
204
- WEB_LINK_COLOR in Defaults.py/mm_cfg.py should now work.
206
- Fixes so that shunted message file names actually match
207
those logged in log/errors.
209
- An improved pending action cookie generation algorithm has
212
- Fixes to the DSN bounce detector.
214
- The usual additional u/i, internationalization, unicode, and
215
other miscellaneous fixes.
219
- New languages Portuguese (Portugal) and Polish.
221
- Many convenient constants have been added to the Defaults.py
222
module to (hopefully) make it more readable.
224
- Email addresses which contain 8-bit characters in them are now
225
rejected and won't be subscribed. This is not the same as 8-bit
226
characters in the realname, which is still allowed.
228
- The X-Originating-Email header is removed for anonymous lists.
229
Hotmail apparently adds this header.
231
- When running make to build Mailman, you can specify $DESTDIR to
232
the install target to specify an alternative location for
233
installation, without influencing the paths stored in
234
e.g. Defaults.py. This is useful to package managers.
236
- New Defaults.py variable DELIVERY_RETRY_WAIT which controls how
237
long the outgoing qrunner will wait before it retries a
238
tempfailure delivery.
240
- The semantics for the extend.py hook to MailList objects has
241
changed slightly. The hook is now called before attempting to
242
lock and load the database.
244
- Mailman now uses the email package version 2.5.1
246
- bin/transcheck now checks for double-%'s
248
- bin/genaliases grew a -q / --quiet flag
250
- cron/checkdbs grew a -h / --help option.
252
- The -c / --change-msg option has been removed from bin/add_members
254
- bin/msgfmt.py has been added, taken from Python 2.3's Tools/i18n
255
directory. The various .mo files are now no longer distributed
256
with Mailman. They are generated at build time instead.
258
- A new file misc/sitelist.cfg which can be used with
259
bin/config_list provides a small number of recommended settings
260
for your site list. Be sure to read it over before applying!
261
sitelist.cfg is installed into the data directory.
263
- Many bug fixes, including these SourceForge bugs closed and
264
patches applied: 677668, 690448, 700538, 700537, 673294, 683906,
265
671294, 522080, 521124, 534297, 699900, 697321, 695526, 703941,
266
658261, 710678, 707608, 671303, 717096, 694912, 707624, 716755,
267
661138, 716754, 716702, 667167, 725369, 726415
272
Lots of bug fixes and language updates. Also:
274
- Closed a cross-site scripting vulnerability in the user options page.
276
- Restore the ability to control which headers show up in messages
277
included in plaintext and MIME digests. See the variables
278
PLAIN_DIGEST_KEEP_HEADERS and MIME_DIGEST_KEEP_HEADERS in
281
- Messages included in the plaintext digests are now sent through
282
the scrubber to remove (and archive) attachments. Otherwise,
283
attachments would screw up plaintext digests. MIME digests
284
include the attachments inline.
286
2.1 final (30-Dec-2002)
288
Last minute bug fixes and language updates.
290
2.1 rc 1 (24-Dec-2002)
292
Bug fixes and language updates. Also,
294
- Lithuanian support has been added.
296
- bin/remove_members grew --nouserack and --noadminack switches
298
- configure now honors --srcdir
300
2.1 beta 6 (09-Dec-2002)
302
Lots and lots of bug fixes, and translation updates. Also,
304
- ARCHIVER_OBSCURES_EMAILADDRS is now set to true by default.
306
- QRUNNER_SAVE_BAD_MESSAGES is now set to true by default.
308
- Bounce messages which were recognized, but in which no member
309
addresses were found are no longer forwarded to the list
312
- bin/arch grew a --wipe option which first removes the entire old
313
archive before regenerating the new one.
315
- bin/mailmanctl -u now prints a warning that permission problems
316
could appear, such as when trying to delete a list through the
317
web that has some archives in it.
319
- bin/remove_members grew --nouserack/-n and -noadminack/-N options.
321
- A new script bin/list_owners has been added for printing out
322
list owners and moderators.
324
- Dates in the web version of archived messages are now relative
325
to the local timezone, and include the timezone names, when
328
2.1 beta 5 (19-Nov-2002)
330
As is typical for a late beta release, this one includes the usual
331
bug fixes, tweaks, and massive new features (just kidding).
333
IMPORTANT: If you are using Pipermail, and you have any archives
334
that were created or added to in 2.1b4, you will need to run
335
bin/b4b5-archfix, followed by bin/check_perms to fix some serious
336
performance problems. From you install directory, run
337
"bin/b4b5-archfix --help" for details.
339
- The personalization options have been tweaked to provide more
340
control over mail header and decoration personalizations. In
341
2.1b4, when personalization was enabled, the To and Cc headers
342
were always overwritten. But that's usually not appropriate for
343
anything but announce lists, so now these headers aren't changed
344
unless "Full personalization" is enabled.
346
- You now need to go to the General category to enable emergency
349
- The order of the hold modules in the GLOBAL_PIPELINE has
350
changed, again. Now Moderate comes before Hold.
352
- Estonian language support has been added.
354
- All posted messages should now get decorated with headers and
355
footers in a MIME-safe way. Previously, some MIME type messages
356
didn't get decorated at all.
358
- bin/arch grew a -q/--quiet option
360
- bin/list_lists grew a -b/--bare option
362
2.1 beta 4 (26-Oct-2002)
364
The usual assortment of bug fixes and language updates, some u/i
365
tweaks, as well as the following:
367
- Configuring / building / installing
368
o Tightened up some configure checks; it will now bark loudly
369
if you don't have the Python distutils package available
370
(some Linux distros only include distutils in their "devel"
373
o Mailman's username/group security assertions are now done by
374
symbolic name instead of numeric id. This provides a level
375
of indirection that makes it much easier to move or package
376
Mailman. --with-mail-gid and --with-cgi-gid are retained,
377
but they control the group names used instead.
379
- Command line scripts
380
o A new script, bin/transcheck that language teams can use to
381
check their .po files.
383
o bin/list_members grew a --fullnames/-f option to print the
384
full names along with the addresses.
386
o cron/senddigests grew --help/-h and --listname/-l options.
388
o bin/fix_url.py grew some command line options to support moving
389
a list to a specific virtual domain.
391
- Pipermail / archiving
392
o Reworked the directory layout for archive attachments to be
393
less susceptible to inode overload. Attachments are now
396
archives/private/<listname>/attachments/<YYYYMMDD>/<msgidhash>
398
o Internationalization support in the archiver has been improved.
400
- Internationalization
401
o New languages: Swedish.
404
o Content filtering now has a pass_mime_type variable, which
405
is a whitelist of MIME types to allow in postings. See the
406
details of the variable in the Content Filtering category
407
for more information.
409
o If a member has enabled their DontReceiveDuplicates option,
410
we'll also strip their addresses from the Cc headers in the
411
copy of the message sent to the list. This helps keep the
412
Cc lines from growing astronomically.
414
o Bounce messages are now forwarded to the list administrators
415
both if they are unrecognized, and if no list member's
416
address could be extracted.
418
o Content filtering now has a filter_action variable which
419
controls what happens when a message matches the content
420
filter rules. The default is still to discard the message.
422
o When searching for an Approve/Approved header, the first
423
non-whitespace line of the body of the message is also
424
checked, if the body has a MIME type of text/plain.
426
o If a list is personalized, and the list's posting address is
427
not included in a Reply-To header, the posting address is
428
copied into a Cc header, otherwise there was no (easy) way a
429
recipient could reply back to the list.
431
o Added a MS Exchange bounce recognizer.
433
o New configuration variable news_moderation which allows the
434
mail->news gateway to properly post to moderated newsgroups.
436
o Messages sent to a list's owners now comes from the site
437
list to prevent mail loops when list owners or moderators
438
having bouncing addresses.
441
o mailanctl prevents runaway restarts by imposing a maximum
442
restart value (defaulting to 10) for restarting the
443
qrunners. If you hit this limit, do "mailmanctl stop"
444
followed by "mailmanctl start".
446
o The Membership Management page's search feature now includes
447
searching on members real names.
449
o The start of a manual for list administrators is given in
450
Python HOWTO format (LaTeX). It's in doc/mailman-admin.tex
451
but it still needs lots of fleshing out.
453
o More protections against creating a list with an invalid name.
455
2.1 beta 3 (09-Aug-2002)
457
The usual assortment of bug fixes and language updates.
459
- New languages: Dutch, Portuguese (Brazil)
461
- New configure script options: --with-mailhost, --with-urlhost,
462
--without-permcheck. See ./configure --help for details.
464
- The encoding of Subject: prefixes is controlled by a new list
465
option encode_ascii_prefixes. This is useful for languages with
466
character sets other than us-ascii. See the Languages admin
469
- A new list option news_prefix_subject_too controls whether
470
postings gated from mail to news should have the subject prefix
471
added to their Subject: header.
473
- The algorithm for upgrading the moderation controls for a
474
Mailman 2.0.x list has changed. The change should be
475
transparent, but you'll want to double check the moderation
476
controls after upgrading from MM2.0.x. This should have no
477
effect for upgrades from a previous MM2.1 beta.
479
See the UPGRADING file for details.
481
- On the Mass Subscribe admin page, a text box has been added so
482
that the admin can add a custom message to be prepended to the
483
welcome/invite notification.
485
- On the admindb page, a link is included to more easily reload
488
- The Sendmail.py delivery module is sabotaged so that it can't be
489
used naively. You need to read the comments in the file and
490
edit the code to use this unsafe module.
492
- When a member sends a `help' command to the request address,
493
the url to their options page is included in the response.
495
- Autoresponses, -request command responses, and posting hold
496
notifications are inhibited for any message that has a
497
Precedence: {bulk|list|junk} header. This is to avoid mail
498
loops between email 'bots. If the original message has an
499
X-Ack: yes header, the response is sent.
501
Responses are also limited to a maximum number per day, as
502
defined in the site variable MAX_AUTORESPONSES_PER_DAY. This is
503
another guard against 'bot loops, and it defaults to 10.
505
- When a Reply-To: header is munged to include both the original
506
and the list address, the list address is always added last.
508
- The cron/mailpasswds script has grown a -l/--listname option.
510
- The cron/disabled script has grown options to send out
511
notifications for reasons other than bounce-disabled. It has
512
also grown a -f/--force option. See cron/disabled --help for
515
- The bin/dumpdb script has grown a -n/--noprint option.
517
- An experimental new mechanism for processing incoming messages
518
has been added. If you can configure your MTA to do qmail-style
519
Maildir delivery, Mailman now has a MaildirRunner qrunner. This
520
may turn out to be much more efficient and scalable, but for
521
MM2.1, it will not be officially supported. See Defaults.py.in
522
and Mailman/Queue/MaildirRunner.py for details.
524
2.1 beta 2 (05-May-2002)
526
Lots of bug fixing, and the following new features and changes:
528
- A "de-mime" content filter feature has been added. This
529
oft-requested feature allows you to specify MIME types that
530
Mailman should strip off of any messages before they're posted
531
to the list. You can also optionally convert text/html to
532
text/plain (by default, through lynx if it's available).
534
- Changes to the way the RFC 2919 and 2369 headers (i.e. the
535
List-*: headers) are added:
536
o List-Id: is always added
537
o List-Post:, List-Help:, List-Subscribe:,
538
List-Unsubscribe:, and List-Archive: are only added to
540
o X-List-Administrivia: is only added to messages Mailman
541
creates and sends out of its own accord.
543
Also, if the site administrator allows it, list owners can
544
suppress the addition of all the List-*: headers. List owners
545
can also separately suppress the List-Post: header for
548
- A new framework for email commands has been added. This allows
549
you to easily add, delete, or change the email commands that
550
Mailman understands, on a per-site, per-list, or even per-user
553
- Users can now change their digest delivery type from MIME to
554
plain text globally, for all lists they are subscribed to.
556
- No language select pulldowns are shown if the list only supports
559
- More mylist-admin eradication.
561
- Several performance improvements in the bounce qrunner, one of
562
which is to make it run only once per minute instead of once per
565
- Korean language support as been added.
567
- Gatewaying from news -> mail uses its connections to the nntpd
570
- In bin/add_members, -n/--non-digest-members-file command line
571
switch is deprecated in favor of -r/--regular-members-file.
573
- bin/sync_members grew a -g/--goodbye-msg switch.
575
2.1 beta 1 (16-Mar-2002)
577
In addition to the usual bug fixes, performance improvements, and
578
GUI changes, here are the highlights:
580
- MIME and other message handling
581
o More robustness against badly MIME encapsulated messages: if
582
a MessageParseError is raised during the initial parse, the
583
message can either be discarded or saved in qfiles/bad,
584
depending on the value of the new configuration variable
585
QRUNNER_SAVE_BAD_MESSAGES.
587
o There is a new per-user option that can be used to avoid
588
receipt of extra copies, when a member of the list is also
591
o Always add an RFC 2822 Date: header if missing, since not
592
all MTAs insert one automatically.
594
o The Sender: and Errors-To: headers are no longer added to
597
o Headers and footers are always added by concatenation, if
598
the message is not MIME and if the list's charset is a
599
superset of us-ascii.
601
- List administration
602
o An `invitation' feature has been added. This is selectable
603
as a radio button on the mass subscribe page. When
604
selected, users are invited to join instead of immediately
605
joined, i.e. they get a confirmation message.
607
o You can now enable and disable list owner notifications for
608
disabled-due-to-bouncing and removal-due-to-bouncing
609
actions. The site config variables
610
DEFAULT_BOUNCE_NOTIFY_OWNER_ON_DISABLE and
611
DEFAULT_BOUNCE_NOTIFY_OWNER_ON_REMOVAL control the default
614
o List owners can now decide whether they receive unrecognized
615
bounce messages or not (i.e. messages that the bounce
616
processor doesn't recognize). Site admins can set the
617
default value for this flag with the config variable
618
DEFAULT_BOUNCE_UNRECOGNIZED_GOES_TO_LIST_OWNER.
620
o The admindb summary page gives the option of clearing the
621
moderation flag of members who are on quarantined.
623
o The action to take when a moderated member posts to a list
624
is now configurable. The message can either be held,
625
rejected (bounced), or discarded. If the message is
626
rejected, a rejection notice string can be given.
628
o In the General admin page, you can now set the default value
629
for five per-user flags: concealing the user's email
630
address, acknowledging posts sent by the user, copy
631
suppression, not-me-too selection, and the default digest
632
type. Site admins can set the default bit field with the
633
new DEFAULT_NEW_MEMBER_OPTIONS variable.
635
o A new "Emergency brake" feature for turning on moderation of
636
all list postings. This is useful for when flamewars break
637
out, and the list needs a cooling off period. Messages
638
containing an Approved: header with the list owner password
639
are still allowed through, as are messages approved through
640
the admindb interface.
642
o When a moderated message is approved for the list, add an
643
X-Mailman-Approved-At: header which contains the timestamp
644
of the approval action (changed from X-Moderated: with a
647
o Lists can now be converted to using a less error prone
648
mechanism for variable substitution syntax in headers and
649
footers. Instead of %(var)s strings, you'd use $var
650
strings. You must use "bin/withlist -r convert" to enable
653
o When moderating held messages, the header text box and the
654
message excerpt text box are now both read-only.
656
o You can't delete the site list through the web.
658
o When creating new lists through the web, you have the option
659
of setting the "default member moderation" flag.
661
- Security and privacy
662
o New feature: banned subscription addresses. Privacy
663
options/subscription rules now have an additional list box
664
which can contain addresses or regular expressions.
665
Subscription requests from any matching address are
666
automatically rejected.
668
o Membership tests which compare message headers against list
669
rosters are now more robust. They now check, by default
670
these header in order: From:, unixfrom, Reply-To:, Sender:.
671
If any match, then the membership test succeeds.
673
o ALLOW_SITE_ADMIN_COOKIES is a new configuration variable
674
which says whether to allow AuthSiteAdmin cookies or not.
675
Normally, when a list administrator logs into a list with
676
the site password, they are issued a cookie that only allows
677
them to do administration for this one list. By setting
678
ALLOW_SITE_ADMIN_COOKIES to 1, the user only needs to
679
authenticate to one list with the site password, and they
680
can administer any mailing list.
682
I'm not sure this feature is wise, so the default value for
683
ALLOW_SITE_ADMIN_COOKIES is 0.
685
o Marc MERLIN's new recipes for secure Linuxes have been
688
o DEFAULT_PRIVATE_ROSTER now defaults to 1.
690
o Passwords are no longer included in the confirmation pages.
692
- Internationalization
693
o With the approval of Tamito KAJIYAMA, the Japanese codecs
694
for Python are now included automatically, so you don't need
695
to download and install these separate. It is installed in
696
a Mailman-specific place so it won't affect your larger
699
o The configure script will produce a warning if the Chinese
700
codes are not installed. This is not a fatal error.
702
o Russian templates and catalogs have been added.
704
o Finnish templates and catalogs have been added.
706
- Scripts and utilities
707
o New program bin/unshunt to safely move shunted messages back
708
into the appropriate processing queue.
710
o New program bin/inject for sending a plaintext message into
711
the incoming queue from the command line.
713
o New cron script cron/disabled for periodically culling the
716
o bin/list_members has grown some new command line switches
717
for filtering on different criteria (digest mode, disable
720
o bin/remove_members has grown the --fromall switch.
722
o You can now do a bin/rmlist -a to remove an archive even
723
after the list has been deleted.
725
o bin/update removes the $prefix/Mailman/pythonlib directory.
727
o bin/withlist grows a --all/-a flag so the --run/-r option
728
can be applied to all the mailing lists. Also, interactive
729
mode is now the default if -r isn't used. You don't need to
730
run this script as "python -i bin/withlist" anymore.
732
o There is a new script contrib/majordomo2mailman.pl which
733
should ease the transition from Majordomo to Mailman.
736
o Postfix integration has been made much more robust, but now
737
you have to set POSTFIX_ALIAS_CMD and POSTFIX_MAP_CMD to
738
point to the postalias and postmap commands respectively.
740
o VERP-ish delivery has been made much more efficient by
741
eliminating extra disk copies of messages for each recipient
742
of a VERP delivery. It has also been made more robust in
743
the face of failures during chunk delivery. This required a
744
rewrite of SMTPDirect.py and one casualty of that rewrite
745
was the experimental threaded delivery. It is no longer
746
supported (but /might/ be resurrected if there's enough
747
demand -- or a contributed patch :).
749
o A new site config variable SMTP_MAX_SESSIONS_PER_CONNECTION
750
specifies how many consecutive SMTP sessions will be
751
conducted down the same socket connection. Some MTAs have a
754
o Support for VERP-ing confirmation messages. These are less
755
error prone since the Subject: header doesn't need to be
756
retained, and they allow a more user friendly (and i18n'd)
757
Subject: header. VERP_CONFIRM_FORMAT, VERP_CONFIRM_REGEXP,
758
and VERP_CONFIRMATIONS control this feature (only supported
759
for invitation confirmations currently, but will be expanded
760
to the other confirmations).
762
o Several new list-centric addresses have been added:
763
-subscribe and -unsubscribe are synonyms for -join and
764
-leave, respectively. Also -confirm has been added to
765
support VERP'd confirmations.
768
o There's now a default page for the Pipermail archive link
769
for when no messages have yet been posted to the list.
771
o Just the mere presence of an X-No-Archive: is enough to
772
inhibit archiving for this message; the value of the header
775
- Configuring, building, installing
776
o Mailman now has a new favicon, donated by Terry Oda. Not
777
all web pages are linked to the favicon yet though.
779
o The add-on email package is now distributed and installed
780
automatically, so you don't need to do this. It is
781
installed in a Mailman-specific place so it won't affect
782
your larger Python installation.
784
o The default value of VERP_REGEXP has changed.
786
o New site configuration variables BADQUEUE_DIR and
787
QRUNNER_SAVE_BAD_MESSAGES which describe where to save
788
messages which are not properly MIME encoded.
790
o configure should be more POSIX-ly conformant.
792
o The Mailman/pythonlib directory has been removed, but a new
793
$prefix/pythonlib directory has been added.
795
o Regression tests are now installed.
797
o The second argument to add_virtual() calls in mm_cfg.py are
800
o DEFAULT_FIRST_STRIP_REPLY_TO now defaults to 0.
802
o Site administrators can edit the Mailman/Site.py file to
803
customize some filesystem layout policies.
806
2.1 alpha 4 (31-Dec-2001)
808
- The administrative requests database page (admindb) has been
809
redesigned for better usability when there are lots of held
810
postings. Changes include:
811
o A summary page which groups held messages by sender email
812
address. On this page you can dispose of all the sender's
813
messages in one action. You can also view the details of
814
all the sender's messages, or the details of a single
815
message. You can also add the sender to one of the list's
818
o A details page where you can view all messages, just those
819
for a particular sender, or just a single held message.
820
This details page is laid out the same as the old admindb
823
o The instructions have been shorted on the summary and
824
details page, with links to more detailed explanations.
827
o Mailman now keeps track of the reason a member's delivery
828
has been disabled: explicitly by the administrator,
829
explicitly by the user, by the system due to excessive
830
bounces, or for (legacy) unknown reasons.
832
o A new bounce processing algorithm has been implemented (we
833
might actually understand this one ;). When an address
834
starts bouncing, the member gets a "bounce score". Hard
835
(fatal) bounces score 1.0, while soft (transient) bounces
838
List administrators can specify a bounce threshold above
839
which a member gets disabled. They can also specify a time
840
interval after which, if no bounces are received from the
841
member, the member's bounce score is considered stale and is
844
o A new cron script, cron/disabled, periodically sends
845
notifications to members who are bounce disabled. After a
846
certain number of warnings the member is deleted from the
847
list. List administrators can control both the number of
848
notifications and the amount of time between notifications.
850
Notifications include a confirmation cookie that the member
851
can use to re-enable their subscription, via email or web.
853
o New configuration variables to support the bounce processing
854
are DEFAULT_BOUNCE_SCORE_THRESHOLD,
855
DEFAULT_BOUNCE_INFO_STALE_AFTER,
856
DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS,
857
DEFAULT_BOUNCE_YOU_ARE_DISABLED_WARNINGS_INTERVAL.
859
- Privacy and security
860
o Sender filters can now be regular expressions. If a line
861
starts with ^ it is taken as a (raw string) regular
862
expression, otherwise it is a literal email address.
864
o Fixes in 2.0.8 ported forward: prevent cross-site scripting
868
o Aliases have all been changed so that there's more
869
consistency between the alias a message gets delivered to,
870
and the script & queue runner that handles the message.
872
I've also renamed the mail wrapper script to `mailman' from
873
`wrapper' to avoid collisions with other MLM's. You /will/
874
need to regenerate your alias files with bin/genaliases, and
875
you may need to update your smrsh (Sendmail) configs.a
877
Bounces always go to listname-bounces now, since
878
administration has been separated from bounce processing.
879
listname-admin is obsolete.
881
o VERP support! This greatly improves the accuracy of bounce
882
detection. Configuration variables which control this feature
883
include VERP_DELIVERY_INTERVAL, VERP_PERSONALIZED_DELIVERIES,
884
VERP_PASSWORD_REMINDERS, VERP_REGEXP, and VERP_FORMAT. The
885
latter two must be tuned to your MTA.
887
o A new alias mailman-loop@dom.ain is added which directs all
888
output to the file $prefix/data/owner-bounces.mbox. This is
889
used when sending messages to the site list owners, as the
890
final fallback for bouncing messages.
892
o New configuration variable POSTFIX_STYLE_VIRTUAL_DOMAINS
893
which should be set if you are using the Postfix MTA and
894
want Mailman to play nice with Postfix-style virtual
898
o Better interoperability with Python 2.2.
900
o MailList objects now record the date (in seconds since
901
epoch) that they were created. This is in a hidden
902
attribute `created_at'.
904
o bin/qrunner grows a -s/--subproc switch which is usually
905
used only when it's started from mailmanctl.
907
o bin/newlist grows a -l/--language option so that the list's
908
preferred language can be set from the command line.
910
o cron changes: admin reminders go out at 8am local time instead
914
o MIME attachments are scrubbed out into separate files which
915
can be viewed by following a link in the original article.
916
Article contains an indication of the size of the
917
attachment, its type, and other useful information.
919
o New script bin/cleanarch which can be used to `clean' an
920
.mbox archive file by fixing unescaped embedded Unix From_
923
o New configuration variable ARCHIVE_SCRUBBER in
924
Defaults.py.in which names the module that Pipermail should
925
use to scrub articles of MIME attachments.
927
o New configuration variable ARCHIVE_HTML_SANITIZER which
928
describes how the scrubber should handle text/html
931
o PUBLIC_ARCHIVE_URL has change its semantics. It is now an
932
absolute url, with the hostname and listname parts
933
interpolated into it on a per-list basis.
935
o Pipermail should now provide the proper character set in the
936
Content-Type: header for archived articles.
938
- Internationalization
939
o Czech translations by Dan Ohnesorg.
941
o The Hungarian charset has be fixed to be iso-8859-2.
943
o The member options login page now has a language selection
946
- Building, configuration
947
o email-0.96 package is required (see the misc directory).
949
o New recipes for integrating Mailman and Sendmail,
950
contributed by David Champion.
953
2.1 alpha 3 (22-Oct-2001)
956
o Mailman now tracks a member's Real Name in addition to their
959
o List members can now supply their Real Names when
960
subscribing via the web. Their Real Names are parsed from
961
any thru-email subscriptions.
963
o Members can change their Real Names on their options page,
964
and admins can change members' Real Names on the membership
965
pages. Mass subscribing accepts "email@dom.ain (Real Name)"
966
and "Real Name <email@dom.ain>" entries, for both
967
in-text-box and file-upload mass subscriptions.
969
- Filtering and Privacy
970
o Reply-To: munging has been enhanced to allow a wider range
971
of list policies. You can now pre-strip any Reply-To:
972
headers before adding list-specific ones (i.e. you can
973
override or extend existing Reply-To: headers). If
974
stripping, the old headers are no longer saved on
977
o New sender moderation rules. The old `posters',
978
`member_only_posting', `moderated' and `forbidden_posters'
979
options have been removed in favor of a new moderation
980
scheme. Each member has a personal moderation bit, and
981
non-member postings can be automatically accepted, held for
982
approval, rejected (bounced) or discarded.
984
o When membership rosters are private, responses to
985
subscription (and other) requests are made more generic so
986
that these processes can't be covertly mined for hidden
987
addresses. If a subscription request comes in for a user
988
who is already subscribed, the user is notified of potential
991
o When a held message is approved via the admindb page, an
992
X-Moderated: header is added to the message.
994
o List admins can now set an unsubscribe policy which requires
995
them to approve of member unsubscriptions.
998
o All web confirmations now require a two-click procedure,
999
where the first click gives them a page that allows them to
1000
confirm or cancel their subscription. It is bad form for an
1001
email click (HTTP GET) to have side effects.
1003
o Lots of improvements for clarity.
1005
o The Privacy category has grown three subcategories.
1007
o The General options page as a number of subsection headers.
1009
o The Passwords and Languages categories are now on separate
1012
o The admin subcategories are now formated as two columns in
1013
the top and bottom legends.
1015
o When creating a list through the web, you can now specify
1016
the initial list of supported languages.
1018
o The U/I for unsubscribing a member on the admin's membership
1019
page should be more intuitive now.
1021
o There is now a separate configuration option for whether the
1022
goodbye_msg is sent when a member is unsubscribed.
1025
o misc/mailman is a Unix init script, appropriate for
1026
/etc/init.d, and containing chkconfig hooks for systems that
1029
o bin/mailmanctl has been rewritten; the `restart' command
1030
actually works now. It now also accepts -s, -q, and -u
1033
o bin/qrunner has been rewritten too; it can serve the role of
1034
the old cron/qrunner script for those who want classic
1035
cron-invoked mail delivery.
1037
o Internally, messages are now stored in the qfiles directory
1038
primarily as pickles. List configuration databases are now
1039
stored as pickles too (i.e. config.pck). bin/dumpdb knows
1040
how to display both pickles and marshals.
1043
o If a user's message is held for approval, they are sent a
1044
notification message containing a confirmation cookie. They
1045
can use this confirmation cookie to cancel their own
1046
postings (if they haven't already been approved).
1048
o When held messages are forwarded to an explicit address
1049
using the admindb page, it is done so in a message/rfc822
1052
o When a message is first held for approval, the notification
1053
sent to the list admin is a 3-part multipart/mixed. The
1054
first part holds the notification message, the second part
1055
hold the original message, and the third part hold a cookie
1056
confirmation message, to which the admin can respond to
1057
approve or discard the message via email.
1059
o In the mail->news gateway, you can define mail headers that
1060
must be modified or deleted before the message can be posted
1063
o The list admin can send an immediate urgent message to the
1064
entire list membership, bypassing digest delivery. This is
1065
done by adding an Urgent: header with the list password.
1066
Urgent messages with an invalid password are rejected.
1068
o Lists can now optionally personalize email messages, if the
1069
site admin allows it. Personalized messages mean that the
1070
To: header includes the recipient's address instead of the
1071
list's address, and header and footer messages can contain
1072
user-specific information. Note that only regular
1073
deliveries can currently be personalized.
1075
o Message that come from Usenet but that have broken MIME
1076
boundaries are ignored.
1078
o If the site administrator agrees, list owners have the
1079
ability to disable RFC 2369 List-* headers.
1081
o There is now an API for an external process to post a
1082
message to a list. This posting process can also specify an
1083
explicit list of recipients, in effect turning the mailing
1084
list into a "virtual list" with a fluid membership. See
1085
Mailman/Post.py for details.
1087
- Building/testing/configuration
1088
o mimelib is no longer required, but you must install the
1089
email package (see the tarball in the misc directory).
1091
o An (as yet) incomplete test suite has been added. Don't try
1092
running it in a production environment!
1094
o Better virtual host support by adding a mapping from the
1095
host name given in cgi's HTTP_HOST/SERVER_NAME variable to
1096
the email host used in list addresses. (E.g. www.python.org
1097
maps to @python.org).
1099
o Specifying urls to external public archivers is more
1102
o The filters/ subdirectory has been removed.
1104
o There is now a `site list' which is a mailing list that must
1105
be created first, and from which all password reminders
1106
appear to come from. It is recommended that this list be
1107
called "mailman@your.site".
1109
o bin/move_list is no longer necessary (see the FAQ for
1110
detailed instructions on renaming a list).
1112
o A new script bin/fix_url.py can be used with bin/withlist to
1113
change a list's web_page_url configuration variable (since
1114
it is no longer modifiable through the web).
1116
- Internationalization
1117
o Support for German, Hungarian, Italian, Japanese, and
1118
Norwegian have been added.
1121
o Lots of new bounce detectors. Bounce detectors can now
1122
discard temporary bounce messages by returning a special
1125
o bin/withlist now sports a -q/--quiet flag.
1127
o bin/add_members has a new -a/--admin-notify flag which can
1128
be used to inhibit list owner notification for each
1131
- Membership Adaptors
1132
o Internally, mailing list memberships are accessed through a
1133
MemberAdaptor interface. This would allow for integrating
1134
membership databases with external sources (e.g. Zope or
1135
LDAP), although the only MemberAdaptor currently implemented
1136
is a "classic" adaptor which stores the membership
1137
information on the MailList object.
1139
o There's a new pipeline handler module called FileRecips.py
1140
which could be used to get all regular delivery mailing list
1141
recipients from a Sendmail-style :include: file (see List
1142
Extensibility bullet below).
1144
This work was sponsored by Control.com
1146
- List Extensibility
1147
o A framework has been added which can be used to specialize
1148
and extend specific mailing lists. If there is a file
1149
called lists/<yourlist>/extend.py, it is execfile()'d after
1150
the MailList object is instantiated. The file should
1151
contain a function extend() which will be called with the
1152
MailList instance. This function can do all sorts of deep
1153
things, like modify the handler pipeline just for this list,
1154
or even strip out particular admin GUI elements (see below).
1156
o All the admin page GUI elements are now separate
1157
components. This provides greater flexibility for list
1158
customization. Also, each GUI element will be given an
1159
opportunity to handle admin CGI form data.
1161
This work was sponsored by Control.com
1164
o A new feature has been added called "Topic Filters". A list
1165
administrator can create topics, which are essentially
1166
regular expression matches against Subject: and Keyword:
1167
headers (including such pseudo-headers if they appear in the
1168
first few lines of the body of a message).
1170
List members can then `subscribe' to various topics, which
1171
allows them to filter out any messages that don't match a
1172
topic, or to filter out any message that does match a
1173
topic. This can be useful for high volume lists where not
1174
everyone will be interested in every message.
1176
This work was sponsored by Control.com
1178
2.1 alpha 2 (11-Jul-2001)
1181
o mimelib 0.4 is now required. Get it from
1182
http://mimelib.sf.net. If you've installed an earlier
1183
version of mimelib, you must upgrade.
1185
o /usr/local/mailman is now the default installation
1186
directory. Use configure's --prefix switch to change it
1187
back to the default (/home/mailman) or any other
1188
installation directory of your choice.
1191
o Better definition of authentication domains. The following
1192
roles have been defined: user, list-admin, list-moderator,
1193
creator, site-admin.
1195
o There is now a separate role of "list moderator", which has
1196
access to the pending requests (admindb) page, but not the
1197
list configuration pages.
1199
o Subscription confirmations can now be performed via email or
1200
via URL. When a subscription is received, a unique (sha)
1201
confirm URL is generated in the confirmation message.
1202
Simply visiting this URL completes the subscription process.
1204
o In a similar manner, removal requests (via web or email
1205
command) no longer require the password. If the correct
1206
password is given, the removal is performed immediately. If
1207
no password is given, then a confirmation message is
1210
- Internationalization
1211
o More I18N patches. The basic infrastructure should now be
1212
working correctly. Spanish templates and catalogs are
1213
included, and English, French, Hungarian, and Big5 templates
1216
o Cascading specializations and internationalization of
1217
templates. Templates are now search for in the following
1218
order: list-specific location, domain-specific location,
1219
site-wide location, global defaults. Each search location
1220
is further qualified by the language being displayed. This
1221
means that you only need to change the templates that are
1222
different from the global defaults.
1224
Templates renamed: admlogin.txt => admlogin.html
1225
Templates added: private.html
1228
o Redesigned the user options page. It now sits behind an
1229
authentication so user options cannot be viewed without the
1230
proper password. The other advantage is that the user's
1231
password need not be entered on the options page to
1232
unsubscribe or change option values. The login screen also
1233
provides for password mail-back, and unsubscription w/
1236
Other new features accessible from the user options page
1237
include: ability to change email address (with confirmation)
1238
both per-list and globally for all list on virtual domain;
1239
global membership password changing; global mail delivery
1240
disable/enable; ability to suppress password reminders both
1241
per-list and globally; logout button.
1243
[Note: the handle_opts cgi has gone away]
1245
o Color schemes for non-template based web pages can be defined
1248
o Redesign of the membership management page. The page is now
1249
split into three subcategories (Membership List, Mass
1250
Subscription, and Mass Removal). The Membership List
1251
subcategory now supports searching for member addresses by
1252
regular expression, and if necessary, it groups member
1253
addresses first alphabetically, and then by chunks.
1255
Mass Subscription and Mass Removal now support file upload,
1256
with one address per line.
1258
o Hyperlinks from the logos in the footers have been removed.
1259
The sponsors got too much "unsubscribe me!" spam from
1260
desperate user of Mailman at other sites.
1262
o New buttons on the digest admin page to send a digest
1263
immediately (if it's non-empty), to start a new digest
1264
volume with the next digest, and to select the interval with
1265
which to automatically start a new digest volume (yearly,
1266
monthly, quarterly, weekly, daily).
1268
DEFAULT_DIGEST_VOLUME_FREQUENCY is a new configuration
1269
variable, initially set to give a new digest volume monthly.
1271
o Through-the-web list creation and removal, using a separate
1272
site-wide authentication role called the "list creator and
1273
destroyer" or simply "list creator". If the configuration
1274
variable OWNERS_CAN_DELETE_THEIR_OWN_LISTS is set to 1 (by
1275
default, it's 0), then list admins can delete their own
1278
This feature requires an adaptor for the particular MTA
1279
you're using. An adaptor for Postfix is included, as is a
1280
dumb adaptor that just emails mailman@yoursite with the
1281
necessary Sendmail style /etc/alias file changes. Some MTAs
1282
like Exim can be configured to automatically recognize new
1283
lists. The adaptor is selected via the MTA option in
1287
o In email commands, "join" is a synonym for
1288
"subscribe". "remove" and "leave" are synonyms for
1289
"unsubscribe". New robot addresses are support to make
1290
subscribing and unsubscribing much easier:
1295
o Confirmation messages have a shortened Subject: header,
1296
containing just the word "confirm" and the confirmation
1297
cookie. This should help for MUAs that like to wrap long
1298
Subject: lines, messing up confirmation.
1300
o Mailman now recognizes an Urgent: header, which, if it
1301
contains the list moderator or list administrator password,
1302
forces the message to be delivered immediately to all
1303
members (i.e. both regular and digest members). The message
1304
is also placed in the digest. If the password is incorrect,
1305
the message will be bounced back to the sender.
1308
o Refinements to the new qrunner subsystem which preserves
1309
FIFO order of messages.
1311
o The qrunner is no longer started from cron. It is started
1312
by a Un*x init-style script called bin/mailmanctl (see
1313
below). cron/qrunner has been removed.
1315
- Command line scripts
1316
o bin/mailmanctl script added, which is used to start, stop,
1317
and restart the qrunner daemon.
1319
o bin/qrunner script added which allows a single sub-qrunner
1320
to run once through its processing loop.
1322
o bin/change_pw script added (eases mass changing of list
1325
o bin/update grows a -f switch to force an update.
1327
o bin/newlang renamed to bin/addlang; bin/rmlang removed.
1329
o bin/mmsitepass has grown a -c option to set the list
1330
creator's password. The site-wide `create' web page is
1331
linked to from the admin overview page.
1333
o bin/newlist's -o option is removed. This script also grows
1334
a way of spelling the creation of a list in a specific
1337
o The `auto' script has been removed.
1339
o bin/dumpdb has grown -m/--marshal and -p/--pickle options.
1341
o bin/list_admins can be used to print the owners of a mailing list.
1343
o bin/genaliases regenerates from scratch the aliases and
1344
aliases.db file for the Postfix MTA.
1347
o New archiver date clobbering option, which allows dates to
1348
only be clobber if they are outrageously out-of-date
1349
(default setting is 15 days on either side of received
1350
timestamp). New configuration variables:
1352
ARCHIVER_CLOBBER_DATE_POLICY
1353
ARCHIVER_ALLOWABLE_SANE_DATE_SKEW
1355
The archived copy of messages grows an X-List-Received-Date:
1356
header indicating the time the message was received by
1359
o PRIVATE_ARCHIVE_URL configuration variable is removed (this
1360
can be calculated on the fly, and removing it actually makes
1361
site configuration easier).
1364
o Several new README's have been added.
1366
o Most syslog entries for the qrunner have been redirected to
1369
o On SIGHUP, qrunner will re-open all its log files and
1370
restart all child processes. See "bin/mailmanctl restart".
1372
- Patches and bug fixes
1373
o SF patches and bug fixes applied: 420396, 424389, 227694,
1374
426002, 401372 (partial), 401452.
1376
o Fixes in 2.0.5 ported forward:
1377
Fix a lock stagnation problem that can result when the
1378
user hits the `stop' button on their browser during a
1379
write operation that can take a long time (e.g. hitting
1380
the membership management admin page).
1382
o Fixes in 2.0.4 ported forward:
1383
Python 2.1 compatibility release. There were a few
1384
questionable constructs and uses of deprecated modules
1385
that caused annoying warnings when used with Python 2.1.
1386
This release quiets those warnings.
1388
o Fixes in 2.0.3 ported forward:
1389
Bug fix release. There was a small typo in 2.0.2 in
1390
ListAdmin.py for approving an already subscribed member
1391
(thanks Thomas!). Also, an update to the OpenWall
1392
security workaround (contrib/securelinux_fix.py) was
1393
included. Thanks to Marc Merlin.
1395
2.1 alpha 1 (04-Mar-2001)
1397
- Python 2.0 or newer required. Also required is `mimelib' a new
1398
library for handling MIME documents. This will be bundled in
1399
future releases, but for now, you must download and install it
1400
(using Python's distutils) from
1402
http://barry.wooz.org/software/Code/mimelib-0.2.tar.gz
1404
You need mimelib 0.2 or better.
1406
- Redesigned qrunner subsystem. Now there are multiple message
1407
queues, and considerable flexibility in file formats for
1408
integration with external systems. The current crop of queues
1411
archive -- for posting messages to an archiver
1412
commands -- for incoming email commands and bounces
1413
in -- for list-destined incoming email
1414
news -- for messages outgoing to a nntp server
1415
out -- for messages outgoing to a smtp server
1416
shunt -- for messages that trigger unexpected exceptions in Mailman
1417
virgin -- for messages that are generated by Mailman
1419
cron/qrunner is now a long running script that forks off
1420
sub-runners for each of the above queues. qrunner still plays
1421
nice with cron, but it is expected to be started by init at some
1422
point in the future. Some support exists for parallel
1423
processing of messages in the queues.
1425
- Support for internationalization support merged in. Original
1426
work done by Juan Carlos Rey Anaya and Victoriano Giralt. I've
1427
tested about 90% of the web side, 50% of the email, and 50% of
1428
the command line / cron scripts.
1430
New scripts: bin/newlang, bin/rmlang
1432
- New delivery script `auto' for automatic integration with the
1435
- A bunch of new bounce detectors.
1437
Changes ported from Mailman 2.0.2 and 2.0.1:
1439
- A fix for a potential privacy exploit where a clever list
1440
administrator could gain access to user passwords. This doesn't
1441
allow them to do much more harm to the user then they normally
1442
could, but they still shouldn't have access to the passwords.
1444
- In the admindb page, don't complain when approving a
1445
subscription of someone who's already on the list (SF bug
1446
#222409 - Thomas Wouters).
1448
Also, quote for HTML the Subject: text printed for held
1449
messages, otherwise messages with e.g. "Subject: </table>" could
1450
royally screw page formatting.
1452
- Docstring fix bin/newlist to remove mention of "immediate"
1453
argument (Thomas Wouters).
1455
- Fix for bin/update when PREFIX != VAR_PREFIX (SF bug #229794 --
1458
- Bug fix release, namely fixes a buglet in bin/withlist affecting
1459
the -l and -r flags; also a problem that can cause qrunner to
1460
stop processing mail after disk-full events (SourceForge bug
1463
2.0 final (21-Nov-2000)
1465
No changes from rc3.
1467
2.0 release candidate 3 (16-Nov-2000)
1469
- By popular demand, Reply-To: munging policy is now to always
1470
override any Reply-To: header in the original message, if
1471
reply_goes_to_list is set to "This list" or "Explicit Address"
1473
- bin/newlist given -q/--quiet flag instead of the <immediate>
1476
- Hopefully last fix to DEFAULT_URL not ending in a slash
1479
- 2.0rc2 buglets fixed:
1480
o newlist argument parsing
1481
o updating with unlocked lists
1482
o HyperArch.py traceback when there's no
1483
Content-Transfer-Encoding: header
1485
- SourceForge bugs fixed:
1486
122358 (qmail-to-mailman.py listname case folding)
1488
- SourceForge patches applied:
1489
102373 (qmail-to-mailman.py listname case folding)
1491
2.0 release candidate 2 (10-Nov-2000)
1493
- Documentation updates: start at admin/www/index.html
1495
- bin/withlist accepts additional command line arguments when used
1496
with the --run flag; bin/mmsitepass and bin/newlist accept
1499
- bin/newlist has a -o/--output flag to append /etc/aliases
1500
suggestions to a specified file
1502
- SourceForge bugs fixed:
1503
116615 (README.BSD update), 117015 (duplicate messages on
1504
moderated posts), 117548 (exception in HyperArch.py), 117682
1505
(typos), 121185 (vsnprintf signature), 121591 and 122017
1506
(bogus link after web unsubscribe), 121811 (`subscribe' in
1507
Subject: doesn't get archived)
1509
- SourceForge patches applied:
1510
101812 (securelinux_fix.py contrib), 102097 (fix for bug
1511
117548), 102211 (additional args for withlist), 102268 (case
1512
insensitive Content-Transfer-Encoding:)
1514
2.0 release candidate 1 (23-Oct-2000)
1516
- Bug fixes and security patches.
1518
- Better html rendition of articles in non us-ascii charsets
1519
(Jeremy Hylton). See VERBATIM_ENCODING variable in
1520
Defaults.py.in for customization.
1522
2.0 beta 6 (22-Sep-2000)
1525
o Tested with Python 1.5.2, Python 1.6, and Python 2.0 beta 1.
1526
Conducted on RH Linux 6.1 only, but should work
1529
o Configure now accepts --with-username, --with-groupname,
1530
--with-var-prefix flags. See `configure --help' or the
1531
INSTALL file for details.
1533
o Setting the CFLAGS environment variable before invoking
1534
configure now works.
1536
o The icons are now copied into $prefix/icons at install time.
1537
Patch by David Champion.
1540
o Compliance with RFC 2369 (List-*: headers). Patch by
1541
Darrell Fuhriman. List-ID: header is kept for historical
1544
o Fixes by Jeremy Hylton to Pipermail in support of non-ASCII
1545
charsets, based on the Content-Type: and encoded-words in
1546
the original message. Mail headers are now decoded as per
1549
o Many more bounce formats are detected: Microsoft's SMTPSVC,
1550
Compuserve, GroupWise, SMTP32, and the more generic
1551
SimpleMatch (which catches lots of similar but slightly
1555
o Email addresses can now be obscured in Pipermail archives by
1556
setting mm_cfg.ARCHIVER_OBSCURES_EMAILADDRS to 1 (obscuring
1557
is turned off by default). Patch provided by Chris Snell.
1559
o The default NNTP host can now be set by editing
1560
mm_cfg.DEFAULT_NNTP_HOST. Patch by David Champion.
1562
o The default archiving mode (public/private) can now be set
1563
by editing mm_cfg.DEFAULT_ARCHIVE. Patch by Ted Cabeen.
1566
o The variable details pages in the administrators interface
1567
is now `live', i.e. there's a submit button on the details
1570
o A link to the administrative interface is placed in the
1571
footer of the general user pages (authentication still
1572
required, of course!)
1574
o The user options change results page has a link back to the
1577
o In the admindb page (for dealing with held postings), the
1578
default forward address is now listname-owner instead of
1579
listname-admin. This avoids bounce detection on the
1583
o Fixed config.db corruption problem when disk-full errors are
1586
o Command line scripts accept list names case-insensitively.
1588
o bin/remove_members takes a -a flag to remove all members of
1589
a list in one fell swoop.
1591
o List admin passwords must be non-empty.
1593
o Mailman generated passwords are slightly more mnemonic, and
1594
shouldn't have confusing character selections (i.e. `i'
1595
only, but no `1' or `l').
1597
o Crossposting to two gated mailing lists should be fixed.
1599
o Many other bug fixes and minor web UI improvements.
1601
2.0 beta 5 (01-Aug-2000)
1603
- Bug fix release. This includes a fix for a small security hole
1604
which could be exploited to gain mailman group access by a local
1605
user (not a mail or web user).
1607
- As part of the fix for the "cookie reauthorization" bug, only
1608
session cookies are used now. This means that administrative
1609
and private archive cookies expire only when the browser session
1610
is quit, however an explicit "Logout" button has been added.
1612
2.0 beta 4 (06-Jul-2000)
1616
2.0 beta 3 (29-Jun-2000)
1618
- Delivery mechanism (qrunner) refined to support immediate
1619
queuing, queuing directly from MTA, and queuing on any error
1620
along the delivery pipeline. This means 1) that huge lists
1621
can't time out the MTA's program delivery channel; 2) it is much
1622
harder to completely lose messages; 3) eventually, qrunner will
1623
be elaborated to meter delivery to the MTA so as not to swamp
1624
it. The tradeoff is in more disk I/O since every message coming
1625
into the system (and most that are generated by the system) live
1626
on disk for some part of their journey through Mailman.
1628
For now, see the Default.py variables QRUNNER_PROCESS_LIFETIME
1629
and QRUNNER_MAX_MESSAGES for primitive resource management.
1631
The API to the pipeline handler modules has changed. See
1632
Mailman/Handlers/HandlerAPI.py for details.
1634
- Revamped admindb web page: held messages are split into headers
1635
and bodies so they are easier to vette; admins can now also
1636
preserve a held message (for spam evidence gathering) or forward
1637
the message to a specified email address; disposition of held
1638
messages can be deferred; held messages have a more context
1639
meaningful default rejection message.
1641
- Change to the semantics for `acceptable_aliases' list
1642
configuration variable, based on suggestions by Harald Meland.
1644
- New mm_cfg.py variables NNTP_USERNAME and NNTP_PASSWORD can be
1645
set on a site-wide basis if connection to your nntpd requires
1648
- The list attribute `num_spawns' has been removed. The mm_cfg.py
1649
variables MAX_SPAWNS, and DEFAULT_NUM_SPAWNS removed too.
1651
- LIST_LOCK_LIFETIME cranked to 5 hours and LIST_LOCK_TIMEOUT
1652
shortened to 10 seconds. QRUNNER_LOCK_LIFETIME cranked up to 10
1653
hours. This should decrease the changes for bogus and harmful
1656
- Resent-to: is now one of the headers checked for explicit
1659
- Tons more bounce formats are recognized. The API to the bounce
1660
modules has changed.
1662
- A rewritten LockFile module which should fix most (hopefully all)
1663
bugs in the locking machinery. Many improvements suggested by
1664
Thomas Wouters and Harald Meland.
1666
- Experimental support (disabled by default) for delivering SMTP
1667
chunks to the MTA via multiple threads. Your Python executable
1668
must have been compiled with thread support enabled, and you
1669
must set MAX_DELIVERY_THREADS in mm_cfg.py. Note that this may
1670
not improve your overall system performance.
1672
- Some changes and additions to scripts: bin/find_member now
1673
supports a -w/--owner flag to match regexps against mailing list
1674
owners; bin/find_member now supports multiple regexps;
1675
cron/gate_news command line option changes; new script
1676
bin/dumbdb for debugging purposes; bin/clone_member can now also
1677
remove the old address and change change the list owner
1680
- The News/Mail gateway admin page has a button that lets you do
1681
an explicit catchup of the newsgroup.
1683
- The CVS repository has been moved out to SourceForge. For more
1684
information, see the project summary at
1686
http://sourceforge.net/project/?group_id=103
1688
- Lots 'o bug fixes and some performance improvements.
1690
2.0 beta 2 (07-Apr-2000)
1692
- Rewritten gate_news cron script which should be more efficient
1693
and avoid race and locking problems. Each list now maintains
1694
its own watermark, and when you use the admin CGI script to turn
1695
on gating from Usenet->mail, an automatic mass catch up is done
1696
to avoid flooding the mailing list. cron/gate_news's command
1697
line interface has also changed. See its docstring for
1700
- A new cron script called qrunner has been added to retry message
1701
deliveries that fail because of temporary smtpd problems.
1703
- New command line script called bin/list_lists which does exactly
1704
that: lists all the mailing lists on the system (much like the
1707
- bin/withlist is now directly executable, however if you want to
1708
use python -i, you must still explicitly invoke it.
1709
bin/withlist also now cleans up after itself by unlocking any
1710
locked lists. It does NOT save any dirty lists though - you
1711
must do this explicitly.
1713
- $prefix permissions (and all subdirs) must now be 02775.
1714
bin/check_perms has been updated to fix all the subdir
1717
- "make update" (a.k.a. bin/update) is run automatically when you
1720
- The CGI driver script now puts information about the Python
1721
environment into the logs/error file (but not the diagnostic web
1724
- Bug fixes and some performance improvements
1726
2.0 beta 1 (19-Mar-2000)
1728
- Python 1.5.2 (or newer) is now required.
1730
- A new bundled auto-responder has been added. You can now
1731
configure an autoresponse text for each list's primary
1734
listname@yourhost.com -- the general posting address
1735
listname-request@... -- the automated "request bot" address
1736
listname-admin@... -- the human administrator address
1738
- The standard UI now includes three logos at the bottom of the
1739
page: Dragon's Mailman logo, the Python Powered logo, and the
1740
GNU logo. All point to their respective home pages.
1742
- It is now possible to set the Reply-To: field on lists to an
1743
arbitrary address. NOTE: Reply-To: munging is generally
1744
considered harmful! However for some read-only lists, it is
1745
useful to direct replies to a parallel discussion list.
1747
- There is a new message delivery architecture which uses a
1748
pipeline processor for incoming and internally generated
1749
messages. Mailman no longer contains a bundled bulk-mailer;
1750
instead message delivery is handled completely by the MTA. Most
1751
MTAs give a high enough priority to connections from the
1752
localhost that mail will not be lost because of system load, but
1753
this is not guaranteed (or handled) by Mailman currently. Be
1754
careful also if your smtpd is on a different host than the
1755
Mailman host. In practice, mail lossage has not be observed.
1757
For this reason cron/run_queue is no longer needed (see the
1758
UPGRADING file for details).
1760
Also, you can choose whether you want direct smtp delivery, or
1761
delivery via the command line to a sendmail-compatible daemon.
1762
You can also easily add your own delivery module. See
1763
Mailman/Defaults.py for details.
1765
- A similar pipeline architecture for the parsing of bounce
1766
messages has been added. Most common bounce formats are now
1767
handled, including Qmail, Postfix, and DSN. It is now much
1768
easier to add new bounce detectors.
1770
- The approval pending architecture has also been revamped.
1771
Subscription requests and message posts waiting for admin
1772
approval are no longer kept in the config.db file, but in a
1773
separate requests.db file instead.
1775
- Finally made consistent the use of Sender:/From:/From_ in the
1776
matching of headers for such things as member-post-only. Now,
1777
if USE_ENVELOPE_SENDER is true, Sender: will always be chosen
1778
over From:, however the default has been changed to
1779
USE_ENVELOPE_SENDER false so that From: is always chosen over
1780
Sender:. In both cases, if no header is found, From_ (i.e. the
1781
envelope sender is used). Note that the variable is now
1782
misnamed! Most people want From: matching anyway and any are
1785
- New scripts bin/move_list, bin/config_list
1787
- cron/upvolumes_yearly, cron/upvolumes_monthly, cron/archive,
1788
cron/run_queue all removed. Edit your crontab if you used these
1789
scripts. Other scripts removed: contact_transport, deliver,
1792
- Several web UI improvements, especially in the admin page.
1794
- Remove X-pmrqc: headers to prevent return reciepts for Pegasus
1797
- Security patch when using external archivers.
1799
- Honor "X-Archive: No" header by not putting this message in the
1802
- Changes to the log file format.
1804
- The usual bug fixes.
1808
- All GIFs removed. See http://www.gnu.org/philosophy/gif.html
1811
- Improvements to the Pipermail archiver which make things faster.
1812
Primary change is that the .txt files are not gzipped on every
1813
posted message. Instead, use the new cron script `nightly_gzip'
1814
to gzip the .txt file in batches (this means that the .txt file
1815
will lag behind the on-line archives a little).
1817
- From the C drivers programs, Python is invoked with the -S
1818
option. This tells Python to avoid importing the site module,
1819
which can improve start up time of the Python process
1820
considerably. Note that the command line script invocation has
1823
- New configuration variables PUBLIC_EXTERNAL_ARCHIVER and
1824
PRIVATE_EXTERNAL_ARCHIVER which can contain a shell command
1825
string for os.popen(). This can be used to invoke an external
1826
archiver instead of the bundled Pipermail archiver. See
1827
Defaults.py for details.
1829
- new script `bin/find_member' which can be used to search for a
1830
member by regular expression.
1832
- More child processes are reaped, which should eliminate most
1833
occurrences of zombie processes.
1835
- A few small miscellaneous bug fixes (including PR#99, PR#107)
1836
and improvements to the file locking algorithms.
1840
- Configure script now allows $PREFIX (by default /home/mailman)
1841
to be permissions 02755. Also, configure now tests for
1844
- Workaround, taken from GNU screen, for systems missing
1847
- Return-Receipt-To: and Disposition-Notification-To: headers are
1848
always removed from posted messages (they can be used to troll
1849
for list membership).
1851
- Workaround for MSIE4.01 (and possibly other versions) bug in the
1852
handling of cookies.
1854
- A small collection of other bug fixes.
1856
1.0rc3 (10-Jul-1999)
1858
- new script bin/check_perms which checks (and optionally fixes)
1859
the permissions and group ownerships of the files in your
1860
Mailman installation.
1862
- Removed a bottleneck in the archiving code that was causing
1863
performance problems on highly loaded servers.
1865
- The code that saves a list's state and configuration database
1866
has been made more robust.
1868
- Additional exception handlers have been added in several places
1869
to alleviate problems with Mailman bombing out when it really
1870
would be better to print/log a helpful message.
1872
- The "password" mail command will now mail back the sender's
1873
subscription password when given with no arguments.
1875
- The embarrassing subject-prefixing bug present in rc2 has been
1878
- A small (but nice :) collection of other squashed bugs.
1880
1.0rc2 (14-Jun-1999)
1882
- A security flaw in the CGI cookie mechanisms was discovered --
1883
the Mailman-issued cookies were easily spoofable, implying that
1884
e.g. admin access to all Mailman lists via the web interface
1885
could be compromised. This flaw has now been fixed.
1887
- Handling of SMTP errors has been improved.
1889
- Both "Mass Subscription" via web admin interface and
1890
bin/add_members have been greatly sped up.
1892
- autoconf check for syslog has been revamped, and is now verified
1893
to work on SCO OpenServer 5. If syslog can't be found, the C
1894
wrappers will compile, but without any syslog calls.
1896
- Various other bug fixes.
1898
1.0rc1 (04-May-1999)
1900
- There is a new Mailman logo, contributed by The Dragon De
1901
Monsyne. Please read the INSTALL file for information about
1902
installing the logo in a place your Web server can find it.
1904
- USE_ENVELOPE_SENDER is now set to 0 by default. Turning this on
1905
caused problems for too many users; lists restricted to
1906
member-only posts were not matching the addresses correctly.
1908
- A revamped bin/withlist to be a little more useful.
1910
- A revamped cron/mailpasswds which groups users by virtual hosts.
1912
- The usual assortment of bug fixes.
1914
1.0b11 (03-Apr-1999)
1916
- Bug fixes and improvements for case preservation of subscribed
1917
addresses. The DATA_FILE_VERSION has been bumped to 14.
1919
- New script bin/withlist, useful for interactive debugging.
1921
1.0b10 (26-Mar-1999)
1923
- New script bin/sync_members which can be used to synchronize a
1924
list's membership against a flat (e.g. sendmail :include: style)
1927
- bin/add_members and bin/remove_members now accept addresses on
1928
the command line with `-' as the value for the -d and -n
1931
- Added variable USE_ENVELOPE_SENDER to Defaults.py for site-wide
1932
configuration of address matching scheme. With this variable
1933
set to true, the envelope sender (e.g. Unix "From_" header) is
1934
used to match addresses, otherwise the From: header is used.
1935
Envelope sender matching seems not to work on many systems.
1936
This variable is currently defaulted to 1, but may change to 0
1937
for the final release.
1939
- Reorganization of the membership management admin page. Also
1940
member addresses are linked to their options page. Only the
1941
`General' category has the admin password change form.
1943
- Major reorganization of email command handling and responses.
1944
`notmetoo' is the preferred email command instead of `norcv',
1945
although the latter is still accepted as an argument. If more
1946
than 5 errors are found in the message, command processing is
1949
- User options page now shows the user their case-preserved
1950
subscribed address as well.
1952
- The usual assortment of bug fixes.
1956
- New bin scripts: clone_member, list_members, add_members (a
1957
consolidation of convertlist and populate_new_list which have
1960
- Two new readmes have been added: README.LINUX and README.QMAIL
1962
- New configure option --with-cgi-ext which can be used if your
1963
Web server requires extensions on CGI scripts. The extension
1964
must include a dot (e.g. --with-cgi-ext=".cgi").
1966
- Many bug fixes, including the setgid problem that was causing
1967
mail to be lost on some versions of Linux.
1971
- Bug fixes and workarounds for certain Linuxes.
1973
- Illegal addresses are no longer allowed to be subscribed, from
1978
- Many, many bug fixes. Some performance improvements for large
1979
lists. Some improvements in the Web interfaces. Some security
1980
improvements. Improved compatibility with Python 1.5.
1982
- bin/convert_list and bin/populate_new_list have been replaced
1985
- Admins can now get notification on subscriptions and
1986
unsubscriptions. Posts are now logged.
1988
- The username portion of email addresses are now case-preserved
1989
for delivery purposes. All other address comparisions are
1992
- New default SMTP_MAX_RCPTS that limits the number of "RCPT TO"
1993
SMTP commands that can be given for a single message. Most
1994
MTAs have some hard limit.
1996
- "Precedence: bulk" header and "List-id:" header are now added
1997
to all outgoing messages. The latter is not added if the
1998
message already has a "List-id:" header. See RFC 2046 and
1999
draft-chandhok-listid-02 for details.
2001
- The standard (as of Python 1.5.2) smtplib.py is now used.
2003
- The install process now compiles all the .py files in the
2006
- Versions of the Mailman papers given at IPC7 and LISA-98 are
2011
- Archiving is (finally) back in.
2013
- Administrivia filter added.
2015
- Mail queue mechanism revamped with better concurrency control.
2017
- For recipients that have estmp MTAs, set delivery notification
2018
status so that only delivery failure notices are sent out,
2019
inhibiting 4 hour and N day warning notices.
2021
- Now expire old unconfirmed subscription requests, rather than
2022
keeping them forever.
2024
- Added proposed standard List-Id: header, and our own
2025
X-MailmanVersion header.
2027
- Prevent havoc from attempts to subscribe a list to itself. (!)
2029
- Refine mail command processing to prevent loops.
2031
- Pending subscription DB redone with better locking and cleaner
2034
- posters functionality expanded.
2036
- Subscription policy more flexible, sensible, and
2039
- Various and sundry bug fixes.
2043
- New file locking that should be portable and work w/ NFS.
2045
- Better use of packages.
2047
- Better error logging and reporting.
2049
- Less startup overhead.
2051
- Various and sundry bug fixes.
2056
- A configure script for easy installation (Barry Warsaw)
2058
- The ability to install Mailman to locations other than
2059
/home/mailman (Barry Warsaw)
2061
- Use cookies on the admin pages (also hides admin pages from
2062
others) (Scott Cotton)
2064
- Subscription requests send a request for confirmation, which may
2065
be done by simply replying to the message (Scott Cotton)
2067
- Facilities for gating mail to a newsgroup, and for gating a
2068
newsgroup to a mailing list (John Viega)
2070
- Contact the SMTP port instead of calling sendmail (primarily for
2071
portability) (John Viega)
2073
- Changed all links on web pages to relative links where appropriate.
2076
- Use MD5 if crypt is not available (John Viega)
2078
- Lots of fixing up of bounce handling (Ken Manheimer)
2080
- General UI polishing (Ken Manheimer)
2082
- mm_html: Make it prominent when the user's delivery is disabled
2083
on his option page. (Ken Manheimer)
2085
- mallist:DeleteMember() Delete the option setings if any. (Ken
2090
- mm_message:Deliverer.DeliverToList() added missing newline
2091
between the headers and message body. Without it, any sequence
2092
of initial body lines that _looked_ like headers ("Sir: Please
2093
excuse my impertinence, but") got treated like headers.
2095
- Fixed typo which broke subscription acknowledgement message
2096
(thanks to janne sinkonen for pointing this out promptly after
2097
release). (Anyone who applied my intermediate patch will
2098
probably see this one trigger patch'es reversed-patch
2101
- Fixed cgi-wrapper.c so it doesn't segfault when invoked with
2102
improper uid or gid, and generally wrappers are cleaned up a
2105
- Prevented delivery-failure notices for misdirected subscribe-
2106
confirmation requests from bouncing back to the -request addr,
2107
and then being treated as failing requests.
2109
Implemented two measures. Set the reply-to for the
2110
confirmation- request to the -request addr, and the sender to be
2111
the list admin. This way, bounces go to list admin instead of
2112
to -request addr. (Using the errors-to header wasn't
2113
sufficient. Thanks, barry, for pointing out the use of sender
2114
here.) Second, ignore any mailcommands coming from postmaster
2115
or non-login system type accounts (mailer-daemon, daemon,
2118
- Reenabled admin setting of web_page_url - crucial for having
2119
lists use alternate names of a host that occupies multiple
2122
- Fixed and refined admin-options help mechanism. Top-level visit
2123
to general-category (where the "general" isn't in the URL) was
2124
broken. New help presentation shows the same row that shows on
2125
the actual options page.
2127
- cron/crontab.in crontab template had wrong name for senddigests.
2129
- Default digest format setting, as distributed, is now non-MIME,
2130
on urging of reasoned voices asserting that there are still
2131
enough bad MIME implementations in the world to be a nuisance to
2132
too many users if MIME is the default. Sigh.
2134
- MIME digests now preserve the structure of MIME postings,
2135
keeping attachments as attachments, etc. They also are more
2136
structured in general.
2138
- Added README instructions explaining how to determine the right
2139
UID and GID settings for the wrapper executables, and improved
2140
some of the explanations about exploratory interaction
2143
- Removed the constraint that subscribers have their domain
2144
included in a static list in the code. We might want to
2145
eventually reincorporate the check for the sake of a warning
2146
message, to give a heads up to the subscriber, but try delivery
2149
- Added missing titles to error docs.
2151
- Improved several help details, including particularly explaining
2152
better how real_name setting is used.
2154
- Strengthened admonition against setting reply_goes_to_list.
2156
- Added X-BeenThere header to postings for the sake of prevention
2157
of external mail loops.
2159
- Improved handling of bounced messages to better recognize
2160
members address, and prevent duplicate attempts to react (which
2161
could cause superfluous notices to administrator).
2163
- Added __delitem__ method to mm_message.OutgoingMessage, to fix
2164
the intermediate patch posted just before this one.
2166
- Using keyword substitution format for more message text (ie,
2167
"substituting %(such)s into text" % {'such': "something"}) to
2168
make the substitutions less fragile and, presumably, easier to
2171
- Removed hardwired (and failure-prone) /tmp file logging from
2172
answer.majordomo_mail, and generally spiffed up following janne
2178
Web pages much more polished
2179
- Better organized, text more finely crafted
2180
- Easier, more refined layout
2181
- List info and admin interface overviews, enumerate all public lists
2182
(via, e.g., http://www.python.org/mailman/listinfo - sans the
2184
- Admin interface broken into sections, with help elaboration for
2185
complicated configuration options
2187
Mailing List Archives
2188
- Integrated with a newer, *much* improved, external pipermail - to be
2189
found at http://starship.skyport.net/crew/amk/maintained/pipermail.html
2190
- Private archives protected with mailing list members passwords,
2194
- New spam prevention measures catch most if not all spam without
2195
operator intervention or general constraints on who can post to
2197
require_explicit_destination option imposes hold of any postings
2198
that do not have the list name in any of the to or cc header
2199
destination addresses. This catches the vast majority of random
2201
Other options (forbidden_posters, bounce_matching_headers) provide
2202
for filtering of known transgressors.
2203
- Option obscure_addresses (default on) causes mailing list subscriber
2204
lists on the web to be slightly mangled so they're not directly
2205
recognizable as email address by web spiders, which might be
2206
seeking targets for spammers.
2208
Site configuration arrangement organized - in mailman/mailman/modules:
2209
- When installing, create a mailman/modules/mm_cfg.py (if there's not
2210
one already there), using mm_cfg.py.dist as a template.
2211
mm_default.py contains the distributed defaults, including
2212
descriptions of the values. mm_cfg.py does a 'from mm_defaults.py
2213
import *' to get the distributed defaults. Include settings in
2214
mm_cfg.py for any values in mm_defaults.py that need to be
2215
customized for your site, after the 'from .. import *'.
2216
See mm_cfg.py.dist for more details.
2219
- Major operations (subscription, admin approval, bounce,
2220
digestification, cgi script failure tracebacks) logged in files
2221
using a reliable mechanism
2222
- Wrapper executables log authentication complaints via syslog
2225
- All cgi-script wrapper executables combined in a single source,
2226
easier to configure. (Mail and aliases wrappers separate.)
2228
List structure version migration
2229
- Provision for automatic update of list structures when moving to a
2230
new version of the system. See modules/versions.py.
2233
- Many more module docstrings, __version__ settings, more function
2235
- Most unqualified exception catches have been replaced with more
2236
finely targeted catches, to avoid concealing bugs.
2237
- Lotsa long lines wrapped (pet peeve:).
2239
Random details (not complete, sorry):
2240
- make archival frequency a list option
2241
- Option for daily digest dispatch, in addition to size threshhold
2242
- make sure users only get one periodic password notifcation message for
2243
all the lists they're on (repaired 1.0b1.1 varying-case mistake)
2244
- Fix rmlist sans-argument bug causing deletion of all lists!
2245
- doubled generated random passwords to four letters
2246
- Cleaned lots and lots of notices
2247
- Lots and lots of html page cleanup, including table-of-contents, etc
2248
- Admin options sections - don't do the "if so" if the ensuing list
2250
- Prevent list subject-prefix cascade
2252
- Various spam filters - implicit-destination, header-field
2253
- Adjusted permissions for group access
2254
- Prevent redundant subscription from redundant vetted requests
2255
- Instituted centralize, robustish logging
2256
- Wrapper sources use syslog for logging (john viega)
2257
- Sorting of users done on presentation, not in list.
2258
- Edit options - give an error for non-existent users, not an options page.
2259
- Bounce handling - offer 'disable' option, instead of remove, and
2260
never remove without notifying admin
2261
- Moved subscribers off of listinfo (and made private lists visible
2262
modulo authentication)
2263
- Parameterize default digest headers and footers and create some
2264
- Put titles on cgi result pages that do not get titles (all?)
2265
- Option for immediate admin notifcation via email of pending
2266
requests, as well as periodic
2267
- Admin options web-page help
2268
- Enabled grouped and cascading lists despite implicit-name constraint
2269
- Changed subscribers list so it has its own script (roster)
2270
- Welcome pages: http://www.python.org/mailman/{admin,listinfo}/
2273
- Fixed a bug in sending out digests added when adding disable mime option.
2274
- Added an option to not notify about bounced posts.
2275
- Added hook for pre-posting filters. These could be used to
2276
auto-strip signatures. I'm using the feature to auto-strip footers
2277
that are auto-generated by mail received from another mailing list.
2280
- Made admin password work ubiquitously in place of a user password.
2281
- Added an interface for getting / setting user options.
2282
- Added user option to disable mime digests (digested people only)
2283
- Added user option to not receive your own posts (nondigested people only)
2284
- Added user option to ack posts
2285
- Added user option to disable list delivery to their box.
2286
- Added web interface to user options
2287
- Config number of sendmail spawns on a per-list basis
2288
- Fixed extra space at beginning of each message in digests...
2289
- Handled comma separated emails in bounce messages...
2290
- Added a FindUser() function to MailList. Used it where appropriate.
2291
- Added mail interface to setting list options.
2292
- Added name links to the templates options page
2293
- Added an option so people can hide their names from the subscription list.
2294
- Added an answer_majordomo_mail script for people switching...
2296
0.93 (18/20-Jan-1997)
2297
- When delivering to list, don't call sendmail directly. Write to a file,
2298
and then run the new deliver script, which forks and exits in the parent
2299
immediately to avoid hanging when delivering mail for large lists, so that
2300
large lists don't spend a lot of time locked.
2301
- GetSender() no longer assumes that you don't have an owner-xxx address.
2302
- Fixed unsubscribing via mail.
2303
- Made subscribe via mail generate a password if you don't supply one.
2304
- Added an option to clobber the date in the archives to the date the list
2305
resent the post, so that the archive doesn't get mail from people sending
2306
bad dates clumped up at the beginning or end.
2307
- Added automatic error message processing as an option. Currently
2308
logging to /tmp/bounce.log
2309
- Changed archive to take a list as an argument, (the old way was broken)
2310
- Remove (ignore) spaces in email addresses
2311
- Allow user passwords to be case insensitive.
2312
- Removed the cleanup script since it was now redundant.
2313
- Fixed archives if there were no archives.
2314
- Added a Lock() call to Load() and Create(). This fixes the
2315
problem of loading then locking.
2316
- Removed all occurances of Lock() except for the ones in mailing
2317
list since creating a list
2318
now implicitly locks it.
2319
- Quote single periods in message text.
2320
- Made bounce system handle digest users fairly.
2322
0.92 (13/16-Jan-1997)
2323
- Added Lock and Unlock methods to list to ensure each operation is atomic
2324
- Added a cmd that rms all files of a mailing list (but not the aliases)
2325
- Fixed subscribing an unknown user@localhost (confirm this)
2326
- Changed the sender to list-admin@... to ensure we avoid mail loops.
2327
- check to make sure there are msgs to archive before calling pipermail.
2328
- started using this w/ real mailing lists.
2329
- Added a cron script that scours the maillog for User/Host unknown errs
2330
- Sort membership lists
2331
- Always display digest_is_default option
2332
- Don't slam the TO list unless you're sending a digest.
2333
- When making digest summaries, if missing sender name, use their email.
2334
- Hacked in some protection against crappy dates in pipermail.py
2335
- Made it so archive/digest volumes can go up monthly for large large lists.
2336
- Number digest messages
2337
- Add headers/footers to each message in digest for braindead mailers
2338
- I removed some forgotten debug statements that caused server errors
2339
when a CGI script sent mail.
2340
- Removed loose_matches flag, since everything used it.
2341
- Fixed a problem in pipermail if there was no From line.
2342
- In upvolume_ scripts, remove INDEX files as we leave a volume.
2343
- Threw a couple of scripts in bin for generating archives from majordomo's
2344
digest-archives. I wouldn't recommend them for the layman, though, they
2345
were meant to do a job quickly, not to be usable.
2348
- broke code into mixins for managability
2349
- tag parsing instead of lots of gsubs
2350
- tweaked pipermail (see comments on pipermail header)
2351
- templates are now on a per-list basis as intended.
2352
- request over web that your password be emailed to you.
2353
- option so that web subscriptions require email confirmation.
2354
- wrote a first pass at an admin interface to configurable variables.
2355
- made digests mime-compliant.
2356
- added a FakeFile class that simulates enough of a file object on a
2357
string of text to fool rfc822.Message in non-seek mode.
2358
- changed OutgoingMessage not to require its args in constructor.
2359
- added an admin request DB interface.
2360
- clearly separated the internal name from the real name.
2361
- replaced lots of ugly, redundant code w/ nice code.
2362
(added Get...Email() interfaces, GetScriptURL, etc...)
2363
- Wrote a lot of pretty html formatting functions / classes.
2364
- Fleshed out the newlist command a lot. It now mails the new list
2365
admin, and auto-updates the aliases file.
2366
- Made multiple owners acceptable.
2367
- Non-advertised lists, closed lists, max header length, max msg length
2368
- Allowed editing templates from list admin pages.
2369
- You can get to your info page from the web even if the list is closed.
2374
indent-tabs-mode: nil