213 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			213 lines
		
	
	
		
			8.7 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
							 | 
						|||
| 
								 | 
							
								                      "http://www.w3.org/TR/REC-html40/loose.dtd">
							 | 
						|||
| 
								 | 
							
								<html>
							 | 
						|||
| 
								 | 
							
								<head>
							 | 
						|||
| 
								 | 
							
								  <title>reformime - MIME utility</title>
							 | 
						|||
| 
								 | 
							
								  <!-- $Id$ -->
							 | 
						|||
| 
								 | 
							
								  <!-- SECTION 1 -->
							 | 
						|||
| 
								 | 
							
								  <meta http-equiv="Content-Type" content="text/html">
							 | 
						|||
| 
								 | 
							
								</head>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<body text="#000000" bgcolor="#FFFFFF" link="#0000EE" vlink="#551A8B"
							 | 
						|||
| 
								 | 
							
								alink="#FF0000">
							 | 
						|||
| 
								 | 
							
								<h1>reformime - MIME utility</h1>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h2>SYNOPSIS</h2>
							 | 
						|||
| 
								 | 
							
								<code>reformime [options] ...</code>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h2>DESCRIPTION</h2>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p><i>reformime</i> is a tool for manipulating MIME messages and
							 | 
						|||
| 
								 | 
							
								attachments.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p><i>reformime</i> expects to see an <a
							 | 
						|||
| 
								 | 
							
								href="http://www.rfc-editor.org/rfc/rfc2045.txt">RFC 2045</a>, message on
							 | 
						|||
| 
								 | 
							
								standard input.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>If no options are given, <i>reformime</i> prints the MIME structure of the
							 | 
						|||
| 
								 | 
							
								message. The output consists of so-called "MIME reference tags", one per line.
							 | 
						|||
| 
								 | 
							
								For example, you might see the following output:</p>
							 | 
						|||
| 
								 | 
							
								<pre><EFBFBD>
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1.1
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1.2</pre>
							 | 
						|||
| 
								 | 
							
								This tells you 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, which happens to be a <code>multipart/mixed</code>
							 | 
						|||
| 
								 | 
							
								message. "1.1" refers to the first section of the multiparty message, which
							 | 
						|||
| 
								 | 
							
								happens to be a <code>text/plain</code> section. "1.2" refers to the second
							 | 
						|||
| 
								 | 
							
								section of the message, which happens to be an
							 | 
						|||
| 
								 | 
							
								<code>application/octet-stream</code> section. This is a typical situation.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>If the message is not a MIME message, or it does not contain any
							 | 
						|||
| 
								 | 
							
								attachments, you will see a rather boring</p>
							 | 
						|||
| 
								 | 
							
								<pre><EFBFBD>
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1</pre>
							 | 
						|||
| 
								 | 
							
								If, instead the first part of the message was itself a
							 | 
						|||
| 
								 | 
							
								<code>multipart/alternative</code> section, you might see the following
							 | 
						|||
| 
								 | 
							
								instead:
							 | 
						|||
| 
								 | 
							
								<pre><EFBFBD>
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1.1
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1.1.1
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1.1.2
							 | 
						|||
| 
								 | 
							
								<EFBFBD><EFBFBD><EFBFBD> 1.2</pre>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>Arbitrarily complex MIME constructs are possible.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h2>OPTIONS</h2>
							 | 
						|||
| 
								 | 
							
								<ul>
							 | 
						|||
| 
								 | 
							
								  <li><code>-d</code> - parse a delivery status notification MIME message (RFC
							 | 
						|||
| 
								 | 
							
								    1894). 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 will terminate 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.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-D</code> - like the <code>-d</code> option, except that it lists
							 | 
						|||
| 
								 | 
							
								    the "original" recipient address, if provided.  See RFC 1894 for more
							 | 
						|||
| 
								 | 
							
								    information.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-e</code> - 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 indicated section uses either the <code>base64</code> or
							 | 
						|||
| 
								 | 
							
								    <code>quoted-printable</code> encoding method, reformime automatically
							 | 
						|||
| 
								 | 
							
								    decodes it. In this case you're better off redirecting the standard output
							 | 
						|||
| 
								 | 
							
								    into a file.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-x</code> - extract the contents of the indicated MIME section to
							 | 
						|||
| 
								 | 
							
								    a file.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-X</code> - pipe the contents of the indicated MIME section to a
							 | 
						|||
| 
								 | 
							
								    program.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-i</code> - display MIME information for each section.
							 | 
						|||
| 
								 | 
							
								    <code>reformime</code> will display the contents of the Content-Type:
							 | 
						|||
| 
								 | 
							
								    header, any encoding used, and the character set. <code>reformime</code>
							 | 
						|||
| 
								 | 
							
								    will also display at which byte offset in the message each section starts
							 | 
						|||
| 
								 | 
							
								    and ends (and where the actual contents of the section start, skipping all
							 | 
						|||
| 
								 | 
							
								    the headers).<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-s section</code> - 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.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-r</code> - rewrite message, adding or standardizing RFC 2045 MIME
							 | 
						|||
| 
								 | 
							
								    headers.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-r7</code> - also convert MIME sections with 8bit encoding to
							 | 
						|||
| 
								 | 
							
								    quoted-printable encoding.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-r8</code> - also convert MIME sections with quoted-printable
							 | 
						|||
| 
								 | 
							
								    encoding to 8bit encoding, where possible.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								    <code></code></li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-m <i>file1 file2 ...</i></code> - create a MIME message
							 | 
						|||
| 
								 | 
							
								  digest.</li>
							 | 
						|||
| 
								 | 
							
								</ul>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h3>Extracting RFC 2045 MIME section(s) to file(s)</h3>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>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. quoted-printable and base64 encoding are
							 | 
						|||
| 
								 | 
							
								automatically decoded.</p>
							 | 
						|||
| 
								 | 
							
								<ul>
							 | 
						|||
| 
								 | 
							
								  <li><code>-x</code> - interactive extraction. <code>reformime</code> 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.
							 | 
						|||
| 
								 | 
							
								    <code>reformime</code> will prompt 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
							 | 
						|||
| 
								 | 
							
								    <code>attachment1.dat</code> (if the -s option is not specified, the next
							 | 
						|||
| 
								 | 
							
								    filename will be <code>attachment2.dat</code>, and so on).<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-xPREFIX</code> - automatic extraction. <i>reformime</i> will
							 | 
						|||
| 
								 | 
							
								    automatically extract one or more MIME sections, and save them to a file.
							 | 
						|||
| 
								 | 
							
								    The filename will be formed by taking PREFIX, and appending the default
							 | 
						|||
| 
								 | 
							
								    filename to it. Note that there may not be a space between "-x" and
							 | 
						|||
| 
								 | 
							
								    "PREFIX". For example: "reformime -xfiles-" - this will save MIME sections
							 | 
						|||
| 
								 | 
							
								    as <code>files-attachment1.dat</code>, then
							 | 
						|||
| 
								 | 
							
								    <code>files-attachment2.dat</code>, etc. <code>reformime</code> will try
							 | 
						|||
| 
								 | 
							
								    to append the filename specified in the MIME headers for each section.
							 | 
						|||
| 
								 | 
							
								    <i>reformime</i> will replace all suspect characters with the underbar,
							 | 
						|||
| 
								 | 
							
								    when using the filename specified in the MIME headers.<br>
							 | 
						|||
| 
								 | 
							
								    <br>
							 | 
						|||
| 
								 | 
							
								  </li>
							 | 
						|||
| 
								 | 
							
								  <li><code>-X prog arg1 arg2 ...</code> - the -X option must be the last
							 | 
						|||
| 
								 | 
							
								    option to <code>reformime</code>. <code>reformime</code> will run an
							 | 
						|||
| 
								 | 
							
								    external program specified by "prog", and pipe the contents of the MIME
							 | 
						|||
| 
								 | 
							
								    section to the program. reformime will set the environment variable
							 | 
						|||
| 
								 | 
							
								    <code>CONTENT_TYPE</code> to the MIME content type.  The environmetn
							 | 
						|||
| 
								 | 
							
								    variable <code>FILENAME</code> will be set to the default filename of
							 | 
						|||
| 
								 | 
							
								    reformime's liking. If the -s option is not specified, the program will be
							 | 
						|||
| 
								 | 
							
								    executed one time for every MIME section in the message.</li>
							 | 
						|||
| 
								 | 
							
								</ul>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>NOTE: <i>reformime</i> will extract every MIME section in the message
							 | 
						|||
| 
								 | 
							
								unless the -s option is specified. Yes, even the <code>text/plain</code> MIME
							 | 
						|||
| 
								 | 
							
								part that usually precedes a binary attachment.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h3>Adding RFC 2045 MIME headers</h3>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>The <i>-r</i> option performs the following actions:</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>If there is no <code>Mime-Version:</code>, <code>Content-Type:</code>, or
							 | 
						|||
| 
								 | 
							
								<code>Content-Transfer-Encoding:</code> header, <code>reformime</code> will
							 | 
						|||
| 
								 | 
							
								add one.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>If the <code>Content-Transfer-Encoding:</code> header contains
							 | 
						|||
| 
								 | 
							
								<code>8bit</code> or <code>raw</code>, but only seven-bit data is found,
							 | 
						|||
| 
								 | 
							
								the<code> Content-Transfer-Encoding</code> header is changed to
							 | 
						|||
| 
								 | 
							
								<code>7bit</code>.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p><i>-r7</i> does the same thing, but also converts 8bit transfer encoding
							 | 
						|||
| 
								 | 
							
								containing eight-bit characters to quoted-printable encoding.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p><i>-r8</i> does the same thing, but also converts quoted-printable encoded
							 | 
						|||
| 
								 | 
							
								sections to 8bit, except in some situations.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h3>Creating MIME message digests</h3>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>The <code>-m</code> option is followed by a list of files. Each file should
							 | 
						|||
| 
								 | 
							
								contain a single RFC 822 message. <code>reformime</code> prints, on standard
							 | 
						|||
| 
								 | 
							
								output, a MIME digest containing the indicated messages.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>If <code>-m</code> is not followed by at least one file,
							 | 
						|||
| 
								 | 
							
								<code>reformime</code> reads standard input. Each line on standard input must
							 | 
						|||
| 
								 | 
							
								contain a single filename; blank lines are not allowed.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h2>BUGS</h2>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p>-x and -X ignores the Content-Disposition: header.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h2>FILES</h2>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<p><code>$HOME/.tmp</code> - directory for temporary files. Automatically
							 | 
						|||
| 
								 | 
							
								created, if necessary.</p>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<h2>SEE ALSO</h2>
							 | 
						|||
| 
								 | 
							
								<a href="maildrop.html">maildrop(1)</a>, <a
							 | 
						|||
| 
								 | 
							
								href="maildropfilter.html">maildropfilter(1)</a>, <a
							 | 
						|||
| 
								 | 
							
								href="makemime.html">makemime(1)</a>, <a
							 | 
						|||
| 
								 | 
							
								href="reformail.html">reformail(1)</a>, egrep(1), grep(1), <a
							 | 
						|||
| 
								 | 
							
								href="courier.html">courier(8)</a>, sendmail(8), <a
							 | 
						|||
| 
								 | 
							
								href="http://www.rfc-editor.org/rfc/rfc1894.txt">RFC 1894</a>, <a
							 | 
						|||
| 
								 | 
							
								href="http://www.rfc-editor.org/rfc/rfc2045.txt">RFC 2045</a>.</body>
							 | 
						|||
| 
								 | 
							
								</html>
							 |