Sympa versus Majordomo

Majordomo is an extremely popular software on the Internet, and is actually a standard. Nevertheless, Majordomo is not perfect, and it was not because it is chosen by most people that it is the best! (Who thinks that the operating system used on most PCs is the best one?)

We will examine Sympa (2.2.5) and Majordomo (1.94.4) as compared with a few simple and sometimes, perhaps, rather subjective criteria.

May 1999
Serge Aumont, Comité Réseaux des Universités


Multilingual use

Sympa uses one dictionary for all messages that it is likely to send to its users. Sympa can therefore run with any of these dictionaries. At the present time, available dictionaries for Sympa are french, english and spanish. Anyone can easily design a message dictionary specific to his needs, either for use with another language, or to customize it in a major way for aspecific use. This job should not be carried out when installing a new release of Sympa.

Majordomo was written without the forethought of using another language. The translation of Majordomo messages into French or into another language is not part of Majordomo distribution. It is likely to require direct interventions on the Majordomo code. It should be noted that Majordomo operating messages are not coded in MIME, and these messages exclusively use the US-ASCII charset.

Membership parameters

Sympa lets you choose how to define the members for a list. As any list manager, the list can be defined using subscribe and add commands.

In addition Sympa allows a list member definition to be a dynamic inclusion of e-mails from various sources. You may :

  • include a few lists in another one.
  • extract e-mails from a LDAP directory
  • include e-mails from a SQL server
  • dump e-mails from a file.

These are clean inclusion in opposition with dirty subscription using a third list to subscribe one to another one. This inclusion respects the list properties (example: if the list is private, subscribers from an included list are allowed to send mail to the list).

Every list is defined by subscriptions. Like Sympa, Majordomo allows or not membership requests and may request a confirmation (unique key) to be sent. The list can be setup to inform owners of membership or membership removal requests.

Address management <list>-request, <list>-editor
Sympa handle the following adresses for each list :
  • <list>-request
  • <list>-editor
  • <list>-subscribe
  • <list>-unsubscribe

You do not need to update sendmail aliases anymore during list lifetime. This solution allows automatic list creation or update.

Majordomo manager needs to set the real <list>-request e-mail both in sendmail aliases and list configuration. Majordomo documentation recommends using an external wrapper in order to filter messages and re-route those containing commands (addressed to <list name>-request) to Majordomo. Let us remind you that -request convention is applied to any automaton address; in theory, it makes it possible to contact, in plain language, the person managing the automaton. The choice of Majordomo would be an excellent one if messages not complying with its syntax were sent to the list manager address instead of being rejected as being syntactically incorrect.

Address management <liste>-owner

Sympa does not directly manage this address, designed to receive error reports. A contributed software makes it possible to keep, analyze, classify and present them through a web interface for ease of management of these undelivery reports.This software, AnaBounce, is not packaged yet.

Majordomo documentation suggests re-routing messages for this address to an automatic program, but nothing is done.

Abuse protection

Sympa allows a precise definition of who is allowed to post messages in a list. The most efficient protection (apart from moderated lists) is to limit the sending right solely to members (notion of private lists). Sympa also proposes various modes with prior sender authentication or editor validation of messages from non-subscribers .

Majordomo does not propose this type of choice, but allows having an exhaustive list of authorized sender addresses, and therefore to adopt the behaviour of Sympa private lists. In addition, Majordomo rejects messages if they correspond to regular expressions applied to headers or to the body of each message.

Removal of membership

The expire command . In the list of members, Sympa keeps the date of the last procedure carried out by the member (membership, membership confirmation, message transmission in list, etc.). This date can be used by the owner of the list to ask people who are remaining passively on the list for a certain period of time to confirm their membership. This approach makes it possible to periodically delete wrong addresses and for those who want to be removed from the membership to do so without doing anything. This is an important component of Netiquette respect, so as not to impose a continuous mail flux on people, even if the effort to remove the membership is still limited.

The remind command completes Sympa features in order to send to each subscriber a personal subscription reminder.

Majordomo authorizes the unsubscribe * command. (Sympa and Majordomo offer the same which command to receive the list of lists of which one is a member).

Membership options

Members can opt for various membership options; the conceal option makes it possible not to appear in the list of members (concept of unlisted numbers). The digest option is processed in the same way as a special sub-list receive mode.

The digest service is implemented by Majordomo, as under a special list. You can choose this receive mode by joining a special sub-list. This solution, though simpler to implement, is also more confusing for subscribers who risk no longer knowing how to remove their membership or how to be a member of both lists. Administration of lists implementing this service is much more of an ordeal: all parameters are duplicated, which has consequences on the procedures reserved for members.

Ease of installation

The Sympa installation requires prior installation of DB Berkeley, as well as CPAN modules (MD5, Msgcat and MailTools). In addition, Sympa requires at least release 5.003 of Perl.

Majordomo requires very few strict prerequisites (Perl 4.036 or Perl 5.002 and later). In general, it is not necessary to make prior installations in your environment.


Sympa was designed to obtain extra-high performance. In this light, it adopts a very conventional architecture based on spools (the principle of which is the incoming message spool), and a demon, which processes messages in these spools in the background. A system of priority assigns a more or less important «reactivity» to each list. The Sympa demon prepares distribution of messages by sharing the list of addresses among several sendmail processes. It controls the maximum number of these processes as well as the number of addressees per sendmail call and the order of processing of each destination so as to optimize the grouping factor per SMTP session (it is even possible to define the order of processing for destination fields).
Several Sympa configuration file parameters are used to adjust the behavior of this demon and of its "children" without breaking the machine down, and these adjustments are highly accurate. For very large installations, it is possible to compile a dedicated sendmail for these transmission tasks in numbers, and distinct from the sendmail awaiting message reception. For example, by deleting the address canonisation or the anti-spam rules.

Majordomo was initially designed as an addition to sendmail, designed to simplify management of alias include files when they are used for mailing lists (hence its name). There is no Majordomo demon; it is therefore not possible to stop mailing list service without stopping the entire mail system. The arrival of traffic peaks for large lists is likely to break the system down. Furthermore, mailing is entirely entrusted to sendmail, while sendmail is reputed to not process messages with a large number of addressees in an efficient manner.


To create a list, no matter what its run mode, consists of recording a minimum of 3 aliases <nom-liste>, <nom-liste>-request and <nom-liste>-owner, then of creating the directory which contains the entire context of this list (archives, welcome file, list of members, configuration file in which the creation will be initialized). Any future administration of a list is through the description file for this list.
A WWSympa wew interface is in the process of being created and will be distributed in the contributions; it includes, in particular, a list creation form and an analyzer for undelivered reports.
Another contributed software, SympaTiK, proposes an X interface written in Tcl/Tk to create and change lists.

Configuration of a Majordomo list can require ten or so different mailing aliases. Services such as archiving and digest mode correspond to addresses which must be members of the list (it should be noted that it is not impossible for a bad joker to send messages directly to the archiver or to the members of the digest sublist). Majordomo configuration parameters are therefore distributed between the aliases and the confuguration file of each list.
It should be noted that the general Majordomo configuration file is in fact a part of the Perl source.

Configuration / Customization

Not only the welcome message can be customized for each list. Each list manager can prepare it's own message for :

  • remove message ("you have been removed from list xx")
  • signoff message ("we have received your unsubscription")
  • confirmation ("please confirm you subscription to list xxx")
  • reminder ("Your are subscriber of list XXX with email yyy")
  • etc
In particular, this is a way to use a langage preference per list.

All those messages are part of Majordomo source code.