1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content=
"text/html; charset=utf-8" />
<title>maildrop - mail delivery agent with filtering
abilities</title>
<meta name="MSSmartTagsPreventParsing" content="TRUE" />
<link rel="icon" href="icon.gif" type="image/gif" />
</head>
<body text="#000000" bgcolor="#FFFFFF" link="#0000EF" vlink=
"#51188E" alink="#FF0000">
<!-- $Id: README.html.in,v 1.71 2007/05/20 00:04:55 mrsam Exp $ -->
<!-- Copyright 1998 - 2001 Double Precision, Inc. See COPYING for -->
<!-- distribution information. -->
<h1>maildrop - mail delivery agent with filtering
abilities</h1>Current development version is @VERSION@, stable
version is @PREVIOUS_VERSION@.
<p>Copyright 1998-2003, Double Precision Inc.</p>
<p>This program is distributed under the terms of the GNU General
Public License. See <code>COPYING</code> for additional
information.</p>
<h2>Where to find <em>maildrop</em></h2>Join the maildrop mailing
list - <code><a href=
"http://lists.sourceforge.net/lists/listinfo/courier-maildrop">http://lists.sourceforge.net/lists/listinfo/courier-maildrop</a></code>.
<p>I've started a list of "<a href="maildroptips.html">tips and
tricks</a>" for writing mail filters with maildrop.</p>
<p>The HTML version of the <em>maildrop</em> README is located at
<code>http://www.courier-mta.org/maildrop/</code>. Although the
following files may also be found there, please check your
favorite archive for any local copies:</p>
<div align="center">
<table border="1" cellpadding="5" width="80%" bgcolor=
"#CCCCCC">
<tbody>
<tr>
<td>
<p>The STABLE version of maildrop:</p>
<p><code><a href=
"maildrop-@PREVIOUS_VERSION@.tar.gz">maildrop-@PREVIOUS_VERSION@.tar.gz</a></code>
- the source code tarball.</p>
<p><code><a href=
"maildrop-@PREVIOUS_VERSION@-1.src.rpm">maildrop-@PREVIOUS_VERSION@-1.src.rpm</a></code>-
the distribution source code in the RPM format. To
build a binary RPM run the command <code>rpm --rebuild
maildrop-@PREVIOUS_VERSION@-1.src.rpm</code>.</p>
<p><code><a href=
"maildrop-@PREVIOUS_VERSION@-1.i386.rpm">maildrop-@PREVIOUS_VERSION@-1.i386.rpm</a></code>
- pre-built binary RPM for Red Hat Linux. Please note
that the binary RPM's configuration includes the
<code>--enable-restrict-trusted=0</code> flag: a
relaxed security level which allows all users to use
the -d option to <em>maildrop</em>. <em>Maildrop</em>'s
default, strict, security model may result in sendmail
temporarily deferring local mail (it will be eventually
delivered). See <code><a href=
"INSTALL.html">INSTALL</a></code> 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).</p>
<hr width="80%" />
<p>The DEVELOPMENT version of maildrop:</p>
<p><code><a href=
"maildrop-@VERSION@.tar.gz">maildrop-@VERSION@.tar.gz</a></code></p>
<p><code><a href=
"maildrop-@VERSION@-1.src.rpm">maildrop-@VERSION@-1.src.rpm</a></code></p>
<p><code><a href=
"maildrop-@VERSION@-1.i386.rpm">maildrop-@VERSION@-1.i386.rpm</a></code></p>
</td>
</tr>
</tbody>
</table>
</div>
<p>The RPMs are signed with my GnuPG key: <code><a href=
"http://www.geocities.com/SiliconValley/Peaks/5799/GPGKEY.txt">http://www.geocities.com/SiliconValley/Peaks/5799/GPGKEY.txt</a></code>.</p>
<p><em>maildrop</em> includes documentation in HTML, as well as
traditional man pages. The HTML versions may also be found at
<code><a href=
"maildrop.html">http://www.courier-mta.org/maildrop/maildrop.html</a>.</code></p>
<h2>Introduction</h2><em>maildrop</em> is a replacement for your
local mail delivery agent. <em>maildrop</em> reads a mail message
from standard input, then delivers the message to your mailbox.
<em>maildrop</em> knows how to deliver mail to mbox-style
mailboxes, and maildirs. "maildir" is a mailbox format used by
the <a href="http://www.qmail.org">Qmail</a> MTA.
<p><em>maildrop</em> 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, <em>maildrop</em> uses
a structured filtering language.</p>
<p><em>maildrop</em> is written in C++, and is significantly
larger than procmail in compiled form. However, it uses resources
much more efficiently. Unlike procmail, <em>maildrop</em> 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 <em>maildrop</em> is a file,
and not a pipe, a temporary file will not be necessary.</p>
<p><em>maildrop</em> 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, <em>maildrop</em> terminates without delivering the
message. The user can fix the typo without causing any mail to be
lost.</p>
<h2>Installation</h2>See <code><a href=
"INSTALL.html">INSTALL</a></code> 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.
<h2>Using maildrop with sendmail</h2>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<code>@</code>bfd.com>:
<pre>
Mlocal, P=/usr/local/bin/maildrop, F=lsAw5:/|@SPfhn, S=10/30, R=20/40,
T=DNS/RFC822/X-Unix,
A=maildrop -d $u
</pre>You may also consider including the D, F, and M flags as
well.
<h2>Revision history (including development versions)</h2>
<ul>
<li>V0.77 - mostly library update. Some additional sanity
checks when delivering to maildirs (checks for rogue soft links
-- needed to support delivery to sharable maildirs).
maildirmake update - creates sharable maildirs. Added hooks for
integrating <code>maildrop</code>into Courier.</li>
<li>V0.75 - new installation layout - will install into
/usr/local/lib/maildrop/minor fixes to configuration scripts.
Minor typos in userdb. Bug fix: exception statement will now
trap maildir quota errors. AIX fixes.</li>
<li>V0.74- fix compilation errors for SuSE 6.0. Qmail bug fix.
userdb update.</li>
<li>V0.73 - bug fix in getaddr()/hasaddr() functions, and
reformail -r option.</li>
<li>V0.72 - reformime enhancement/update. Maildir support
update.</li>
<li>V0.71 - a maintenance release. Patches for AIX and AFS
support. Updates to documentation. Internal cleanup of the
source code directory layout, which will allow me to include
<code>maildrop</code> as parts of other projects. Fixed a bug
in the reformime utility.</li>
<li>V0.70 - option to enable soft enforcement of maildir
quotas, see <code>README.maildirquota</code> in the maildir
subdirectory. Virtual account support. Renamed
<code>makegdbm</code> to <code>makedat</code>. 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 <code>EXITCODE</code> variable to the exit code of the
external process. External processes that terminate with a
non-zero exit code will NOT automatically cause
<em>maildrop</em> to terminate with the exit code of 75. The
exit code will be saved in the <code>EXITCODE</code> variable.
If the delivery command was <code>to</code>, <em>maildrop</em>
simply terminates with the same exit code. If the delivery
command was <code>cc</code>, <em>maildrop</em> continues after
initializing <code>EXITCODE</code>.<br /></li>
<li>V0.65 - option to compile Berkeley DB library, instead of
GDBM. Added the <code>import</code> keyword. Some cleanup of
HTML documentation.</li>
<li>V0.64 - reformime fix - handle systems with broken pipe
fseeks semantics. rfc822 library sync. Standardized names of
some legacy .h files. Red Hat RPMs changed to install a tiny
sh/bash/csh login script (from maildroptips) to purge
<code>$HOME/.tmp</code>. <code>makegdbm</code> can now read
from standard input. Some obscure fixes to rfc822 functions.
Moved <code>reformime</code> to rfc2045 subpackage - it belongs
there, and can be shared by other projects.</li>
<li>
<p>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.</p>
</li>
<li>
<p>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.</p>
</li>
<li>
<p>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. .</p>
</li>
<li>
<p>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 <code><a href=
"reformime.html">reformime.html</a></code> for more
information.<br /></p>
</li>
<li>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
<code>INSTALL</code>. 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.</li>
<li>V0.55b - enhancement: an optional parameter to configure,
<code>--enable-syslog,</code> 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 <code>reformail</code> is given an
invalid switch: '-f'.</li>
<li>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.</li>
<li>V0.55 - added <code>HOSTNAME</code> and <code>FROM</code>
environment variables. Added -f option. Added support for
<code>/etc/maildroprcs</code> - see <code>maildrop(1)</code>.
Fixed obscure bug that can trash a file descriptor.</li>
<li>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. <code>--enable-use-dotlock</code>
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.</li>
<li>V0.54a - miscellaneous fixes. Changed the hasaddr()
function to look at <code>Resent-To:</code> and
<code>Resent-Cc:</code>headers. Default <code>SHELL</code> to
<code>/bin/sh</code> if the shell is not specified in
<code>/etc/passwd</code>. FreeBSD does not support
<code>lockf()</code> on <code>/dev/null</code> -
<code>lockf()</code> 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
<code>--enable-restrict-trusted</code> flag.</li>
<li>V0.54 - edited the documentation. Added support for VPATH
builds using automake - suggested by Harlan Stenn
<Harlan.Stenn<code>@</code>pfcs.com>. Major rework of the
configuration code. Changed all <code>#define-</code>s in
config.h to use the <code>configure</code> script.</li>
<li>V0.51c - Fixed the subtraction operator bug. Added sendmail
documentation.</li>
<li>V0.51b - Fixed compilation error for BSD. Fixed spurious
"invalid directory permission" error if
<code>$HOME/.mailfilters</code> does not exist in special
embedded mode - maildrop will simply indicate quiet
acceptance.</li>
<li>V0.51 - ported to RedHat 5.1, added
<code>/etc/maildroprc</code> global filter file.</li>
<li>V0.50 - first public release.</li>
</ul>
</body>
</html>
|