ezmlm-reject(1) reject messages unsuitable for distribution


ezmlm-reject [ -bBcChFfHqQsStT ][ dir ]


ezmlm-reject reads a mail message from its standard input. It rejects the message if it sees something it doesn't like.

If the message has either a ``Precedence: junk'' or a ``Precedence: bulk'' header, ezmlm-reject exits 99 causing the message to be ignored. This causes replies from (some) vacation programs to be ignored.

If dir is specified, ezmlm-reject reads dir/msgsize for a maximum:minimum message body size in bytes. Either number will be ignored if 0 or omitted. ezmlm-reject will also look for dir/mimereject and either dir/mimekeep or dir/mimeremove. If dir/mimereject exists, Messages of the Content-Types specified or with MIME parts of these types will be rejected. If dir/mimekeep exists, ezmlm-reject will reject messages of Content-Types other than what is specified. Otherwise if dir/mimeremove exists, ezmlm-reject will reject messages of the Content-Types specified. These content-types will be accepted as parts of a composite MIME message. They will be stripped out later by ezmlm-send(1).

ezmlm-reject will exit 100 (permanent error) for rejections. If the list address is not in the message ``To:'' or ``Cc:'' headers and the -t switch is active, the exit code is 100 or 99, depending on the -q switch (see below). If you would like to forward messages instead of rejecting them, you can into the appropriate .qmail file put:

       |condredirect newaddress except /path/ezmlm-reject DIR

Now rejected posts will go to this address, and the recipient can take appropriate action.

ezmlm-reject reads dir/copylines to determine how many lines of the original message to copy into the outgoing message. If this file is empty or not present, a value of 0 is presumed, meaning that only the header is copied.

If dir/qmqpservers exists, ezmlm-reject will use qmail-qmqp(1) to send messages.


Reject the message if the message body starts ``subscribe'' or ``unsubscribe''. If the -c switch is specified, messages will also be rejected if the subject starts with these words.
(Default.) Do not reject messages starting ``subscribe'' or ``unsubscribe''.
(Default.) Commands are not permitted in the Subject line. A Subject line consisting solely of HELP, REMOVE, SUBSCRIBE, or UNSUBSCRIBE is rejected.
Commands are permitted in the subject line.
Forward all messages having a command as the subject line to the list's -request address for processing. This is only effective if -c is also set.
(Default.) Do not forward command messages.
(Default). Reject message if dir is set, dir/headerreject exists, and any of the headers in that file occur in the header. Mailing-List headers of other mailing list managers can be put into this file, one per line, to prevent processing of messages from other mailing lists. dir must be specified.

A reasonable set of headers would be: ``Mailing-List'', ``X-ml-name'', ``ml-name'',``X-loop'',``X-listprocessor-version'',``X-mailing-list''. Case is not important.

Ignore dir/headerreject.
Quiet. If the message due to the lack of the list address (see -t) is not accepted, this is logged but no error message is sent to the sender.
Quiet. If a message due to the lack of the list address (see -t) is not accepted, the message is silently ignored.
(Default.) Not quiet. If a message due to the lack of the list address (see -t) is not accepted, the sender is notified by an error message.
(Default.) A nonempty Subject line is required.
A Subject line is not required.
(Default.) Reject messages that do not have the list address in the ``To:'' or ``Cc:'' header(s). ezmlm-reject needs access to dir/outhost and dir/outlocal to check this. This check is silently omitted if dir is not specified, to assure backwards compatibility with existing ezmlm lists.
Do not require the list address in the ``To:'' or ``Cc:'' header(s).


ezmlm-reject does not handle rfc822 comments in ``Content-Type:'' lines if present before the type or boundary. This could be used to defeat the MIME rejection function. OTOH, this function is intended to reduce garbage, not guarantee its elimination.

Since the MIME parser doesn't decode inner MIME layers of a multipart/* message, mimeremove and mimereject will be applied to the outer MIME layer only.