1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
Mailman - The GNU Mailing List Management System
Copyright (C) 1998-2008 by the Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
Here is a history of user visible changes to Mailman.
3.0 alpha 1 -- "Leave That Thing Alone"
(02-Apr-2008)
User visible changes
- So called 'new style' subject prefixing is the default now, and the only
option. When a list's subject prefix is added, it's always done so
before any Re: tag, not after. E.g. '[My List] Re: The subject'.
- RFC 2369 headers List-Subscribe and List-Unsubscribe now use the
preferred -join and -leave addresses instead of the -request address
with a subject value.
Configuration
- There is no more separate configure; make; make install step. Mailman
3.0 is a setuptools package.
- Mailman can now be configured via a 'mailman.cfg' file which lives in
$VAR_PREFIX/etc. This is used to separate the configuration from the
source directory. Alternative configuration files can be specified via
-C/--config for most command line scripts. mailman.cfg contains Python
code. mm_cfg.py is no more. You do not need to import Defaults.py in
etc/mailman.cfg. You should still consult Defaults.py for the list of
site configuration variables available to you.
See the etc/mailman.cfg.sample file.
- PUBLIC_ARCHIVE_URL and DEFAULT_SUBJECT_PREFIX now takes $-string
substitutions instead of %-string substitutions. See documentation in
Defaults.py.in for details.
- Message headers and footers now only accept $-string substitutions;
%-strings are no longer supported. The substitution variable
'_internal_name' has been removed; use $list_name or $real_name
instead. The substitution variable $fqdn_listname has been added.
DEFAULT_MSG_FOOTER in Defaults.py.in has been updated accordingly.
- The KNOWN_SPAMMERS global variable is replaced with HEADER_MATCHES. The
mailing list's header_filter_rules variable is replaced with
header_matches which has the same semantics as HEADER_MATCHES, but is
list-specific.
- DEFAULT_MAIL_COMMANDS_MAX_LINES -> EMAIL_COMMANDS_MAX_LINES
- All SMTP_LOG_* templates use $-strings and all consistently write the
Message-ID as the first item in the log entry.
- DELIVERY_MODULE now names a handler, not a module (yes, this is a
misnomer, but it will likely change again before the final release).
Architecture
- Internally, all strings are Unicodes.
- Implementation of a chain-of-rules based approach for deciding whether a
message should initially be accepted, held for approval,
rejected/bounced, or discarded. This replaces most of the disposition
handlers in the pipeline. The IncomingRunner now only processes message
through the rule chains, and once accepted, places the message in a new
queue processed by the PipelineRunner.
- Substantially reworked the entire queue runner process management,
including mailmanctl, a new master script, and the qrunners. This
should be much more robust and reliable now.
- The Storm ORM is used for data storage, with the SQLite backend as the
default relational database.
- Zope interfaces are used to describe the major components.
- Users are now stored in a unified database, and shared across all
mailing lists.
- Mailman's web interface is now WSGI compliant. WSGI is a Python
standard (PEP 333) allowing web applications to be (more) easily
integrated with any number of existing Python web application
frameworks. For more information see:
http://www.wsgi.org/wsgi
http://www.python.org/dev/peps/pep-0333/
Mailman can still be run as a traditional CGI program of course.
- Mailman now provides an LMTP server for more efficient integration with
supporting mail servers (e.g. Postfix, Sendmail). The Local Mail
Transport Protocol is defined in RFC 2033:
http://www.faqs.org/rfcs/rfc2033.html
- Virtual domains are now fully supported in that mailing lists of the
same name can exist in more than one domain. This is accomplished by
renaming the lists/ and archives/ subdirectories after the list's
posting address. For example, data for list foo in example.com and list
foo in example.org will be stored in lists/foo@example.com and
lists/foo@example.org.
For Postfix or manual MTA users, you will need to regenerate your mail
aliases. Use bin/genaliases.
VIRTUAL_HOST_OVERVIEW has been removed, effectively Mailman now operates
as if it were always enabled. If your site has more than one domain,
you must configure all domains by using add_domain() in your
etc/mailman.cfg flie (see below -- add_virtual() has been removed).
- If you had customizations based on Site.py, you will need to
re-implement them. Site.py has been removed.
- The site list is no more. You can remove your 'mailman' site list
unless you want to retain it for other purposes, but it is no longer
used (or required) by Mailman. You should set NO_REPLY_ADDRESS to an
address that throws away replies, and you should set SITE_OWNER_ADDRESS
to an email address that reaches the person ultimately responsible for
the Mailman installation. The MAILMAN_SITE_LIST variable has been
removed.
- qrunners no longer restart on SIGINT; SIGUSR1 is used for that now.
Internationalization Big Changes
- Translators should work only on messages/<lang>/LC_MESSAGES/mailman.po.
Templates files are generated from mailman.po during the build process.
New Features
- Confirmed member change of address is logged in the 'subscribe' log,
and if admin_notify_mchanges is true, a notice is sent to the list
owner using a new adminaddrchgack.txt template.
- There is a new list attribute 'subscribe_auto_approval' which is a list
of email addresses and regular expressions matching email addresses
whose subscriptions are exempt from admin approval. RFE 403066.
Command line scripts
- Most scripts have grown a -C/--config flag to allow you to specify a
different configuration file. Without this, the default etc/mailman.cfg
file will be used.
- the -V/--virtual-host-overview switch in list_lists has been removed,
while -d/--domain and -f/--full have been added.
- bin/newlist is renamed bin/create_list and bin/rmlist is renamed
bin/remove_list. Both take fully-qualified list names now (i.e. the
list's posting address), but also accept short names, in which case the
default domain is used. newlist's -u/--urlhost and -e/--emailhost
switches have been removed. The domain that the list is being added to
must already exist.
- Backport the ability to specify additional footer interpolation
variables by the message metadata 'decoration-data' key.
Bug fixes and other patches
- Removal of DomainKey/DKIM signatures is now controlled by Defaults.py
mm_cfg.py variable REMOVE_DKIM_HEADERS (default = No).
- Queue runner processing is improved to log and preserve for analysis in
the shunt queue certain bad queue entries that were previously logged
but lost. Also, entries are preserved when an attempt to shunt throws
an exception (1656289).
- The processing of Topics regular expressions has changed. Previously the
Topics regexp was compiled in verbose mode but not documented as such
which caused some confusion. Also, the documentation indicated that
topic keywords could be entered one per line, but these entries were not
handled properly. Topics regexps are now compiled in non-verbose mode
and multi- line entries are 'ored'. Existing Topics regexps will be
converted when the list is updated so they will continue to work.
- The List-Help, List-Subscribe, and List-Unsubscribe headers were
incorrectly suppressed in messages that Mailman sends directly to
users.
- The 'adminapproved' metadata key is renamed 'moderator_approved'.
|