Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
REFORMAIL(1)			 S. Varshavchik.		    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 pro-
     gram on standard input.

     If the FILENO environment variable is set to a number, reformail will  con-
     secutively  increment FILENO each time the program is executed for each in-
     dividual 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  in-
     coming  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  re-
     cent  mail.   reformail reads the message on standard input. If the message
     has a Message-ID: header that's already in the cache file, reformail termi-
     nates 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 lock-
	 ing 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  ex-
	 ists. 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 speci-
	 fied 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 ex-
	 isting  "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 ap-
	 pended.

     -R oldheader: newheader:
	 Rename the indicated header.

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

     -U'header:'
	 If  this header occurs multiple times in the message, remove all occur-
	 rences 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		   01/10/2026			    REFORMAIL(1)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=reformail&sektion=1&manpath=FreeBSD+Ports+15.1.quarterly>

home | help