 
 
 
 
 
 
   
 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