Review of MMDF

MMDF is an MTA for UNIX and UNIX-like systems (including FreeBSD, OpenBSD, Linux, SunOS (a.k.a. Solaris), and HP/UX). It was initially developed by Dave Crocker (one of the authors of RFC 822) at roughly the same time that Sendmail was first developed, and indeed has long shipped as standard on some Unices, most notably SCO Unix.

MMDF has an unofficial web page run by its users. (Many of the links to MMDF documentation on that page point to pages, maintained by Jerry Sweet at Irvine Compiler, that no longer exist. Instead read Mark Vasoll's MMDF pages at C2 Technologies.)

It supports one of the more recent innovations that one would expect of a modern mail system:

MMDF is geared towards Internet mail paradigms.

One of the factors that contributed to the ascendancy of Sendmail over MMDF is that MMDF operates largely using the Internet paradigm, and thus is hard to employ when dealing with non-Internet mail transports. It is not simple to persuade MMDF to handle envelope and header rewriting into non-Internet formats, for example, whereas Sendmail has a general-purpose envelope and header rewriting mechanism.

Ironically, what was a disadvantage for MMDF in the early 1980s is an advantage now. Unlike Sendmail, MMDF is not burdened by the extra complexity of mechanisms for dealing with mail transports that the contemporary mail administrator is unlikely to be concerned with. The design of MMDF is geared towards all mailbox names being in RFC 821/RFC 822 form, and towards using the normal hierarchical Internet domain-name naming scheme. MMDF is comparatively simple to use in the modern SMTP world.

There are some rough edges. MMDF allows an administrator to mix routing using the Internet DNS with static routing, using locally configured tables. However, MMDF's original design employed solely static tables, and the DNS support, in particular in coping with transient DNS failures, is imperfect.

MMDF is (fairly) modular.

Like qmail and postfix, MMDF comprises a suite of programs, each of which handles one area of the overall job:

MMDF's security partitioning is not as fine grained as that of qmail. For example, qmail separates two parts of message submission, header canonicalisation and queue file creation, into two separate programs, qmail-inject and qmail-queue. With MMDF, both of these subtasks are performed within a single program, submit.

MMDF organises mail processing around the concept of channels. A message is considered to arrive at the mail system along one channel, and leave along another. A suite of table driven rules controls what channels submit enqueues mail into, and separate instances of deliver can be run for individual channels if required (This allows fine grained control of the delivery of mailing list traffic by dedicating a separate channel and deliver dæmon to it, for example.).

MMDF is secure.

MMDF is designed to make security controls on message routing and delivery easy to configure, causing it to have been a favourite of military and governmental organisations for a long time.

The authorisation mechanism operates by restricting access to channels, depending from the originating user and the originating channel. MMDF can therefore control the routing of mail according to who it came from, how it arrived, and where it is going to, allowing one to (for example) restrict access between a private corporate mail network and the public Internet.

MMDF is the MTS that pioneered the mechanism of a "secure maildrop". The directory where files are placed to submit messages to the MTS is not accessible to the world, being one level below a directory that is not world executable. The submit program is set-UID to the UID of the owner of the parent directory, allowing it to change directory to the maildrop directory. The maildrop directory itself is world writable, allowing submit to revert back to the UID of the invoking user for actually creating the message files.

MMDF provides a sorting/forwarding mechanism: .maildelivery files.

With MMDF, each user controls all local parts that begin with the user's username and an equals ('=') sign, allowing each user to have an unlimited number of different local parts. Delivery is controlled by a ~/.maildelivery file in the user's home directory, which contains a set of pattern matching rules specifying how mail is to be delivered.

Where and what to download

MMDF can be installed from compressed tarballs containing the source, available via FTP or HTTP from the Mathematics department of the University of Kaiserslautern in Germany.

© Copyright 1998–2004 Jonathan de Boyne Pollard. "Moral" rights asserted.
Permission is hereby granted to copy and to distribute this web page in its original, unmodified form as long as its last modification datestamp information is preserved.