Original author(s) | Stephen R. van den Berg |
---|---|
Developer(s) | Philip A. Guenther |
Initial release | December 7, 1990 |
Stable release |
3.22 / September 10, 2001
|
Development status | Finished |
Operating system | Any Unix-like |
Platform | Cross-platform |
Type | Mail filter |
License | GPL or Artistic License |
Website | www |
In email systems, procmail, a mail delivery agent (MDA), can sort incoming mail into various directories and filter out spam messages. Procmail is stable, but no longer maintained. Users who wish to use a maintained program are advised by procmail's author, Philip Guenther, to use an alternative tool.
Procmail was an early example of a mail filtering tool and language. Procmail is no longer maintained and has unfixed security vulnerabilities. Procmail's last maintainers suggest using alternative tools.
The procmail mail delivery agent is generally not started from the command line, but is usually invoked by mail delivery subsystems, such as a mail transport agent (like Sendmail or Postfix), or from a mail retrieval agent (such as fetchmail). This makes the mail processing event-driven. The companion tool formail allows procmail to be used in batch-processing on mail that already is in a user's mailbox.
Procmail is a data-driven programming language, similar to earlier line-oriented languages such as sed and AWK: it specifies conditions to match and actions to take on matching, in the form of "recipes". This approach has been followed by later languages such as maildrop and sieve.
The procmail agent uses recipes, to determine where to deliver the various mail messages.
Each recipe that procmail uses consists of:
Recipes used by procmail can be conditional or unconditional. If the conditions are left out, the recipe is unconditional.
Procmail has two kinds of recipes:
Recipes are read from top to bottom. The first delivering recipe terminates the delivery process (unless the mode flag specifies otherwise).
Conditions are usually extended regular expressions, although there are other forms of condition also.