/usr/share/doc/maildrop/html/makemime.html is in maildrop 2.7.1-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 | <?xml version="1.0"?>
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/><title>makemime</title><link rel="stylesheet" type="text/css" href="style.css"/><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"/><link rel="home" href="#idm247862706800" title="makemime"/><link xmlns="" rel="stylesheet" type="text/css" href="manpage.css"/><meta xmlns="" name="MSSmartTagsPreventParsing" content="TRUE"/><link xmlns="" rel="icon" href="icon.gif" type="image/gif"/><!--
Copyright 1998 - 2009 Double Precision, Inc. See COPYING for distribution
information.
--></head><body><div class="refentry"><a id="idm247862706800" shape="rect"> </a><div class="titlepage"/><div class="refnamediv"><h2>Name</h2><p>makemime — Create MIME-formatted messages</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="cmdsynopsis"><p><code class="command">makemime</code> [<em class="replaceable"><code>options</code></em>...]</p></div><div class="cmdsynopsis"><p><code class="command">makemime</code> [@<em class="replaceable"><code>filename</code></em>]</p></div></div><div class="refsect1"><a id="idm247862784800" shape="rect"> </a><h2>DESCRIPTION</h2><p>
<span class="command"><strong>makemime</strong></span> creates MIME-formatted messages of arbitrary
complexity.
<span class="command"><strong>makemime</strong></span> reads one or more individual files,
MIME-encodes them, adds basic MIME headers, and adds any additional headers
specified bye command line options. The result is saved to another file or
standard output. Complex MIME-formatted messages are created by piping together
multiple instances of <span class="command"><strong>makemime</strong></span>.
Advanced options direct <span class="command"><strong>makemime</strong></span> to
<code class="function">fork</code>() itself, and handle the details of setting up all
the pipelines.</p><p>
In most cases, options for <span class="command"><strong>makemime</strong></span> come directly from the
command line. @<code class="filename">filename</code> reads the options from a file.
"<code class="literal">@&<em class="replaceable"><code>n</code></em></code>" reads options from a pipe
on file descriptor #<em class="replaceable"><code>n</code></em>.
"<code class="literal">@-</code>" is a shortcut for
"<code class="literal">@&0</code>", which reads options from standard input.</p><p>
When options are read from a file or a pipe, each option must be on a
line by itself. If an option requires an argument, the argument must follow
on the next line.</p><p>
For readability, leading whitespace is deleted when options
are read from a file or a pipe. Empty lines are also ignored, as well as lines
that begin with the '<span class="token">#</span>' character.</p><p>
Options and their arguments may contain characters that are special
characters to the shell, such as '<span class="token">(</span>' and '<span class="token">)</span>'.
These characters must be backslashed when specified on the command line, to
avoid their special meaning to the shell.
These characters MUST NOT be backslashed when options are read
from a file or a pipe. Similarly, the contents of most headers nearly always
include spaces. Therefore they must be quoted when specified on the command
line. Header contents MUST NOT be quoted when options come from a file or a
pipe.</p><p><span class="command"><strong>makemime</strong></span> reads the content to be formatted
as a MIME message from some other file.
The files can also be a pipe. It is possible to supply both the
options and a file from the same pipe, by terminating the options list with
a line containing the single character "-". The remainder of the pipe will be
available to be used as an input file (which must be explicitly specified
by one of the options). Of course, only one input file can come from a single
pipe.</p><div class="refsect2"><a id="idm247858351808" shape="rect"> </a><h3>MIME overview</h3><p>
A MIME-formatted message contains one or several MIME sections. MIME headers
specify how multiple MIME sections are to be interpreted as a whole (whether
they are attached together; whether they are alternative representations of
the same content; or something even more esoteric). This manual page gives a
very brief, terse, overview of basic MIME concepts. The description is biased
towards describing the functionality of the <span class="command"><strong>makemime</strong></span>
utility.
See
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2045.txt" target="_top" shape="rect">RFC 2045</a>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2046.txt" target="_top" shape="rect">RFC 2046</a>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2047.txt" target="_top" shape="rect">RFC 2047</a>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2048.txt" target="_top" shape="rect">RFC 2048</a>, and
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2048.txt" target="_top" shape="rect">RFC 2049</a>
for a formal definition of MIME-formatted messages.</p><p>
Each file in a MIME message is encoded as a single MIME section. A MIME
section consists of at least one header line,
"<code class="literal">Content-Type:</code>".
The "<code class="literal">Content-Type:</code>" header gives the type of the data
ontained in the file. Other header lines may also be present.
Their relative order does not matter. MIME
headers are followed by a blank line, then the contents of the file, encoded
appropriately.
All MIME sections generated by <span class="command"><strong>makemime</strong></span> will always
contain another header,
"<code class="literal">Content-Transfer-Encoding:</code>". This header gives the
encoding method used for the file; it is an optional header, but
<span class="command"><strong>makemime</strong></span> always creates it.</p><p>
The MIME encoding method defaults to
"<code class="literal">7bit</code>" if this header is absent.
<code class="literal">7bit</code>
encoding is only suitable for plain text messages in the US-ASCII character
set.
The "<code class="literal">8bit</code>" encoding method is used by plain text messages
in other character sets that use octets with the high bit set. An
alternative to 8bit encoding is
"<code class="literal">quoted-printable</code>". The "<code class="literal">base64</code>" encoding
method is used for files containing binary data (anything other than plain
text).</p><p>
MIME sections that contain text messages have their
"<code class="literal">Content-Type:</code>" header
set to "<code class="literal">text/plain</code>";
or "<code class="literal">text/html</code>" for HTML messages.
There are also several
other, rare, content types that can be used. MIME sections that contain other
kinds of data will use some other, appropriate
"<code class="literal">Content-Type:</code>" header, such as
"<code class="literal">image/gif</code>", or "<code class="literal">audio/x-wav</code>".</p><p>
MIME sections that contain textual content may also use the
<code class="literal">base64</code> encoding
method, they are not required to use <code class="literal">7bit</code>,
<code class="literal">8bit</code>, or <code class="literal">quoted-printable</code>.
"<code class="literal">text/pdf</code>" sections, that contain PDF files,
typically contain binary data
and must use the <code class="literal">base64</code> encoding.
Consequently, MIME sections that typically
contain binary data, such as
<code class="literal">image/gif</code> and <code class="literal">audio/x-wav</code>,
are free to use
encodings other than <code class="literal">base64</code>, as long as all the data can
be represented by
printable characters (but, in practice, that never happens).</p><p>
MIME sections may also contain other, optional, headers such as
"<code class="literal">Content-Disposition:</code>",
"<code class="literal">Content-ID:</code>", and "<code class="literal">Content-Name:</code>".
Consult the
appropriate RFCs for the specific usage of these headers. These headers can be
added by <span class="command"><strong>makemime</strong></span> by using the
<code class="option">-a</code> option, as described below. These
headers play no part in creating the overall structure of a MIME-encoded
message, and <span class="command"><strong>makemime</strong></span> does not care much about these
headers. It simply
includes them, and their content, upon request.</p><p>
Multiple files are formatted as a single message MIME message in two steps:
first, by creating a MIME section for each file;
and then creating a single MIME section that contains other MIME sections.
A "<code class="literal">multipart/mixed</code>" MIME section contains a
collection of MIME sections that represent different objects, attached
together.
A "<code class="literal">multipart/alternative</code>" MIME section contains a
collection of MIME
sections which are alternative representations of the same object, such as an
HTML and a plain text version of the same message. Other "multipart" MIME
sections also exist, and their usage is defined by their respective
RFCs.</p></div><div class="refsect2"><a id="idm247862843376" shape="rect"> </a><h3>Creating a single MIME section</h3><div class="cmdsynopsis"><p><code class="command">makemime</code> {-c "<em class="replaceable"><code>type</code></em>"} [-e "<em class="replaceable"><code>encoding</code></em>"] [-o <em class="replaceable"><code>outputfile</code></em>] [-C "<em class="replaceable"><code>charset</code></em>"] [-N "<em class="replaceable"><code>name"</code></em>] [-a "<em class="replaceable"><code>header: value"</code></em>...] {<em class="replaceable"><code>filename</code></em>}</p></div><p>
The <code class="option">-c</code> option reads <code class="filename">filename</code>,
encodes it appropriately, adds the
"<code class="literal">Content-Type: <em class="replaceable"><code>type</code></em></code>" and
"<code class="literal">Content-Transfer-Encoding:</code>" MIME headers, then writes the
result to standard output. <code class="literal">type</code> can be any valid MIME type,
except for <code class="literal">multipart</code>.
Setting <code class="filename">filename</code> to "<code class="literal">-</code>"
reads from standard input.
Setting <code class="filename">filename</code> to "&<em class="replaceable"><code>n</code></em>"
reads from file descriptor #<em class="replaceable"><code>n</code></em>.</p><p>
The <code class="option">-C</code> option sets the MIME <code class="literal">charset</code>
attribute for <code class="literal">text/plain</code> content. The <code class="option">-N</code>
option sets the <code class="literal">name</code> attribute for
<code class="literal">Content-Type:</code>.</p><p>
<em class="replaceable"><code>encoding</code></em> argument should be specified. It's more
efficient to do so. <em class="replaceable"><code>encoding</code></em> must be one of the
following:
<code class="literal">7bit</code>, <code class="literal">8bit</code>,
<code class="literal">quoted-printable</code>, or <code class="literal">base64</code>.</p><p>
If <em class="replaceable"><code>encoding</code></em> is not specified,
<span class="command"><strong>makemime</strong></span>
reads the <code class="filename">filename</code> twice - once to figure out the best
encoding method, and the second time to encode <code class="filename">filename</code>.
If <code class="filename">filename</code> is a pipe <span class="command"><strong>makemime</strong></span>
creates a temporary file, which is not very efficient if
<code class="filename">filename</code> is large.
However letting <span class="command"><strong>makemime</strong></span> pick the encoding method
is more convenient if <code class="filename">filename</code> is relatively small.</p><p>
Another possibility is to omit <em class="replaceable"><code>encoding</code></em> and set
<em class="replaceable"><code>type</code></em> to <code class="literal">auto</code>.
This combination sets "<code class="literal">Content-Type:</code>" to either
<code class="literal">text/plain</code>, or
<code class="literal">application/octet-stream</code>, based on the selected
<em class="replaceable"><code>encoding</code></em>.</p><p>
By default the encoded MIME section is written to standard output.
The <code class="option">-o</code> option writes the MIME section to
<em class="replaceable"><code>outputfile</code></em>. <em class="replaceable"><code>outputfile</code></em> may be
"&<em class="replaceable"><code>n</code></em>",
which writes the MIME section to a pipe on file descriptor
#<em class="replaceable"><code>n</code></em>.</p><p>
<span class="command"><strong>makemime</strong></span> does not generate any other headers.
Particularly, the
"<code class="literal">Mime-Version:</code>" header is required for
MIME-formatted E-mail messages. Additional headers are specified by the
<code class="option">-a</code> option, which may be used
multiple times to insert multiple headers.
<span class="command"><strong>makemime</strong></span> doesn't do anything
with them except to insert the headers into the generated MIME section.</p><p>Note that
"<code class="literal">Mime-Version:</code>" is only required for the top level
MIME section.
This header is not required for individual MIME sections that are later
combined into a multipart MIME collection.</p><div class="note" style="margin-left: 0.5in; margin-right: 0.5in;"><h3 class="title">Note</h3><p>
The <code class="option">-c</code> option must occur listed first, the remaining
options must follow the <code class="option">-c</code> option.</p></div></div><div class="refsect2"><a id="idm247857503792" shape="rect"> </a><h3>Creating a multipart MIME collection</h3><div class="cmdsynopsis"><p><code class="command">makemime</code> {-m "multipart/<em class="replaceable"><code>type</code></em>"} [-e "<em class="replaceable"><code>encoding</code></em>"] [-o <em class="replaceable"><code>outputfile</code></em>] [-a "<em class="replaceable"><code>header: value"</code></em>...] {<em class="replaceable"><code>filename</code></em>}</p></div><p>
The <code class="option">-m</code> option is identical to the <code class="option">-c</code> option,
except for three differences.</p><p>
<em class="replaceable"><code>type</code></em> must be either
"<code class="literal">multipart/mixed</code>",
"<code class="literal">multipart/alternative</code>", or
some other MIME multipart content type. Additionally,
"<em class="replaceable"><code>encoding</code></em>" can only be
"<code class="literal">7bit</code>" or "<code class="literal">8bit</code>", and will default to "<code class="literal">8bit</code>" if not specified. Finally,
<code class="filename">filename</code> must be a MIME-formatted section, NOT a regular
file. Usually
<code class="filename">filename</code> is created by a previous
invocation of <span class="command"><strong>makemime</strong></span> (it can also be a pipe, like
the <code class="option">-c</code> option), but it can be created via any other
means.</p><p>
The <code class="option">-m</code> option creates an initial multipart MIME collection,
that contains
only one MIME section, taken from <code class="filename">filename</code>.
The collection is written to standard output, or the pipe or
to <em class="replaceable"><code>outputfile</code></em>.</p></div><div class="refsect2"><a id="idm247857484560" shape="rect"> </a><h3>Creating a multipart MIME section</h3><div class="cmdsynopsis"><p><code class="command">makemime</code> {-j <em class="replaceable"><code>file1</code></em>"} [-o <em class="replaceable"><code>outputfile</code></em>] {<em class="replaceable"><code>file2</code></em>}</p></div><p>
This option adds a MIME section to an existing MIME collection.
<em class="replaceable"><code>file1</code></em> must be a MIME collection that was
previously created by the <code class="option">-m</code> option.
<em class="replaceable"><code>file2</code></em> must be a MIME section that was previously
created by the <code class="option">-c</code> option.
The <code class="option">-j</code> options adds the MIME section in
<em class="replaceable"><code>file2</code></em> to the MIME collection in
<em class="replaceable"><code>file1</code></em>. The result is written to standard output
or to <em class="replaceable"><code>outputfile</code></em>.</p><p>
<em class="replaceable"><code>file1</code></em> and/or <em class="replaceable"><code>file2</code></em> may
be
"<code class="literal">@&<em class="replaceable"><code>n</code></em></code>" which reads from
file descriptor #<em class="replaceable"><code>n</code></em>.
The <em class="replaceable"><code>outputfile</code></em>
may also specify a file descriptor.</p><p><em class="replaceable"><code>file1</code></em> and
<em class="replaceable"><code>file2</code></em> should ideally be created by
<span class="command"><strong>makemime</strong></span> as well.
It's also possible to use MIME-formatted files created by other software, but
with some degree of care. <span class="command"><strong>makemime</strong></span> is not intended to be a
MIME parser, but a MIME generator. However some amount of MIME parsing is
necessary to append a MIME section to an existing MIME collection.
<span class="command"><strong>makemime</strong></span>'s parsing is sufficient
for appending a new section to a MIME collection, as long as the
MIME headers in the MIME collections are straightforward. Very convoluted MIME
headers may confuse <span class="command"><strong>makemime</strong></span>, and it may not be able to
handle them.</p></div><div class="refsect2"><a id="idm247857467184" shape="rect"> </a><h3>Recursive MIME collections</h3><p>
MIME collection may contain other MIME collections as well as MIME
sections. The <code class="option">-m</code> and the <code class="option">-j</code> options may use
a multipart MIME collection in place of a MIME section automatically
because a multipart MIME collection is just a special type of a MIME section.
The following example
encodes a text message that can be alternatively represented as HTML or plain
text, with some additional attachments:</p><p>
1. Create a MIME collection that has a
<code class="literal">text/plain</code> and a <code class="literal">text/html</code> MIME
section.</p><p>
2. Create a MIME collection consisting of the MIME section generated in
step one, plus additional MIME sections containing other attachments.</p><p>For example:</p><div class="blockquote"><blockquote class="blockquote"><div class="informalexample"><pre class="programlisting" xml:space="preserve">
# Take two files containing the text and the html version of a message, and
# add MIME headers to them.
makemime -c "text/plain; charset=iso-8859-1" -o tmp1.txt msg.txt
makemime -c "text/html; charset=iso-8859-1" -o tmp1.html msg.html
# Combine the result into a multipart/alternative collection
makemime -m "multipart/alternative" -a "Content-Disposition: inline" \
-o tmp.ma1 tmp1.txt
makemime -j tmp.ma1 -o tmp.ma2 tmp1.html
# Add MIME headers to an image attachment.
makemime -c "image/gif" -a "Content-Disposition: attachment" \
-o tmp2.gif attachment.gif
# Create the final multipart/mixed collection
makemime -m "multipart/mixed" -a "Mime-Version: 1.0" \
-o tmp.mm1 tmp.ma2
makemime -j tmp.mm1 -o output.msg tmp2.gif
</pre></div></blockquote></div><p>
<code class="filename">output.msg</code> now contains the complete MIME collection.
Just add the
<code class="literal">Subject:</code>, <code class="literal">From:</code>, and
<code class="literal">To:</code> headers (can also be done by additional
<code class="option">-a</code> options, of
course), and send it on its way.</p></div><div class="refsect2"><a id="idm247857456080" shape="rect"> </a><h3>Building complex MIME encodings</h3><p>
There are several different ways to build complete MIME encodings from
multiple MIME sections. One way is to use temporary files to create MIME
sections, then combine them together into a single MIME collection. A slightly
more complicated approach involves setting up pipes between multiple makemime
processes, in order to avoid using temporary files.</p><p>This can be done manually, by hand. It is also possible to have
<span class="command"><strong>makemime</strong></span> do this automatically. <span class="command"><strong>makemime</strong></span>
will set up these pipes and run multiple instances of itself to create a
single MIME collection, with
multiple attachments of complexity limited only by your system's limit on
the maximum number of open files and pipes.</p><p>
Any file that's read by the
<code class="option">-c</code>,
<code class="option">-m</code>,
and
<code class="option">-j</code>
options (
<code class="option">-o</code>
specifies a file to
create, and doesn't count) may be replaced by a single argument containing a
left parenthesis, additional options, then a single argument containing a
right parenthesis.
A single invocation of <span class="command"><strong>makemime</strong></span> can only use one
<code class="option">-c</code>, <code class="option">-m</code>, or <code class="option">-j</code> option.
However, another <code class="option">-c</code>, <code class="option">-m</code>, or
<code class="option">-j</code> option may be specified
inside the left and the right parenthesis, and its output is used in place of
the file it replaced. In the previous example the third and the fourth
invocation of <span class="command"><strong>makemime</strong></span> can be replaced with the following
command:</p><div class="blockquote"><blockquote class="blockquote"><div class="informalexample"><pre class="programlisting" xml:space="preserve">
makemime -j \( \
-m "multipart/alternative" \
-a "Content-Disposition: inline" tmp1.txt \
\) -o tmp.ma2 \
tmp1.html
</pre></div></blockquote></div><p>
Note that the parenthesis must be backslashed, to avoid their special
meaning to the shell. An equivalent argument file would have the following
contents:</p><div class="blockquote"><blockquote class="blockquote"><div class="informalexample"><pre class="programlisting" xml:space="preserve">
-j
(
-m
multipart/alternative
-a
Content-Disposition: inline
tmp1.txt
)
-o
tmp.ma2
tmp1.html
</pre></div></blockquote></div><p>
These constructs can be arbitrarily nested, and are limited by the amount
of available memory and resources. The entire sequence in the previous
section is equivalent to the following command:</p><div class="blockquote"><blockquote class="blockquote"><div class="informalexample"><pre class="programlisting" xml:space="preserve">
makemime -j \
\( \
-m "multipart/mixed" \
-a "Mime-Version: 1.0" \
\( \
-j \
\( \
-m "multipart/alternative" \
-a "Content-Disposition: inline" \
\( \
-c "text/plain; charset=iso-8859-1" \
msg.txt \
\) \
\) \
\( \
-c "text/html; charset=iso-8859-1" \
msg.html \
\) \
\) \
\) \
-o output.msg \
\( \
-c "image/gif" \
-a "Content-Disposition: attachment" \
attachment.gif \
\)
</pre></div></blockquote></div><p>
An equivalent argument file would be:</p><div class="blockquote"><blockquote class="blockquote"><div class="informalexample"><pre class="programlisting" xml:space="preserve">
-j
(
-m
multipart/mixed
-a
Mime-Version: 1.0
(
-j
(
-m
multipart/alternative
-a
Content-Disposition: inline
(
-c
text/plain; charset=iso-8859-1
msg.txt
)
)
(
-c
text/html; charset=iso-8859-1
msg.html
)
)
)
-o
output.msg
(
-c
image/gif
-a
Content-Disposition: attachment
attachment.gif
)
</pre></div></blockquote></div></div></div><div class="refsect1"><a id="idm247858466160" shape="rect"> </a><h2>SEE ALSO</h2><p>
<a class="ulink" href="maildrop.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">maildrop</span>(1)</span></a>,
<a class="ulink" href="maildropfilter.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">maildropfilter</span>(5)</span></a>,
<a class="ulink" href="reformail.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">reformail</span>(1)</span></a>,
<a class="ulink" href="reformime.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">reformime</span>(1)</span></a>,
<span class="citerefentry"><span class="refentrytitle">egrep</span>(1)</span>,
<span class="citerefentry"><span class="refentrytitle">grep</span>(1)</span>,
<a class="ulink" href="courier.html" target="_top" shape="rect"><span class="citerefentry"><span class="refentrytitle">courier</span>(8)</span></a>,
<span class="citerefentry"><span class="refentrytitle">sendmail</span>(8)</span>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2045.txt" target="_top" shape="rect">RFC 2045</a>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2046.txt" target="_top" shape="rect">RFC 2046</a>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2047.txt" target="_top" shape="rect">RFC 2047</a>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2048.txt" target="_top" shape="rect">RFC 2048</a>,
<a class="ulink" href="http://www.rfc-editor.org/rfc/rfc2048.txt" target="_top" shape="rect">RFC 2049</a>.</p></div></div></body></html>
|