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.