Next: Internationalization Issues
Up: GNU Mailman, Internationalized
Previous: Introduction
``GNU Mailman'' (informally referred to as just ``Mailman''), is a
system for managing electronic mailing lists. It is implemented
primarily in Python, an object-oriented, very high-level, open source
programming language. Mailing lists are administered by a list owner,
and users can interact with the list - including subscribing and
unsubscribing - through the web and through email. Site
administrators can also interact with Mailman via a suite of command
line scripts, or even via the interactive Python prompt. Mailman is
the official mailing list manager of the GNU project and is available
under terms of the GNU General Public License [GPL].
Mailman strives for standards compliance, and as such is interoperable
with a wide range of web servers and browsers, and mail servers and
clients. Of the web servers, it requires the ability to execute CGI
scripts, and of mail servers it requires the ability to filter
messages through programs. Apache is probably the most widely used
web server for Mailman, and any of the Big 4 mail servers (Sendmail,
Postfix, Qmail, and Exim) will work just fine. The HTML that Mailman
outputs is extremely pedestrian so just about any web browser should
work with it, as long as it supports cookies. Mailman should work
with any MIME-compliant mail reader. Mailman works on any Unix-like
operating system, such as GNU/Linux.
Mailman supports a wide range of features, such as:
- User selectable delivery modes. Members can elect to receive
messages immediately, or in batches called digests. Two forms
of digests are supported, RFC 1153 style plain text
digests [RFC1153], and
MIME multipart/digest style digests. Non-digest deliveries can
be personalized specifically for the recipient of the message.
This means that various aspects of the message, i.e. the header
or footer, or the To field, can contain information
specific to the member receiving the message.
- Extensive privacy options which allow a list administrator to
select policies for subscribing and unsubscribing (open,
confirmation required, or approval required), policies for
posting to the list (open, moderated, members only, approved
posters only), and some limited spam defenses.
- Automatic bounce processing. Bouncing addresses are the bane of
any mailing list, and Mailman provides two mechanisms for
automatic bounce detection, regular expression based bounce
matching and Variable Envelope Return Paths [VERP].
RFC 3464 [RFC3464] and the older RFC it replaces
[RFC1894] describe a standard format for bounce
notifications. However, many mail systems ignore or incorrectly
implement this standard. For recognizing bounce messages,
Mailman has an extensive set of regular expression based matches
used to dig the bouncing address out of the notice. For
fool-proof bounce detection, Mailman also supports VERP, a
technique where the intended recipient's address as it
appears on the mailing list is encoded into the envelope sender
of the message. Because remote mail servers are required to
send bounces to the envelope sender, Mailman can unambiguously
decode the intended recipient's address and register an accurate
bounce. Note that technically, VERP must be implemented in the
mail server, but Mailman's use of the technique is close enough
to warrant the label.
- Archiving. Mailman comes bundled with an archiver called
Pipermail. Pipermail's chief advantages are that it comes
bundled, that it is implemented in Python, and that in Mailman
2.1 it is internationalized, allowing the display of
messages in alternative languages and character encodings. Its
primary disadvantages are that it doesn't support searching and
isn't very customizable. Mailman is easily integrated with
external archivers.
- A mail to news gateway. Mailman can be configured to gateway
lists to and from Usenet newsgroups. For example, the
comp.lang.python newsgroup is gatewayed to the
python-list@python.org mailing list. Even moderated lists, such
as comp.lang.python.announce can be gatewayed, with Mailman
serving as the moderation tool.
- Auto-responder, content filtering, and topics. The
auto-responder can be set up to send a canned message whenever
someone posts to the list, or emails the list owner or -request
robot. Content filtering allows the list owner to explicitly
filter or pass specific MIME (Multipurpose Internet Mail
Extensions [RFC2045]) content types. Topics allow the
list owner to assign incoming messages to any of a configurable
number of groups, and members can ``subscribe'' to a specific
topic, receiving only the subset of list traffic that matches
the desired topics.
- Virtual domains. Mailman can be used on a mail server that
supports multiple virtual domains. For example, the python.org
and zope.org mail domains are run on the same machine, from the
same Mailman installation. The one limitation in Mailman 2.1 is
that a mailing list with the same name may not appear in more
than one domain. This restriction will be lifted in future
versions.
Mailman also provides each list with its own home page (called a
``listinfo'' page) which can be customized through the web. Mailing
lists can be automatically created and deleted through the web (with
proper support from the mail server). Mailman also provides web-based
approval of moderated messages and subscriptions. There are a host of
other smaller new features in Mailman 2.1 which won't be described in
this paper.
Next: Internationalization Issues
Up: GNU Mailman, Internationalized
Previous: Introduction
Barry Warsaw
2003-04-08