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

FreeBSD Manual Pages


home | help
REFORMIME(1)		    Double Precision, Inc.		  REFORMIME(1)

       reformime - MIME	E-mail reformatting tool

       reformime [options...]

       reformime is a utility for reformatting MIME messages.

       Generally, reformime expects to see an RFC 2045[1] compliant message on
       standard	input, except in few cases such	as the -m option.

       If no options are given,	reformime prints the MIME structure of the
       message.	The output consists of so-called "MIME reference tags",	one
       per line. For example:


       This shows that the message contains two	different MIME sections. The
       first line of the MIME structure	output will always contain "1",	which
       refers to the entire message. In	this case it happens to	be a
       multipart/mixed message.	"1.1" refers to	the first section of the
       multipart message, which	happens	to be a	text/plain section. "1.2"
       refers to the second section of the message, which happens to be	an
       application/octet-stream	section.

       If the message is not a MIME message, or	it does	not contain any
       attachments, reformime prints only "1", that refers to the entire
       message itself:


       Here's the output from reformime	when the first part of the message was
       itself a	multipart/alternative section:


       Arbitrarily complex MIME	constructs are possible.

	   Parse a delivery status notification	MIME message (RFC 1894[2]).
	   reformime expects to	see on standard	input a	MIME message that
	   consists of a delivery status notification, as defined by RFC 1894.
	   reformime reads the message and prints on standard output a list of
	   addresses and their corresponding delivery status, as specified in
	   the delivery	status notification. Each line printed by reformime
	   consists of a delivery status, a space, and the address.  reformime
	   then	terminates with	a 0 exit status.  reformime produces no	output
	   and terminates with an exit status of 1 if the standard input does
	   not contain a delivery status notification.

	   Like	the -d except that reformime lists the address found in	the
	   Original-Recipient: header, if it exists.

	   Extract the contents	of the indicated MIME section, and display it
	   on standard output. The -s option is	required when -e is specified.
	   If the specified section or sections	use either the base64 or
	   quoted-printable encoding method, reformime automatically decodes
	   it. In this case you're better off redirecting the standard output
	   into	a file.

	   Display MIME	information for	each section.  reformime displays the
	   contents of the Content-Type: header, any encoding used, and	the
	   character set.  reformime also displays the byte offset in the
	   message where each section starts and ends (and where the actual
	   contents of the section start, after	skipping all the headers).

	   Create a multipart/digest MIME message digest.

	   Rewrite message, adding or standardizing RFC	2045[1]	MIME headers.

	   Like	-r but also convert 8bit-encoded MIME sections to

	   Like	-r but also convert quoted-printable-encoded MIME sections to
	   8bit, except	in some	situations, see	below.

	   Unconditionally convert quoted-printable-encoded MIME sections to
	   8bit, even when the resulting message may not necessarily comply
	   with	Internet message formatting standards. See below for more

       -s section
	   Display MIME	information for	this section only.  section is a MIME
	   specification tag. The -s option is required	if -e is also
	   specified, and is optional with -i.

	   Multiple sections may be specified by separating them with commas.
	   reformime processes each section using the other options that were

	   Extract the contents	of the indicated MIME section to a file.

	   Pipe	the contents of	the indicated MIME section to a	program.

   Extracting RFC 2045 MIME section(s) to file(s)
       The -x and -X options extract a specific	MIME section to	a file or to a
       pipe to an external program. Use	the -s option to identify the MIME
       section to extract. If the -s option is not specified, every MIME
       section in the message is extracted, one	at a time. If -s lists
       multiple	sections, each section gets extracted separately.
       quoted-printable	and base64 encoding are	automatically decoded.

	   Interactive extraction.  reformime prints the MIME content type of
	   each	section. Answer	with 'y' or 'Y'	to extract the MIME section.
	   Specify the filename	at the next prompt.  reformime prompts with a
	   default filename.  reformime	tries to choose	the default filename
	   based on the	MIME headers, if possible. If not, the default
	   filename will be attachment1.dat (if	the -s option is not
	   specified, the next filename	will be	attachment2.dat, and so	on).

	   Automatic extraction.  reformime automatically extracts one or more
	   MIME	sections, and saves them to a file. The	filename is formed by
	   taking PREFIX, and appending	the default filename to	it. Note that
	   there's no space between "-x" and "PREFIX". For example:

	       reformime -xfiles-
	   This	command	saves MIME sections as files-attachment1.dat, then
	   files-attachment2.dat, etc.	reformime tries	to append the filename
	   specified in	the MIME headers for each section, where possible.
	   reformime replaces all suspect characters with the underscore

       -X prog arg1 arg2 ...
	   The -X option must be the last option to reformime.	reformime runs
	   an external program prog, and pipes the contents of the MIME
	   section to the program.  reformime sets the environment variable
	   CONTENT_TYPE	to the MIME content type. The environment variable
	   FILENAME gets set to	the default filename of	reformime's liking. If
	   the -s option is not	specified, the program runs once for every
	   MIME	section	in the message.	The external program, prog must
	   terminate with a zero exit status in	order for reformime to proceed
	   to the next MIME section in the message (or the next	section
	   specified by	-s). In	any case, if prog terminates with a non-zero
	   exit	status,	reformime terminates with the exit status of 20	plus
	   prog's exit status.

	   reformime extracts every MIME section in the	message	unless the -s
	   option is specified.	This includes even the text/plain MIME content
	   that	usually	precedes a binary attachment.

   Adding RFC 2045 MIME	headers
       The -r option performs the following actions:

       If there	is no Mime-Version:, Content-Type:, or
       Content-Transfer-Encoding: header, reformime adds one.

       If the Content-Transfer-Encoding: header	contains 8bit or raw, but only
       seven-bit data is found,	reformime changes the
       Content-Transfer-Encoding header	to 7bit.

       -r7 does	the same thing,	but also converts 8bit-encoded content that
       contains	eight-bit characters to	quoted-printable encoding.

       -r8 does	the same thing,	but also converts quoted-printable-encoded
       content to 8bit,	except in some situations. The content remains
       quoted-printable	if converting it results in excessively	long lines of

       -rU always converts quoted-printable-encoded content to 8bit
       potentially resulting in	excessively long lines of text.	The resulting
       message should not be resubmitted for mail delivery, as a delivery
       failure may occur.

   Creating multipart/digest MIME digests
       The -m option creates a MIME digest.  reformime reads a list of
       filenames on standard input. Each line read from	standard input
       contains	the name of a file that	is presumed to contain an RFC
       2822-formatted message.	reformime splices all files into a
       multipart/digest	MIME section, and writes it to standard	output.

   Translating MIME headers
       The following options do	not read a message from	standard input.	These
       options process MIME headers via	the command line, and are designed to
       be conveniently used by mail-handling scripts.

       -h "header"
	   Decode a MIME-encoded "header" and print the	decoded	8-bit content
	   on standard output. The decoding gets carried out as	if the
	   contents occurred in	the "Subject" header. Example:

	       $ reformime -h '=?iso-8859-1?Q?H=F3la!?='

       -H "header"
	   Like	-h except that header is parsed	as a list of email addresses,
	   like	"From" or "To".

       -o "text"
	   MIME-encode "text", and print the results on	standard output.

       -O "text"
	   Like	the -o option, except that text	is a structured	header with
	   RFC 2822 addresses.

       -c "charset"
	   Use charset as the character	set setting, by	the -h,	-H, -o and -O

	   This	"undocumented" option reads a MIME message on standard input,
	   and converts	its contents to	an UTF-8-encoded character stream,
	   which is written to standard	output.

	   The standard	output receives	a concatenated amalgam of the headers
	   and "text" MIME object data.	It is meant to be used as part of a
	   generic search function. This option	decodes	various	kinds of
	   header MIME encoding, the quoted-printable and base64 transfer
	   encodings of	"text" MIME objects.

       reformail(1)[3],	sendmail(8), mailbot(1)[4], maildrop(1)[5],
       maildropfilter(5)[6], egrep(1), grep(1),	sendmail(8).

       Sam Varshavchik

	1. RFC 2045

	2. RFC 1894

	3. reformail(1)

	4. mailbot(1)

	5. maildrop(1)

	6. maildropfilter(5)

Courier	Mail Server		  02/16/2018			  REFORMIME(1)


Want to link to this manual page? Use this URL:

home | help