2010 LWN.net article discusses procmail being orphaned for (already)
about a decade:
https://lwn.net/Articles/416901/
(However, it should be noted that the Debian Project maintains procmail,
and can be regarded as functionally the current upstream.)
Procmail is the most common local delivery and filtering agent on *ix systems, and was written in C by S.R. van den Berg and Philip Guenther. Supports mbox and Maildir mail stores. Procmail is a very mature codebase that can do anything at all possible with e-mail. At the same time, it suffers an infamously difficult command syntax.
1. Alternatives to procmail as a local delivery agent (LDA):
Of the procmail alternatives detailed below, by far the most used are Courier's maildrop and Dovecot's deliver aka 'lda' (optionally with the latter's Sieve plug-in module). See LWN.net article (above) for details.
avenger.local, a local mail delivery agent that enables users to set up multiple "extension" email addresses and process mail differently for each addresses, http://www.mailavenger.org/avenger.local.html
biffles, like procmail, filters and tosses mail, but does so in batch fashion, intended to be used off-line by dial-up clients where mail is fetched via a nightly cron-job, amassed localy, and then sorted, http://biffles.sourceforge.net/
Courier maildrop (LDA and filtering agent codebase written in C++ by Sam Varshavchik for Courier Mail Server, formerly Courier-MTA) http://www.courier-mta.org/maildrop/
Cyrus's LDA is part of the Cyrus IMAP/POP3 server (but note that it is limited to storing mail in the bespoke mail store), http://www.cyrusimap.org
DBMail - LDA written in C by Eelco van Beek and Roel Rozendaal. Provides IMAP and POP3 daemons that use a MySQL or PostgreSQL mail store. http://www.dbmail.org/
deliver, coded in C by Chip Salzenberg starting in 1991 as a replacement for Xenix's /usr/lib/mail/mail.local, and (now) does both mail drop-off and filtering. Largely replaced by procmail. http://sourceforge.net/projects/deliver/
Dovecot deliver, also known as 'lda', http://wiki2.dovecot.org/LDA
dystill - A filtering MySQL database driven mail delivery agent, http://www.dystill.org/
Exim filters, http://www.exim.org/exim-html-current/doc/html/spec_html/filter.html
fdm, a combined mail retrieval agent and mail delivery agent, https://github.com/nicm/fdm
femail, simple LDA providing a sendmail-compatible command line interface and forwarding mail via SMTP. As opposed to many other implementations, it is RFC 2821 and 2822 compatible. http://quigon.bsws.de/femail/
femtomail, a minimal LDA with Maildir support, https://git.lekensteyn.nl/femtomail/
GNU mailutils maidag and movemail, https://www.gnu.org/software/mailutils/mailutils.html
Grandma, an intentionally crude local delivery agent. Grandma sorts incoming email on STDIN to Maildirs by email addresses listed in files according to a priority in a run control file. Grandma was written as a replacement for maildrop with more foolproof configuration/filtering syntax and better ability to integrate with external programs. It was written in Perl by David Benfell. Supports Maildir mail stores. http://sourceforge.net/projects/grandma/
mail.local (sometimes called bin/mail). The simplest possible local LDA. Processes alias definitions but not .forward files; has no filtering abilities.
mailagent, a Perl-based LDA and filtering agent by Raphael Manfredi using lex-like rules, easier to configure and with more functionality than procmail, http://sourceforge.net/projects/mailagent/
Maildir Bulletin, a program is designed to deliver bulletin messages to thousands of users on a system. http://doc.coker.com.au/projects/maildir-bulletin/
Mailfilter (somewhat POP3-specific), http://mailfilter.sourceforge.net/
mailprocd is a mail delivery, classification and filtering daemon, embedding the Perl interpreter, as Apache mod_perl does, in order to use SpamAsassin efficiently for antispam operation. http://mailprocd.hypertriton.com/
mvmda is an LDA and processing engine in C, incorporating features for spam filtering, other filtering, and making decisions about how incoming mail is treated. Controlled by the mfl scripting language that combines an implementation of the Sieve filtering language and and a C-like automation language. http://www.mvmf.org/mvmda/
Postfix local(8), http://www.postfix.org/local.8.html
Postfix postdrop, http://www.postfix.org/postdrop.1.html
Postfix virtual(8), http://www.postfix.org/virtual.8.html
Pymadea (PYthon MAil DElivery Agent) is a simple replacement for Procmail written in Python. Configuration files are ordinary Python scripts. Modules from Standard Library are used where possible. Very small codebase supporting only mbox as a target. Last updated 2006. http://www.sourcefiles.org/Internet/Mail/Delivery_Agents/
qmail-local is an LDA by Daniel J. Bernstein that reads a mail message and delivers it to a Maildir tree. http://www.qmail.org/man/man8/qmail-local.html
Sendmail. You can use Eric Altman's sendmail binary as your local delivery agent, in which case it gets flags like "-oem -i -f". But really, you should use practically anything else. http://www.sendmail.org/
smtp.pl is a simple LDA in Perl, http://www.muquit.com/muquit/software/smtp_pl/smtp_pl.html
sortmail is an LDA in Python by Ian Zimmerman, with support for mbox and Maildir, filtering support, and ability to deliver to multiple mailboxes. https://pypi.python.org/pypi/sortmail
TMDA, http://tmda.net can be used as an LDA, but you shouldn't, because C-R systems are harmful
topdrop is a simple, fast LDA supporting Maildir format only. Last updated 2000; upstream maintainer has vanished. http://www.sourcefiles.org/Internet/Mail/Delivery_Agents/
Trestlemail is a simple Perl-based LDA that works with Fetchmail to automatically redistribute multi-drop mail. http://sourceforge.net/projects/trestlemail/
Yample is a processing language and LDA written in Perl, sorting based on criteria you define. Intergrates with SpamAsssassin. Delivers to mbox, Maildir, or pipes.http://yample.sourceforge.net/
2. Sieve
Sieve is not a specific piece of software but rather a domain-specific language for mail filtering -- and is highly regarded for that purpose. A number of LDAs support Sieve scripting either natively or via plug-ins, and are listed at the Sieve language Web site: http://sieve.info/servers. Note that some MTAs, notably Exim4 and some Sendmail, Inc. codebases, also support Sieve scripting.3. LDA vs. MDA
Many online resources including Wikipedia and the Mailman documentation claim that a 'local delivery agent' (LDA) is synonymous with 'mail delivery agent' (MDA). There is actually an old-timer's distinction: A local delivery agent is a program (called by, e.g., the receiving Mail Transfer Agent) that implements a mail delivery protocol to a local user. A mail delivery agent is the same except the destination user can be either local or remote, and thus MDAs include IMAP and POP daemons.
The above the distinction is increasingly ignored in the technical world at large, but, for whatever it's worth, this knowledgebase has separate MDAs coverage. It should be consulted if only because some codebases listed include LDA functionality.
4. LMTP Implementations
Missing so far from this document (and knowledgebase) is a proper account of the LMTP protocol and software that implement that optional layer of the Internet mail stack. LMTP is an optional layer below SMTP and above other software such as MLMs, mail remote-access daemons, and LDAs/MDAs. Its existence is useful for, for example, permitting GNU Mailman and similar MLMs operate within multiple virtual domains each run by a different MTA.
LDAs are not the same as LMTP implementations, and, to my knowledge, with LMTP implementations, you still need an LDA.
- Dovecot LMTP Server, http://wiki2.dovecot.org/LMTP