REFORMAIL(1)                Double Precision, Inc.                REFORMAIL(1)



NAME
       reformail - E-mail reformatting tool

SYNOPSIS
       reformail -s command [option...]

       reformail -D len filename

       reformail -x header:...

       reformail -X header:...

       reformail [options...]

                 See below for additional options

DESCRIPTION
       The reformail program reads a message on standard input, reformats it
       in some way, and writes the message to standard output:

   Splitting mailboxes into individual messages
       The -s option splits the mbox-formatted mailbox file on standard input
       into individual messages. An external program is executed for each
       message. The contents of each individual message will be provided to
       the external program on standard input.

       If the FILENO environment variable is set to a number, reformail will
       consecutively increment FILENO each time the program is executed for
       each individual message.

       If FILENO is not set, it's initial value will be "000". If FILENO is
       set to a non-numeric value, FILENO will remain unchanged.

   Detecting duplicate messages
       The -D option implements a simple way to delete duplicate messages in
       incoming mail.  filename is a file that will be approximately 'len'
       bytes long. This file will be used by reformail to save message IDs
       seen in recent mail.  reformail reads the message on standard input. If
       the message has a Message-ID: header that's already in the cache file,
       reformail terminates with the exit code set to 0. Otherwise, reformail
       terminates with the exit code set to 1.

           Note
           Unlike a similar feature in the formail command, reformail takes
           care of locking the file, so it's not necessary to implement your
           own locking mechanism for this option.

   Extracting headers
       The -x and -X options extract the indicated headers from the message,
       and print them to standard output. Multiple -x and -X options can be
       specified at the same time, and may be intermixed.

       The -x option extracts and prints the contents of the header. The -X
       option prints the name of the header as well.

       In all other situations, reformail copies the message on its standard
       input to its standard output, reformatting the message as follows:

OPTIONS
       -a'header: value'
           Append a custom header to the message if this header does not
           already exist. If the header is either Message-ID: or
           Resent-Message-ID: and the value is empty, reformail generates a
           (hopefully) unique message ID for you.

       -A'header: value'
           Append a custom header to the message even if this header already
           exists. If the header is either Message-ID: or Resent-Message-ID:
           and the value is empty, reformail generates a (hopefully) unique
           message ID for you.

       -c
           Concatenate multi-line headers. Headers split on multiple lines are
           combined into a single line.

       -dn
           If n is 1, each line will be terminated with CRLF. If n is 0
           (default), each line will be terminated with LF.  reformail reads a
           message with either line terminator, and will force the message to
           have the specified line termination.

       -f0
           Any initial blank lines are removed. If the first non-blank line is
           a "From_" line, it gets converted to a "Return-Path:" header, and
           any existing "Return-Path:" header gets removed. If the message
           does not start with a "From_" line, the message remains unchanged.

       -f1
           Add the "From_" line to the message, if it's not there.  reformail
           will attempt to generate the "From_" line from any Errors-To:,
           Return-Path:, or From: headers in the message. "root" will be used
           if reformail is unable to determine the return address.

       -i'header: value'
           Appends a custom header to the message. If this header already
           exists it is renamed by prepending "Old-" to the name of the
           header.

       -I'header: value'
           Append a custom header to the message. If this header already
           exists in the message, the old header is completely removed. If the
           value is empty, any existing header is completely removed, and
           nothing gets appended.

       -R oldheader: newheader:
           Rename the indicated header.

       -u'header:'
           If this header occurs multiple times in the message, remove all
           occurrences except the first one.

       -U'header:'
           If this header occurs multiple times in the message, remove all
           occurrences except the last one.

AUTOREPLIES
       The autoreply options from earlier versions of mailbot have been moved
       into mailbot(1)[1].

BUGS
       For the -a, -A, and -I options, a space after the header name and the
       colon is considered to be a non-empty field.

       Do not provide the same header to more than one family of
       header-modifying options, such as -u/-U and -a/-A. Doing so yields
       unpredictable results. It's better to run reformail several times (use
       a pipe, perhaps).

SEE ALSO
       courier(8)[2], sendmail(8), mailbot(1)[1], maildrop(1)[3].

AUTHOR
       Sam Varshavchik
           Author

NOTES
        1. mailbot(1)
           http://www.courier-mta.org/maildrop/mailbot.html

        2. courier(8)
           http://www.courier-mta.org/maildrop/courier.html

        3. maildrop(1)
           http://www.courier-mta.org/maildrop/maildrop.html



Courier Mail Server               06/20/2015                      REFORMAIL(1)
