Copyright 1998-2003, Double Precision Inc.
This program is distributed under the terms of the GNU General Public
License. See COPYING
for additional information.
http://lists.sourceforge.net/lists/listinfo/courier-maildrop
.
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.courier-mta.org/maildrop/
. Although the following
files may also be found there, please check your favorite archive for any
local copies:
The STABLE version of maildrop:
The DEVELOPMENT version of maildrop: |
The RPMs are signed with my GnuPG key: http://www.geocities.com/SiliconValley/Peaks/5799/GPGKEY.txt
.
maildrop includes documentation in HTML, as well as traditional
man pages. The HTML versions may also be found at http://www.courier-mta.org/maildrop/maildrop.html.
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.
INSTALL
for installation
information. If you are using an RPM-based GNU/Linux distribution, you can
install the binary RPM (see above), or rebuild the source RPM.
@
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 $uYou may also consider including the D, F, and M flags as well.
maildrop
into
Courier.maildrop
as parts of other
projects. Fixed a bug in the reformime utility.README.maildirquota
in the maildir subdirectory. Virtual
account support. Renamed makegdbm
to makedat
.
Removed installation option to gzip manual pages -- too messy. Let target
platform packagers/porters worry about it. to and cc commands that pipe
the message to an external process will now set the EXITCODE
variable to the exit code of the external process. External processes
that terminate with a non-zero exit code will NOT automatically cause
maildrop to terminate with the exit code of 75. The exit code
will be saved in the EXITCODE
variable. If the delivery
command was to
, maildrop simply terminates with the
same exit code. If the delivery command was cc
,
maildrop continues after initializing EXITCODE
.import
keyword. Some cleanup of HTML documentation.$HOME/.tmp
.
makegdbm
can now read from standard input. Some obscure
fixes to rfc822 functions. Moved reformime
to rfc2045
subpackage - it belongs there, and can be shared by other projects.V0.63 - maintenance. Minor enhancements and bug fixes to the
reformime utility. reformime can now convert 8-bit messages to or from
quoted-printable encoding. reformime can now also add missing MIME
headers to a message.
V0.62 - array out of bounds bug fix in rfc822.c. Some additional
options to configure to specify various directories. Option to configure
to use /usr/local/etc instead of /etc.
V0.61(prerelease) - rfc822 library sync. Added reformime standalone
utility. Added support for GDBM database files. Because GDBM support adds
significant amount of code to maildrop, GDBM support can be optionally
disabled during installation. Added the time function. Changed how
maildrop automatically converts results of floating point mathematical
operation back into text - should not affect any existing filters.
.
V0.60 - no changes to the main maildrop code from version 0.55c,
except for cosmetic changes to some shared modules in order to accomodate
the new reformime utility. The main maildrop code appears to be stable.
Edited the documentation, and changed the flags that the RPM is built
with. NEW: Experimental set of MIME functions, which are implemented as a
separate program for now. The reformime program can be used to decode the
MIME structure of a message, and extract different parts of it. At some
point later, this functionality will be added as native functions in the
maildrop filtering language. See reformime.html
for more information.
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.--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'.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.--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.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.@
pfcs.com>. Major rework of the
configuration code. Changed all #define-
s in config.h to use
the configure
script.$HOME/.mailfilters
does not
exist in special embedded mode - maildrop will simply indicate quiet
acceptance./etc/maildroprc
global
filter file.