'\" t .\" .\" .\" Title: maildrop .\" Author: Sam Varshavchik .\" Generator: DocBook XSL Stylesheets vsnapshot .\" Date: 07/24/2017 .\" Manual: Double Precision, Inc. .\" Source: Courier Mail Server .\" Language: English .\" .TH "MAILDROP" "1" "07/24/2017" "Courier Mail Server" "Double Precision, Inc\&." .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" maildrop \- mail delivery filter/agent .SH "SYNOPSIS" .HP \w'\fBmaildrop\fR\ 'u \fBmaildrop\fR [option...] [\-d\ \fIuser\fR] [\fIarg\fR...] .HP \w'\fBmaildrop\fR\ 'u \fBmaildrop\fR [option...] [\fIfilename\fR] [\fIarg\fR...] .SH "DESCRIPTION" .PP \fBmaildrop\fR is a replacement local mail delivery agent that includes a mail filtering language\&. The system administrator can either replace the existing mail delivery agent with \fBmaildrop\fR, or users may run \fBmaildrop\fR using the \*(Aqforward to program\*(Aq mechanism of the existing mail delivery agent\&. .PP \fBmaildrop\fR first reads the E\-mail message on standard input\&. Trailing carriage return characters are automatically stripped\&. An E\-mail message consists of header lines, followed by a blank line, followed by the contents of the message\&. .PP \fBmaildrop\fR does not accept an mbox\-style From_ line before the first header line\&. \fBmaildrop\fR does not accept leading empty lines before the first non\-blank header line\&. If the message can possibly start with empty lines, and a From_ line, use \fBreformail \-f0\fR to remove any initial empty lines, and replace a From_ line with a proper \(lqReturn\-Path:\(rq header; then pipe it to \fBmaildrop\fR\&. .PP If the file /etc/maildroprc exists, mail delivery or mail filtering instructions are read from that file\&. \fBmaildrop\fR\*(Aqs delivery/filtering instructions may direct \fBmaildrop\fR to save the message in specific mailbox, discard it, return it to sender, or forward it to a different E\-mail address\&. .PP If /etc/maildroprc does not exist, or its mail delivery instructions do not completely dispose of this message, \fBmaildrop\fR then reads the mail delivery instructions from $HOME/\&.mailfilter\&. If it doesn\*(Aqt exist, or its mail delivery instructions do not completely dispose of the message, \fBmaildrop\fR then saves the E\-mail message in the default mailbox\&. .PP \fBmaildrop\fR knows how to deliver mail to an standard mailbox files; it also knows how to deliver to maildirs\&. A maildir is a directory\-based mail format used by the \m[blue]\fBCourier\fR\m[]\&\s-2\u[1]\d\s+2 and \m[blue]\fBQmail\fR\m[]\&\s-2\u[2]\d\s+2 mail servers\&. Many other mail servers also know how to read maildirs\&. When delivering to mailbox files, \fBmaildrop\fR will lock the mailbox for the duration of the delivery\&. .PP This is the general mail delivery behavior\&. There are minor differences in behavior depending on \fBmaildrop\fR delivery mode, which is determined based on how \fBmaildrop\fR was started\&. \fBmaildrop\fR uses three different primary operating modes: .PP Manual mode .RS 4 A file containing filtering instructions \- \fIfilename\fR is specified as an argument to the \fBmaildrop\fR command\&. \fBmaildrop\fR reads this \fIfilename\fR (after /etc/maildroprc) and follows the instructions in it\&. Unless the message is explicitly forwarded, bounced, deleted, or delivered to a specific mailbox, it will be delivered to the user\*(Aqs system mailbox\&. .RE .PP Delivery mode .RS 4 \fBmaildrop\fR is the mail server\*(Aqs mail delivery agent\&. \fBmaildrop\fR runs in delivery mode when no \fIfilename\fR is specified on the command line\&. \fBmaildrop\fR changes the current directory to the user\*(Aqs home directory, then reads /etc/maildroprc, then $HOME/\&.mailfilter\&. .RE .PP Embedded mode .RS 4 \fBmaildrop\fR functions as a part of another application\&. The embedded mode is used by the \m[blue]\fBCourier\fR\m[]\&\s-2\u[1]\d\s+2 mail server to integrate mail filtering directly into the process of receiving mail from a remote mail relay, thus rejecting unwanted mail before it is even accepted for local mail delivery\&. Embedded mode is used when either the \-m, or the \-M, option is specified, and is described below\&. See below for a more extensive description of the embedded mode\&. .RE .SH "SECURITY" .PP It is safe to install \fBmaildrop\fR as a root setuid program\&. \m[blue]\fBThe Courier mail server\fR\m[]\&\s-2\u[1]\d\s+2 installs \fBmaildrop\fR as a root setuid program by default, in order to be able to use \fBmaildrop\fR in embedded mode\&. If root runs \fBmaildrop\fR (or it is setuided to root) the \fB\-d\fR option may be used to specify the message\*(Aqs recipient\&. \fBmaildrop\fR immediately resets its userid to the one specified by the \fB\-d\fR option\&. The user\*(Aqs $HOME/\&.mailfilter is read (if it exists), and the message is delivered to the indicated user\&. .PP The system administrator can configure \fBmaildrop\fR to restrict the \fB\-d\fR option for everyone except the mail system itself\&. .PP If in delivery mode the user\*(Aqs home directory has the sticky bit set, \fBmaildrop\fR immediately terminates with an exit code of \fBEX_TEMPFAIL\fR, without doing anything\&. Mail servers interpret the \fBEX_TEMPFAIL\fR exit code as a request to reschedule the message for another delivery attempt later\&. Setting the sticky bit allows $HOME/\&.mailfilter to be edited while temporarily holding all incoming mail\&. .PP \fBmaildrop\fR also terminates with \fBEX_TEMPFAIL\fR if the user\*(Aqs home directory has world write permissions\&. .PP \fBmaildrop\fR immediately terminates with \fBEX_TEMPFAIL\fR if the filename is not owned by the user, or if it has any group or world permissions\&. This includes read permissions\&. The permissions on $HOME/\&.mailfilter may only include read and write privileges to the user\&. .PP When using the special embedded mode (see below) \fBmaildrop\fR immediately terminates with the exit code set to \fBEX_TEMPFAIL\fR if $HOME/\&.mailfilters is not owned by the user, or if it has any group or world permissions\&. .SH "TEMPORARY FILES" .PP \fBmaildrop\fR is heavily optimized and tries to use as little resources as possible\&. \fBmaildrop\fR reads small messages into memory, then filters and/or delivers the message directly from memory\&. For larger messages, \fBmaildrop\fR accesses the message directly from the file\&. If the standard input is not a file, \fBmaildrop\fR writes the message to a temporary file, then accesses the message from the temporary file\&. The temporary file is automatically removed when the message is delivered\&. .SH "OPTIONS" .PP \-a .RS 4 Makes the Courier Authentication Library usage mandatory, i\&.e\&. maildrop will throw a temporary error code if the call to the authlib mechanism fails for some reason, such as authdaemon being inaccessible\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br This setting may already be the default, depending on maildrop\*(Aqs configuration\&. .sp .5v .RE .RE .PP \-A "\fIHeader: value\fR" .RS 4 Adds an additional header to the message\&. Specifying \fI\-A "Foo: Bar"\fR effectively adds this header to the message being delivered\&. .sp The mail transport agent usually adds additional headers when delivering a message to a local mailbox\&. The way it\*(Aqs usually done is by the mail transport agent sending the message using a pipe to the local delivery agent \- such as \fBmaildrop\fR \- and adding some additional headers in the process\&. Because \fBmaildrop\fR receives the message from a pipe, \fBmaildrop\fR must either save the message in memory or write the message into a temporary file\&. .sp The \fB\-A\fR option enables the file containing the message to be provided to \fBmaildrop\fR directly, as standard input, and the additional headers specified on the command line\&. Because the standard input is a file, \fBmaildrop\fR will not need a temporary file\&. Multiple \fB\-A\fR options may be specified\&. .RE .PP \-d \fIuser\fR .RS 4 Run \fBmaildrop\fR in delivery mode for this user ID\&. .sp The system administrator may optionally restrict the \fB\-d\fR option to be available to the mail system only, so it may not be available to you\&. In all cases, the \fB\-d\fR option is allowed if \fIuser\fR is the same user who is running \fBmaildrop\fR\&. Also, for the \fB\-d\fR option to work at all, \fBmaildrop\fR must be executed by root, or \fBmaildrop\fR must be a root\-owned program with the setuid bit set\&. Absence of a filename on \fBmaildrop\fR\*(Aqs command line implies the \fB\-d\fR option for the user running \fBmaildrop\fR\&. .sp If \fB\-d\fR is not specified, the first argument following all the options is a name of the file containing filtering instructions\&. The remaining arguments, if any, are assigned to the variables \fI$1\fR, \fI$2\fR, and so on (see \m[blue]\fB"Environment"\fR\m[]\&\s-2\u[3]\d\s+2 and \m[blue]\fB"Variable substitution"\fR\m[]\&\s-2\u[4]\d\s+2)\&. .RE .PP \-f \fIaddress\fR .RS 4 Sets the FROM variable (message envelope sender) to \fIaddress\fR\&. The system administrator may optionally disable the \fB\-f\fR option for users, so it may not be available to you\&. .RE .PP \-m .RS 4 Run \fBmaildrop\fR in embedded mode\&. It\*(Aqs possible to use both the \fB\-m\fR, and the \fB\-d\fR options, but it doesn\*(Aqt make much sense to do so\&. Even if you really wanted to run your message through someone else\*(Aqs \&.mailfilter, that \&.mailfilter probably has at least one instruction which is not allowed in the embedded mode\&. .sp The filename argument to \fBmaildrop\fR should be specified\&. filename is a file that includes filtering instructions to be processed in embedded mode\&. The \-m option is used for debugging filter files which are later placed in $HOME/\&.mailfilters, and used with the \fB\-M\fR option\&. .RE .PP \-M \fIfilterfile\fR .RS 4 Run \fBmaildrop\fR in a special embedded mode\&. The \fB\-d\fR option is implied when \fB\-M\fR is used, and if absent it defaults to the userid running \fBmaildrop\fR\&. .sp All the requirements for the \fB\-d\fR option apply\&. \fBmaildrop\fR must either be executed by root, or the \fBmaildrop\fR program must be owned by root with the setuid bit set\&. \fBmaildrop\fR immediately gives up root privileges by changing its user ID to the one specified by \fB\-d\fR, then reads $HOME/\&.mailfilters/\fIfilterfile\fR\&. For security reasons the name of the file may not begin with a slash or include periods\&. \fBmaildrop\fR is very paranoid: both $HOME/\&.mailfilters, and $HOME/\&.mailfilters/\fIfilterfile\fR must be owned by the user, and may not have any group or world permissions\&. .sp The \fB\-M\fR option allows for some friendly cooperation between the user running the application, and the user who provides a filter for the embedded mode\&. The user running the application can use someone else\*(Aqs canned filter and be assured that the filter is not going to run amok and start sending mail or create files all over the place\&. The user who provides the filter can be assured that the environment variables are clean, and that there are no surprises\&. .sp \fBmaildrop\fR supports the concept of "default" filter files\&. If the file specified by the \fB\-M\fR option cannot be found in $HOME/\&.mailfilters, \fBmaildrop\fR will try to open $HOME/\&.mailfilters/\fIfilterfileprefix\fR\-default\&. \fIfilterfileprefix\fR is the initial part of \fIfilterfile\fR up until the last \*(Aq\-\*(Aq character in \fIfilterfile\fR\&. .sp If $HOME/\&.mailfilters/\fIfilterfileprefix\fR\-default does not exist, and there are any other dashes left in \fIfilterfileprefix\fR, maildrop removes the last dash and everything following it, then tries again\&. .sp As a last resort \fBmaildrop\fR tries to open $HOME/\&.mailfilters/default\&. .sp For example, if the parameter to the \fB\-M\fR option is \fImailfilter\-lists\-maildrop\fR, \fBmaildrop\fR will try to open the following files, in order: .sp .if n \{\ .RS 4 .\} .nf $HOME/\&.mailfilters/mailfilter\-lists\-maildrop $HOME/\&.mailfilters/mailfilter\-lists\-maildrop\-default $HOME/\&.mailfilters/mailfilter\-lists\-default $HOME/\&.mailfilters/mailfilter\-default $HOME/\&.mailfilters/default .fi .if n \{\ .RE .\} .sp Note that \fBmaildrop\fR looks for \-default files ONLY if \fB\-M\fR is used\&. .RE .PP \-D \fIuuu/ggg\fR .RS 4 This option is reserved for use by the version of \fBmaildrop\fR that comes integrated with the \m[blue]\fBCourier mail server\fR\m[]\&\s-2\u[1]\d\s+2\&. .RE .PP \-V \fIlevel\fR .RS 4 Initialize the \fIVERBOSE\fR variable to \fIlevel\fR\&. Because \fBmaildrop\fR parses the entire file before running it, this option is used to produce debugging output in the parsing phase\&. Otherwise, if filename has syntax errors, then no debugging output is possible because the \fIVERBOSE\fR variable is not yet set\&. .sp \fB\-V\fR is ignored when \fBmaildrop\fR runs in delivery mode\&. .RE .PP \-w \fIN\fR .RS 4 The \fB\-w N\fR option places a warning message into the maildir if the maildir has a quota setting, and after the message was successfully delivered the maildir was at least \fIN\fR percent full\&. .RE .PP \-W \fIfilename\fR .RS 4 Copy the warning message from \fIfilename\fR, or from /etc/quotawarnmsg if this option is not specified, with the addition of the "Date:" and "Message\-Id:" headers\&. The warning is repeated every 24 hours (at least), until the maildir drops below \fIN\fR percent full\&. .RE .PP \-t \fIsocket\fR .RS 4 This option is available if maildrop is compiled with optional Dovecot authentication support\&. \fIsocket\fR specifies the location of Dovecot master authentication socket, for example /var/run/dovecot/auth\-master\&. .RE .SH "DELIVERY MODE" .PP If a filename is not specified on the command line, or if the \fB\-d\fR option is used, \fBmaildrop\fR will run in delivery mode\&. In delivery mode, \fBmaildrop\fR changes to the home directory of the user specified by the \fB\-d\fR option (or the user who is running \fBmaildrop\fR if the \fB\-d\fR option was not given) and reads $HOME/\&.mailfilter for filtering instructions\&. $HOME/\&.mailfilter must be owned by the user, and have no group or global permissions (\fBmaildrop\fR terminates if it does)\&. .PP If $HOME/\&.mailfilter does not exist, \fBmaildrop\fR will simply deliver the message to the user\*(Aqs mailbox\&. .PP If the file /etc/maildroprc exists, \fBmaildrop\fR reads filtering instructions from this file first, before reading $HOME/\&.mailfilter\&. This allows the system administrator to provide global filtering instructions for all users\&. .if n \{\ .sp .\} .RS 4 .it 1 an-trap .nr an-no-space-flag 1 .nr an-break-flag 1 .br .ps +1 \fBNote\fR .ps -1 .br .PP /etc/maildroprc is read only in delivery mode\&. .sp .5v .RE .SH "VIRTUAL ACCOUNTS" .PP The \fB\-d\fR option can also specify a name of a virtual account or mailbox\&. See the \fBmakeuserdb\fR(1) manual page in the Courier Authentication library\*(Aqs documentation for more information\&. .SH "EMBEDDED MODE" .PP The embedded mode is used when \fBmaildrop\fR\*(Aqs filtering abilities are desired, but no actual mail delivery is needed\&. In embedded mode \fBmaildrop\fR is executed by another application, and \m[blue]\fBis passed the \(hym or the \(hyM option\&.\fR\m[]\&\s-2\u[5]\d\s+2 \fBmaildrop\fR reads the message, then runs the filtering rules specified in filename\&. .PP filename may contain any filtering instructions EXCEPT the following: .PP ` \&.\&.\&. ` .RS 4 Text strings delimited by back\-tick characters (run shell command) are not allowed\&. .RE .PP \m[blue]\fBcc\fR\m[]\&\s-2\u[6]\d\s+2 .RS 4 The \fBcc\fR command is not allowed in embedded mode\&. .RE .PP \m[blue]\fBdotlock\fR\m[]\&\s-2\u[7]\d\s+2 .RS 4 The \fBdotlock\fR command is not allowed in embedded mode\&. .RE .PP \m[blue]\fBflock\fR\m[]\&\s-2\u[8]\d\s+2 .RS 4 The \fBflock\fR command is not allowed in embedded mode\&. .RE .PP \m[blue]\fBgdbmopen\fR\m[]\&\s-2\u[9]\d\s+2 .RS 4 In embedded mode, GDBM databases may be opened only for reading\&. .RE .PP \m[blue]\fBlog\fR\m[]\&\s-2\u[10]\d\s+2 .RS 4 The \fBlog\fR command is not allowed in embedded mode\&. .RE .PP \m[blue]\fBlogfile\fR\m[]\&\s-2\u[10]\d\s+2 .RS 4 The \fBlogfile\fR command is not allowed in embedded mode\&. .RE .PP \m[blue]\fBsystem\fR\m[]\&\s-2\u[11]\d\s+2 .RS 4 The \fBsystem\fR command is not allowed in embedded mode\&. .RE .PP \m[blue]\fBto\fR\m[]\&\s-2\u[12]\d\s+2 .RS 4 The \fBto\fR command is not allowed in embedded mode\&. .RE .PP \m[blue]\fBxfilter\fR\m[]\&\s-2\u[13]\d\s+2 .RS 4 The \fBxfilter\fR command is not allowed in embedded mode\&. .RE .PP Normally when the filename does not explicitly delivers a message, \fBmaildrop\fR will deliver the message to the user\*(Aqs default mailbox\&. This is also disabled in embedded mode\&. .PP The filename may communicate with the parent application by using the \m[blue]\fBecho\fR\m[]\&\s-2\u[14]\d\s+2 statement and the \fIEXITCODE\fR environment variable\&. .SS "/etc/maildroprcs" .PP If \fBmaildrop\fR encounters an \m[blue]\fBinclude\fR\m[]\&\s-2\u[15]\d\s+2 statement where the filename starts with /etc/maildroprcs/, the normal restrictions for the embedded mode are suspended while executing the filter file in the /etc/maildroprcs directory\&. The restrictions are also suspended for any additional filter files that are included from /etc/maildroprcs\&. The restrictions resume once \fBmaildrop\fR finishes executing the file from /etc/maildroprcs\&. .PP This allows the system administrator to have a controlled environment for running external commands (via the backticks, the \m[blue]\fBsystem\fR\m[]\&\s-2\u[11]\d\s+2 or the \m[blue]\fBxfilter\fR\m[]\&\s-2\u[13]\d\s+2 commands)\&. .PP The name of the file may not contain any periods (so that a creative individual can\*(Aqt write \fIinclude "/etc/maildroprcs/\&.\&./\&.\&./home/user/recipe"\fR)\&. .PP Before executing the commands in the /etc/maildroprcs file, \fBmaildrop\fR automatically resets the following variables to their initial values: \fIDEFAULT\fR, \fIHOME\fR, \fILOCKEXT\fR, \fILOCKSLEEP\fR, \fILOCKTIMEOUT\fR, \fILOCKREFRESH\fR, \fILOGNAME\fR, \fIPATH\fR, \fISENDMAIL\fR, and \fISHELL\fR\&. Please note that the previous values of these variables (if they were changed) will NOT be restored once \fBmaildrop\fR finishes executing the commands from /etc/maildroprcs\&. .SH "WATCHDOG TIMER" .PP \fBmaildrop\fR has a watchdog timer that attempts to abort runaway filtering\&. If filtering is not complete within a predefined time interval (defined by the system administrator, usually five minutes), \fBmaildrop\fR terminates\&. .SH "FILES" .PP /etc/passwd .RS 4 Sets user\*(Aqs home directory, and related variables\&. If NIS/YP is install, that will be used as well\&. .RE .PP /etc/maildroprc .RS 4 Global filtering instructions for delivery mode\&. .RE .PP /var/mail .RS 4 System mailbox (actual directory defined by the system administrator)\&. .RE .PP /usr/sbin/sendmail .RS 4 Program to forward mail (exact program defined by the system administrator)\&. .RE .PP $HOME/\&.mailfilter .RS 4 Filtering instructions in delivery mode\&. .RE .PP $HOME/\&.mailfilters .RS 4 Directory containing files used in special embedded mode\&. .RE .SH "SEE ALSO" .PP \m[blue]\fB\fBlockmail\fR(1)\fR\m[]\&\s-2\u[16]\d\s+2, \m[blue]\fB\fBmaildropfilter\fR(7)\fR\m[]\&\s-2\u[17]\d\s+2, \m[blue]\fB\fBmakedat\fR(1)\fR\m[]\&\s-2\u[18]\d\s+2, \m[blue]\fB\fBmaildropgdbm\fR(7)\fR\m[]\&\s-2\u[9]\d\s+2, \m[blue]\fB\fBmaildropex\fR(7)\fR\m[]\&\s-2\u[19]\d\s+2, \m[blue]\fB\fBreformail\fR(1)\fR\m[]\&\s-2\u[20]\d\s+2, \m[blue]\fB\fBmakemime\fR(1)\fR\m[]\&\s-2\u[21]\d\s+2, \m[blue]\fB\fBreformime\fR(1)\fR\m[]\&\s-2\u[22]\d\s+2, \fBegrep\fR(1), \fBgrep\fR(1), , \m[blue]\fB\fBcourier\fR(8)\fR\m[]\&\s-2\u[23]\d\s+2, \fBsendmail\fR(8), \m[blue]\fBhttp://www\&.qmail\&.org\fR\m[]\&. .SH "AUTHOR" .PP \fBSam Varshavchik\fR .RS 4 Author .RE .SH "NOTES" .IP " 1." 4 Courier .RS 4 \%http://www.courier-mta.org .RE .IP " 2." 4 Qmail .RS 4 \%http://www.qmail.org .RE .IP " 3." 4 "Environment" .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#environment .RE .IP " 4." 4 "Variable substitution" .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#varsubst .RE .IP " 5." 4 is passed the \(hym or the \(hyM option. .RS 4 \%http://www.courier-mta.org/maildrop/#options .RE .IP " 6." 4 cc .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#cc .RE .IP " 7." 4 dotlock .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#dotlock .RE .IP " 8." 4 flock .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#flock .RE .IP " 9." 4 gdbmopen .RS 4 \%http://www.courier-mta.org/maildrop/maildropgdbm.html .RE .IP "10." 4 log .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#log .RE .IP "11." 4 system .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#system .RE .IP "12." 4 to .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#to .RE .IP "13." 4 xfilter .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#xfilter .RE .IP "14." 4 echo .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#echo .RE .IP "15." 4 include .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html#include .RE .IP "16." 4 \fBlockmail\fR(1) .RS 4 \%http://www.courier-mta.org/maildrop/lockmail.html .RE .IP "17." 4 \fBmaildropfilter\fR(7) .RS 4 \%http://www.courier-mta.org/maildrop/maildropfilter.html .RE .IP "18." 4 \fBmakedat\fR(1) .RS 4 \%http://www.courier-mta.org/maildrop/makedat.html .RE .IP "19." 4 \fBmaildropex\fR(7) .RS 4 \%http://www.courier-mta.org/maildrop/maildropex.html .RE .IP "20." 4 \fBreformail\fR(1) .RS 4 \%http://www.courier-mta.org/maildrop/reformail.html .RE .IP "21." 4 \fBmakemime\fR(1) .RS 4 \%http://www.courier-mta.org/maildrop/makemime.html .RE .IP "22." 4 \fBreformime\fR(1) .RS 4 \%http://www.courier-mta.org/maildrop/reformime.html .RE .IP "23." 4 \fBcourier\fR(8) .RS 4 \%http://www.courier-mta.org/maildrop/courier.html .RE