maildrop - mail delivery agent with filtering abilities
Current version is 0.60
Copyright 1998, Double Precision Inc.
This program is distributed under the terms of the GNU General Public
License. See COPYING for additional information.
Where to find maildrop
Join the maildrop mailing list - http://maildropl.listbot.com.
I've started a list of "tips and tricks"
for writing mail filters with maildrop.
The HTML version of the maildrop README is located at http://www.geocities.com/SiliconValley/Peaks/5799/maildrop.README.html.
Although the following files may also be found there, please check your
favorite archive for any local copies:
| maildrop-0.60.tar.gz
- the source code tarball.
maildrop-0.60-1.src.rpm
-
the distribution source code in the RPM format. To build a binary RPM run
the command rpm --rebuild maildrop-0.60-1.src.rpm.
maildrop-0.60-1.i386.rpm
- pre-built binary RPM for Red Hat 5.1 i386. Please note that the binary
RPM's configuration includes the --enable-restrict-trusted=0 flag:
a relaxed security level which allows all users to use the -d option to
maildrop.
Maildrop's
default, strict, security model may result in sendmail temporarily deferring
local mail (it will be eventually delivered). See
INSTALL
for more information. If your system does not require relaxed security,
you may rebuild the source RPM (after making the appropriate adjustment
to the .spec file).
Previous version of maildrop:
maildrop-0.55c.tar.gz
maildrop-0.55c-1.src.rpm
maildrop-0.55c-1.i386.rpm
|
The RPMs are signed with my PGP key: http://www.geocities.com/SiliconValley/Peaks/5799/PGPKEY.txt.
maildrop includes documentation in HTML, as well as traditional
man pages. The HTML versions may also be found at http://www.geocities.com/SiliconValley/Peaks/5799/maildrop.maildrop.html.
Introduction
maildrop is a replacement for your local mail delivery agent. maildrop
reads a mail message from standard input, then delivers the message to
your mailbox. maildrop knows how to deliver mail to mbox-style mailboxes,
and maildirs. "maildir" is a mailbox format used by the Qmail
MTA.
maildrop will optionally read instructions from a file, which
describes how to filter incoming mail. Instructions can be provided having
mail delivered to alternate mailboxes, or forwarded somewhere else. Unlike
procmail, maildrop uses a structured filtering language.
maildrop is written in C++, and is significantly larger than
procmail in compiled form. However, it uses resources much more efficiently.
Unlike procmail, maildrop will not read a 10 megabyte mail message
into memory. Large messages are saved in a temporary file, and are filtered
from the temporary file. Temporary files are saved in the user's home directory.
If the standard input to maildrop is a file, and not a pipe, a temporary
file will not be necessary.
maildrop checks the syntax of the mail delivery instructions
the filter file, before attempting to deliver a message. Unlike procmail,
if the filter file contains syntax errors, maildrop terminates without
delivering the message. The user can fix the typo without causing any mail
to be lost.
maildrop uses the GNU autoconf configure script.
Installation
See the file INSTALL for installation
information. If you are using an RPM-based Linux distribution, you can
install the binary RPM (see above), or rebuild the source RPM.
Using maildrop with sendmail
Maildrop can be easily used as sendmail's local delivery agent, instead
of procmail. Here is the suggested entry for sendmail.cf, courtesy of Eric
J. Schwertfeger <ejs@bfd.com>:
Mlocal, P=/usr/local/bin/maildrop, F=lsAw5:/|@SPfhn, S=10/30, R=20/40,
T=DNS/RFC822/X-Unix,
A=maildrop -d $u
You may also consider including the D, F, and M flags as well.
Revision history
-
V0.60 - no changes to code from version 0.55c. The code appears to be stable.
Edited the documentation, and changed the flags that the RPM is build with.
-
V0.55c - BUG FIX: maildrop would botch the situation where it had problems
creating or writing to a temporary file. Fixed error handling so this condition
correctly results in deferred mail. Added some sendmail-related notes to
INSTALL.
Added additional punctuation characters recognized by the escape() function.
The chance that this would break existing scripts is very remote, but possible,
however the additional escaped punctuation would allow the function to
be used to hack-proof shell commands.
-
V0.55b - enhancement: an optional parameter to configure, --enable-syslog,
which will enable logging of fatal errors to syslog. sendmail discards
standard error, making diagnosis of maildrop problems difficult. An optional
switch to configure will have maildrop log all fatal error to syslog. Fixed
core dump if reformail is given an invalid switch: '-f'.
-
V0.55a - fixed some miscellaneous glitches in the configuration script.
Fixed potential security problem on some platform with reformail incorrectly
being installed with setuid privileges. Only cosmetic changes to the main
maildrop program: made some error messages more descriptive; maildrop will
now attempt to create a process group upon startup and upon termination
maildrop will send a SIGHUP signal to its process group, hopefully terminating
any child processes. No bug fixes are known, or have been reported.
-
V0.55 - added HOSTNAME and FROM environment variables.
Added -f option. Added support for /etc/maildroprcs - see maildrop(1).
Fixed obscure bug that can trash a file descriptor.
-
V0.54b - Changed auto-configuration logic for enabling dotlocks. If the
configure script detects that the system mailbox directly does NOT have
the sticky bit set, dot-locks are disabled by default. --enable-use-dotlock
option to configure can override that. Added --enable-keep-fromline option
to preserve the original From_ line address of messages. Note that the
default value of this option may change maildrop's behavior from previous
versions. See INSTALL for additional information. Documented some additional
options to configure that were actually implemented in a previous version.
Fixed error in select() logic that may cause the backtick command to fail
in some situations.
-
V0.54a - miscellaneous fixes. Changed the hasaddr() function to look at
Resent-To:
and Resent-Cc: headers. Default SHELL to /bin/sh
if the shell is not specified in /etc/passwd. FreeBSD does not
support lockf() on /dev/null - lockf() will
no longer cause a fatal error if it fails on a character or a block special
file. Fixed bug in configure script regarding failed initialization of
--enable-restrict-trusted
flag.
-
V0.54 - edited the documentation. Added support for VPATH builds using
automake - suggested by Harlan Stenn <Harlan.Stenn@pfcs.com>.
Major rework of the configuration code. Changed all #define-s
in config.h to use the configure script.
-
V0.51c - Fixed the subtraction operator bug. Added sendmail documentation.
-
V0.51b - Fixed compilation error for BSD. Fixed spurious "invalid directory
permission" error if $HOME/.mailfilters does not exist in special
embedded mode - maildrop will simply indicate quiet acceptance.
-
V0.51 - ported to RedHat 5.1, added /etc/maildroprc global filter
file.
-
V0.50 - first public release.