<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="28" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[28]</anchor-end> <dfn><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor></code></dfn> は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メール</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>を分割した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片</anchor>を表すものです。</p><section><h1>仕様書</h1><refs xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><ul xmlns="http://www.w3.org/1999/xhtml"><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[9]</anchor-end> <strong><cite xml:lang="en">RFC 2046 - Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types</cite> (<time>2015-03-22 13:14:46 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc2046#section-5.2.2">http://tools.ietf.org/html/rfc2046#section-5.2.2</anchor-external></strong></li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[40]</anchor-end> <cite xml:lang="en">RFC 3798 - Message Disposition Notification</cite> (<time>2015-03-30 06:15:53 +09:00</time> 版) <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="http://tools.ietf.org/html/rfc3798#section-2.4">http://tools.ietf.org/html/rfc3798#section-2.4</anchor-external></li></ul></refs></section><section><h1>意味</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="10" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[10]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor></code> は、
大きな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>を複数の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">電子メール</anchor>として分割して<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">配送</anchor>し、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信</anchor>した<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">利用者エージェント</anchor>で自動的に結合するためのものです <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="12" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[12]</anchor-end> 中間の輸送路で<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>の最大サイズが制限されている場合に使うことができます
<src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="30" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[30]</anchor-end> 再結合した部分メッセージの意味は、「内側」のメッセージの意味であり、
内側のメッセージを含むメッセージの意味ではありません。
これをメッセージの分割が<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">「透過的」<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">&quot;transparent&quot;</rt></rubyb>であるということです。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><example xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="29" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[29]</anchor-end> 例えば大きな音声メッセージをいくつかのメッセージに分割した場合でも、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">受信者</anchor>にとってそれはただの音声メッセージであって、
音声メッセージをカプセル化したメッセージではありません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p></example></section><section><h1>構文</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="27" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[27]</anchor-end> 素片をまとめたものは、完全な <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME実体</anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。
これは<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">「内側」<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">&quot;inner&quot;</rt></rubyb>のメッセージと呼ばれています <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="15" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[15]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor></code> を再度 <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor></code>
により分割することもできます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="37" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[37]</anchor-end> 2つ目以降の素片メッセージのヘッダーでは、前の素片メッセージの
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message-ID</anchor></code> を <code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">References:</anchor></code>
で指定しても構いません。しかしこれは必須ではありません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p></section><section><h1>引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="18" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[18]</anchor-end> 次の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>があります。<figure class="short list"><ul><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">id</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">number</anchor></code></li><li><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">total</anchor></code></li></ul></figure></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="17" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[17]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">id</anchor></code> と <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">number</anchor></code> は、必須です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p></section><section><h1>文脈</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="16" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[16]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MTA</anchor> が自動的に大きな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>を分割することもできます <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p></section><section><h1>CTE</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="13" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[13]</anchor-end> <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor></code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">内容転送符号化</anchor>は、
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">7bit</anchor></code> でなければなりません。従って、含まれる内側の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>も、
<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">7bit</anchor></code> でなければなりません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="14" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[14]</anchor-end> これは、 <code xmlns="http://www.w3.org/1999/xhtml" class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">8bit</anchor></code> や <code xmlns="http://www.w3.org/1999/xhtml" class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">binary</anchor></code> で送られると、
<code xmlns="http://www.w3.org/1999/xhtml" class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">7bit</anchor></code> しか扱えない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">関門</anchor>で困るから <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src> です。</comment-p></section><section><h1><code class="MIME" xml:lang="en">id</code> 引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="19" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[19]</anchor-end> <dfn><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">id</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値は、固有識別子です。
出来る限り世界的に固有なものです。
これは分割された素片で一致するものを示すために使います。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="20" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[20]</anchor-end> 本質的には<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージID</anchor>です <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="22" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[22]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>は、必須です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p></section><section><h1><code class="MIME" xml:lang="en">number</code> 引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="21" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[21]</anchor-end> <dfn><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">number</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値は、
分割した素片の列における当該素片の位置を示します。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="26" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[26]</anchor-end> 最初の素片は、 <code>1</code> です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="23" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[23]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>は、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">必須</anchor>です <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p></section><section><h1><code class="MIME" xml:lang="en">total</code> 引数</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="24" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[24]</anchor-end> <dfn><code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">total</anchor></code></dfn> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>の値は、
素片の合計数を表す<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">整数</anchor>です。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="25" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[25]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">引数</anchor>は、最後の素片では必須で、それ以外では省略可能ですが、<rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">推奨<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">encouraged</rt></rubyb>されています。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p></section><section><h1>処理</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="31" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[31]</anchor-end> <rubyb xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">再結合<rt xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">reassemble</rt></rubyb>の際には、
カプセル化されたメッセージの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>と、
外側の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>とを併合しなければなりません。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="32" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[32]</anchor-end> 分割の際は、行境界でのみ分割できます。 <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src></p><comment-p xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="33" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[33]</anchor-end> これは、輸送路によっては <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">CRLF</anchor> で終わらない<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">行</anchor>を扱えないためです <src><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</comment-p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="34" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[34]</anchor-end> 最初の外側のメッセージの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>のうち、
<code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-*</anchor></code>、<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Subject</anchor></code>、
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message-ID</anchor></code>、<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encrypted</anchor></code>、
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME-Version</anchor></code> を<em>除いたもの</em>は、
順に再結合後の新しいメッセージに複写しなければなりません
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal> も除外します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="35" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[35]</anchor-end> 内側のメッセージの<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>のうち、
<code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Content-*</anchor></code>、<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Subject</anchor></code>、
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message-ID</anchor></code>、<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encrypted</anchor></code>、
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME-Version</anchor></code> は、順に再結合後の新しいメッセージの末尾に複写しなければなりません
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;42</anchor-internal> も複写します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal></src>。それ以外は無視します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="36" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[36]</anchor-end> 2つ目以降のメッセージのヘッダーは、再結合後は無視します <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="9" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;9</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="39" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[39]</anchor-end> この<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ヘッダー</anchor>の併合処理は、 <code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/external-body</anchor></code>
でも使われます。</p></section><section><h1>どれだけの大きさで分割するか。</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="1" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[1]</anchor-end> message/partial で分割する場合、<ol><li>行ごとにしか区切れない。</li><li>配送中に頭が増えてく。 (主に<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Received:</anchor> 欄)
ので、厳密な大きさを決めて区切ることには意味は無いでしょう。</li></ol></p><p>分割の目安としては、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SMTP</anchor> サーバーの送信制限 (自主規制。
プロトコル的にはもっといけるはず。), 受信側 SMTP サーバーの
制限, 各種 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ML</anchor> での受け取り制限とかから考えると、 
40〜100Ko あたりでしょーか。</p><p>とはいえ、回線が昔よりは整備されていますから、 (無知も相まって)
数 Mo の無圧縮の画像とかをそのまま送りつけてくる
人もいます:-)</p><p>各種 UA の既定値:<table><tbody><tr><td><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">M$OE</anchor>5.5 (<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Windoze</anchor>)</td><td>60Ko</td><td></td></tr><ul><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="6" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[6]</anchor-end> <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2003-10-17 00:35:36 +00:00</weak> <em><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">M$OE 6.0</anchor></em>: 60Ko</li><li><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="7" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[7]</anchor-end> なお、 OE は分割しないが既定値です。</li></ul></tbody></table></p></section><section><h1>頭欄の扱い</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="2" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[2]</anchor-end> 内側に包まないといけない頭領域が、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC</anchor>
の版によって規定が違っているので、
実装間で相互通信性上の問題が発生し得ます。</p><p>Content-*: 欄 (See <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME//頭欄</anchor>) と
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Message-ID:</anchor> 欄は、 RFC 1341 以来ずっと、
内側に入れなければなりません。復元の時も、外側のは消去して、
内側のを使う、もし無ければ MID なし、となるでしょう。</p><p>他の3欄は、 RFC 1521 または 2046 で内側に入れるのに
追加されてます。ですから、これらが内側に無く、外側にある
メッセージというのが存在しえます。ここは、 RFC 2046
には反しますが、互換性のため内側になくて外側にあれば
それを使う、とするのが良いでしょう。</p><p>分割の時にこれらのうち次の2つは、内側に入れて、<em>外側には残さない</em>
(つまり RFC 2046 に従う) のが良いと思われます。
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MIME-Version:</anchor> 欄と <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Encrypted:</anchor> 欄は、
そうしないとその指す対象が曖昧になります。</p><p><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Subject:</anchor> 欄については、もとの Subject の末尾に (1/4)
みたいに入れるのが多かったので、仕様が変更されたのだと思います。
ですから、内側に元の Subject を入れて、外側は
「Subject: 元の Subject (1/*)」にするか、元の Subject
を入れるかのどちらかにするのが良いでしょう。
(2番目以降は、 (2/4) みたいのを必ず入れる。2番目以降は
捨てられて解釈に影響しないから。)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="3" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[3]</anchor-end> RFC 2298 <anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="urn:ietf:rfc:2298">urn:ietf:rfc:2298</anchor-external> は、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Disposition-Notification-To:</anchor> 欄,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Disposition-Notification-Options:</anchor> 欄,
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Original-Recipient:</anchor> 欄の3欄も「内側」
に入れるように指示しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="41" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[41]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2298</anchor> を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">廃止</anchor>する <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 3798</anchor> は、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2046</anchor>
を<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">更新</anchor>する形で、次の通り規定しています。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="42" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[42]</anchor-end> <code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Disposition-Notification-To</anchor></code>, 
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Disposition-Notification-Options</anchor></code>,
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Original-Recipient</anchor></code> は、分割時に
内側に入れる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきです</strong></anchor> <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal></src>。外側に入れる<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきではありません</strong></anchor>
<src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal></src>。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="43" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[43]</anchor-end> これらが内側に含まれていれば、再合成したメッセージについて <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MDN</anchor>
を生成する時にこれらの情報を使います <src xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:10:"><anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="40" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;40</anchor-internal></src>。</p></section><section><h1>壊れたメッセージsの復元</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[4]</anchor-end> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">ML</anchor> なんかで、てきとーに<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>とか<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">広告</anchor>とかを付け足すところがありますが、
message/partial にとってもこれは致命的であることが多いでしょう。
復元したら、変なのが間に挟まります。</p><p>内側のメッセージが <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Base64</anchor> になってたりしたら、
運が悪いと復元できなくなります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="5" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[5]</anchor-end> 復元実装は、利用者の操作によって、途中幾つかの部分が抜けていても無理矢理(飛ばして)復元できれば便利かもしれません。
何かの事故で途中幾つかが届かなかったとしても、
運がよければ中身が大体分かります。</p></section><section><h1>歴史</h1><figure class="quote"><figcaption><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="38" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[38]</anchor-end> RFC 2046 5.2.2.  Partial Subtype</figcaption><blockquote><p>The &quot;partial&quot; subtype is defined to allow large entities to be
delivered as several separate pieces of mail and automatically
reassembled by a receiving user agent.  (The concept is similar to IP
fragmentation and reassembly in the basic Internet Protocols.)  This
mechanism can be used when intermediate transport agents limit the
size of individual messages that can be sent.  The media type
&quot;message/partial&quot; thus indicates that the body contains a fragment of
a larger entity.</p></blockquote><p>&quot;partial&quot; 亜型は、大きな実体を幾つかのメイル片に分割して配達し、
受信した利用者代理者が自動的に復元することが出来るように定義するものです。
(この概念は、基本 Internet Protocol 中での IP
の断片化と結合 <ins>(訳注: なんて訳すのが一般的ですか?)</ins>
と同様のものです。)
この機構は、中間転送代理者が個々のメッセージの送信出来る大きさを
制限している場合に使うことが出来ます。媒体型 &quot;message/partial&quot;
は従って、本文がより大きな実体の断片であることを示します。</p><blockquote><p>Because data of type &quot;message&quot; may never be encoded in base64 or
quoted-printable, a problem might arise if &quot;message/partial&quot; entities
are constructed in an environment that supports binary or 8bit
transport.  The problem is that the binary data would be split into
multiple &quot;message/partial&quot; messages, each of them requiring binary
transport.  If such messages were encountered at a gateway into a
7bit transport environment, there would be no way to properly encode
them for the 7bit world, aside from waiting for all of the fragments,
reassembling the inner message, and then encoding the reassembled
data in base64 or quoted-printable.  Since it is possible that
different fragments might go through different gateways, even this is
not an acceptable solution.  For this reason, it is specified that
entities of type &quot;message/partial&quot; must always have a 
content-transfer-encoding of 7bit (the default).  In particular, even in
environments that support binary or 8bit transport, the use of a
content-transfer-encoding of &quot;8bit&quot; or &quot;binary&quot; is explicitly
prohibited for MIME entities of type &quot;message/partial&quot;. This in turn
implies that the inner message must not use &quot;8bit&quot; or &quot;binary&quot; encoding.</p></blockquote><p>型 &quot;message&quot; のデータが base64 や <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Quoted-Printable</anchor>
で符号化されることは無いので、 &quot;message/partial&quot; 実体が
binary・8bit 転送に対応した環境で構築された時に問題が起こり得ます。
問題とは、バイナリ・データが複数の &quot;message/partial&quot;
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>に分割された時に、その各々は<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">バイナリ</anchor>転送が必要になります。
その様なメッセージが7ビット転送環境への<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">関門</anchor>に差し掛かったときに、
7ビット世界用に適切に符号化する方法は、全ての断片が届くのを待って、
内側のメッセージを復元して、復元データを
base64 か quoted-printable で符号化する以外にはありません。
別の断片が別の関門を通ることもあり得るでしょうから、
これも可能な解とは言えません。このような理由から、型
&quot;message/partial&quot;  の実体は 7bit (既定値) の
content-transfer-encoding でなければならないと規定します。
特に、バイナリや8ビットの転送に対応した環境にあっても、型
&quot;message/partial&quot; の MIME <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">実体</anchor>に content-transfer-encoding 
&quot;8bit&quot;・&quot;binary&quot; を使用することはここに明示的に禁止します。
これはすなわち内側のメッセージが &quot;8bit&quot; や &quot;binary&quot;
の符号化であってはならないことを示します。</p><blockquote><p>Because some message transfer agents may choose to automatically
fragment large messages, and because such agents may use very
different fragmentation thresholds, it is possible that the pieces of
a partial message, upon reassembly, may prove themselves to comprise
a partial message.  This is explicitly permitted.</p></blockquote><p>自動的に大きなメッセージを断片化することを選ぶメッセージ転送代理者も
あるでしょうから、そしてその様な代理者は非常に異なった断片化閾値を
採用するかもしれませんから、部分メッセージ片が、復元してみたら、
それ自体が部分メッセージであったということがあり得ます。
これは明示的に認めます。</p><blockquote><p>Three parameters must be specified in the Content-Type field of type
&quot;message/partial&quot;:  The first, &quot;id&quot;, is a unique identifier, as close
to a world-unique identifier as possible, to be used to match the
fragments together. (In general, the identifier is essentially a
message-id; if placed in double quotes, it can be ANY message-id, in
accordance with the BNF for &quot;parameter&quot; given in RFC 2045.)  The
second, &quot;number&quot;, an integer, is the fragment number, which indicates
where this fragment fits into the sequence of fragments.  The third,
&quot;total&quot;, another integer, is the total number of fragments.  This
third subfield is required on the final fragment, and is optional
(though encouraged) on the earlier fragments.  Note also that these
parameters may be given in any order.</p></blockquote><p>型 &quot;message/partial&quot; の Content-Type 領域には、
3つのパラメーターを指定しなければなりません。最初に、 &quot;id&quot;
は、唯一識別子で、可能な限り世界的に唯一の識別子として選んだもので、
断片を互いに一致させるのに使います。
(通常、識別子は本質的には message-id です。
二重引用符中にあるなら、 RFC 2045 の &quot;parameter&quot; の BNF に従って、
<strong>どんな</strong> message-id であっても構いません。) 二番目は、
&quot;number&quot; で整数値で、断片番号であり、
その断片が断片列中のどの位置に当たるかを示します。
三番目、 &quot;third&quot; も整数値で、断片の合計数です。
この3番目の小領域は最後の断片で必須で、それ以前の断片では省略可能
(推奨だけど。) です。
なお、これらのパラメーターはどんな順番でも構いません。</p><blockquote><p>Thus, the second piece of a 3-piece message may have either of the
following header fields:</p></blockquote><p>よって、3片メッセージの2番目の片は次の様な頭欄のいずれかを持ち得ます。</p><pre>     Content-Type: Message/Partial; number=2; total=3;
                   id=&quot;oc=jpbe0M2Yt4s@thumper.bellcore.com&quot;</pre><pre>     Content-Type: Message/Partial;
                   id=&quot;oc=jpbe0M2Yt4s@thumper.bellcore.com&quot;;
                   number=2</pre><blockquote><p>But the third piece MUST specify the total number of fragments:</p></blockquote><p>しかし、3番目の片は断片の総数を指定し<strong>なければなりません</strong>。</p><pre>     Content-Type: Message/Partial; number=3; total=3;
                   id=&quot;oc=jpbe0M2Yt4s@thumper.bellcore.com&quot;</pre><blockquote><p>Note that fragment numbering begins with 1, not 0.</p></blockquote><p>断片の番号付けは 0 ではなく 1 から始まることに注意して下さい。</p><blockquote><p>When the fragments of an entity broken up in this manner are put
together, the result is always a complete MIME entity, which may have
its own Content-Type header field, and thus may contain any other
data type.</p></blockquote><p>この方法で分割されている断片を合成した時、結果は常に完全な
MIME 実体になります。これは自身の Content-Type
欄を持つことが出来て、従ってどんなデータ型をも含めることが出来ます。</p><section><h1>5.2.2.1.  Message Fragmentation and Reassembly <ins>メッセージの断片化と復元</ins></h1><blockquote><p>The semantics of a reassembled partial message must be those of the
&quot;inner&quot; message, rather than of a message containing the inner
message.  This makes it possible, for example, to send a large audio
message as several partial messages, and still have it appear to the
recipient as a simple audio message rather than as an encapsulated
message containing an audio message.  That is, the encapsulation of
the message is considered to be &quot;transparent&quot;.</p></blockquote><p>復元した部分メッセージの意味するところは、「内側」
のメッセージを含むメッセージのものというよりは、
内側のメッセージのものなのであります。
これにより、例えば、
大きな音声メッセージを幾つかの部分メッセージとして送って、
それでもこれを受信者には音声メッセージを含むカプセル化メッセージとしてではなく単一のメッセージとして見せることが可能になります。
つまり、メッセージのカプセル化は「透明」と見なします。</p><blockquote><p>When generating and reassembling the pieces of a &quot;message/partial&quot;
message, the headers of the encapsulated message must be merged with
the headers of the enclosing entities.  In this process the following
rules must be observed:</p></blockquote><p>&quot;message/partial&quot; メッセージ片の生成・復元に際して、
カプセル化されるメッセージの頭は、
囲んでいる実体の頭と併合しなければなりません。
この時、次の規則を適用しなければなりません。</p><pre>    (1)   Fragmentation agents must split messages at line
          boundaries only. This restriction is imposed because
          splits at points other than the ends of lines in turn
          depends on message transports being able to preserve
          the semantics of messages that don't end with a CRLF
          sequence. Many transports are incapable of preserving
          such semantics.</pre><p>断片化代理者は、行の境目でのみメッセージを区切らなければなりません。
この制限を課すのは、行末以外の場所で区切ると、 CRLF
で終わらないというメッセージの意味を保持することが出来るメッセージ転送系に依存してしまうからです。
多くの転送系は、このような意味を保持する能力がありません。</p><pre>    (2)   All of the header fields from the initial enclosing
          message, except those that start with &quot;Content-&quot; and
          the specific header fields &quot;Subject&quot;, &quot;Message-ID&quot;,
          &quot;Encrypted&quot;, and &quot;MIME-Version&quot;, must be copied, in
          order, to the new message.</pre><p>最初の囲んでいるメッセージの全ての頭欄のうち、 &quot;Content-&quot;
で始まるもの及び頭欄 &quot;Subject&quot;, &quot;Message-ID&quot;, &quot;Encrypted&quot;, 
&quot;MIME-Version&quot; を除いたものを、そのままの順で、
新しいメッセージに複写しなければなりません。</p><insert xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><p xmlns="http://www.w3.org/1999/xhtml">&quot;Subject&quot; は、 RFC 1521 では含まれていません。
更に、 RFC 1341 では、 &quot;Content-&quot; と &quot;Message-ID&quot; だけでした。
以下同じ。 <anchor-internal xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="4" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">&gt;&gt;4</anchor-internal> も参照。</p></insert><pre>    (3)   The header fields in the enclosed message which start
          with &quot;Content-&quot;, plus the &quot;Subject&quot;, &quot;Message-ID&quot;,
          &quot;Encrypted&quot;, and &quot;MIME-Version&quot; fields, must be
          appended, in order, to the header fields of the new
          message.  Any header fields in the enclosed message
          which do not start with &quot;Content-&quot; (except for the
          &quot;Subject&quot;, &quot;Message-ID&quot;, &quot;Encrypted&quot;, and &quot;MIME-
          Version&quot; fields) will be ignored and dropped.</pre><p>囲まれたメッセージ中の &quot;Content-&quot; で始まる頭欄, 
それに &quot;Subject&quot;, &quot;Message-ID&quot;, &quot;Encrypted&quot;, &quot;MIME-Version&quot; 
各欄は、そのままの順で、新しいメッセージの頭欄に付け加えます。
囲まれたメッセージ中の &quot;Content-&quot; で始まらない頭欄
(&quot;Subject&quot;, &quot;Message-ID&quot;, &quot;Encrypted&quot;, &quot;MIME-Version&quot; 欄を除く。)
は無視し、落とします。</p><pre>    (4)   All of the header fields from the second and any
          subsequent enclosing messages are discarded by the
          reassembly process.</pre><p>2番目以降の囲むメッセージからの頭欄は全て、復元の過程で捨てます。</p></section><section><h1>5.2.2.2.  Fragmentation and Reassembly Example <ins>断片化と復元の例</ins></h1><blockquote><p>If an audio message is broken into two pieces, the first piece might
look something like this:</p></blockquote><p>音声メッセージが2片に分割された時、最初の片はこのようになります。</p><pre>     X-Weird-Header-1: Foo
     From: Bill@host.com
     To: joe@otherhost.com
     Date: Fri, 26 Mar 1993 12:59:38 -0500 (EST)
     Subject: Audio mail (part 1 of 2)
     Message-ID: &lt;id1@host.com&gt;
     MIME-Version: 1.0
     Content-type: message/partial; id=&quot;ABC@host.com&quot;;
                   number=1; total=2</pre><pre>     X-Weird-Header-1: Bar
     X-Weird-Header-2: Hello
     Message-ID: &lt;anotherid@foo.com&gt;
     Subject: Audio mail
     MIME-Version: 1.0
     Content-type: audio/basic
     Content-transfer-encoding: base64</pre><pre>       ... first half of encoded audio data goes here ...</pre><blockquote><p>and the second half might look something like this:</p></blockquote><p>で、2番目の半分はこんな感じになるでしょう。</p><pre>     From: Bill@host.com
     To: joe@otherhost.com
     Date: Fri, 26 Mar 1993 12:59:38 -0500 (EST)
     Subject: Audio mail (part 2 of 2)
     MIME-Version: 1.0
     Message-ID: &lt;id2@host.com&gt;
     Content-type: message/partial;
                   id=&quot;ABC@host.com&quot;; number=2; total=2</pre><pre>       ... second half of encoded audio data goes here ...</pre><blockquote><p>Then, when the fragmented message is reassembled, the resulting
message to be displayed to the user should look something like this:</p></blockquote><p>この時、断片化メッセージを復元したら、利用者に表示される
結果のメッセージはこのようになるはずであります。</p><pre>     X-Weird-Header-1: Foo
     From: Bill@host.com
     To: joe@otherhost.com
     Date: Fri, 26 Mar 1993 12:59:38 -0500 (EST)
     Subject: Audio mail
     Message-ID: &lt;anotherid@foo.com&gt;
     MIME-Version: 1.0
     Content-type: audio/basic
     Content-transfer-encoding: base64</pre><pre>       ... first half of encoded audio data goes here ...
       ... second half of encoded audio data goes here ...</pre><blockquote><p>The inclusion of a &quot;References&quot; field in the headers of the second
and subsequent pieces of a fragmented message that references the
Message-Id on the previous piece may be of benefit to mail readers
that understand and track references.  However, the generation of
such &quot;References&quot; fields is entirely optional.</p></blockquote><p>2番目以降の断片化メッセージの欠片に前の欠片の Message-ID を指す 
&quot;References&quot; 欄を入れることで、 references
を理解して追跡するメイル読者には有益になるかもしれません。
しかし、こうした &quot;References&quot; 欄の生成は、完全に任意のものです。</p><blockquote><p>Finally, it should be noted that the &quot;Encrypted&quot; header field has
been made obsolete by Privacy Enhanced Messaging (PEM) [RFC-1421,
RFC-1422, RFC-1423, RFC-1424], but the rules above are nevertheless
believed to describe the correct way to treat it if it is encountered
in the context of conversion to and from &quot;message/partial&quot; fragments.</p></blockquote><p>最後に、注意されたいのは、 &quot;Encrypted&quot; 頭欄は高度秘密メッセージ
(Privacy Enhanced Messaging; <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">PEM</anchor>) で廃止にされていますが、
それでも上記の規則は、 &quot;message/partial&quot; 断片へ, あるいは
断片からの変換の場面での正しい取り扱い方法を説明していると
信じています。</p></section></figure></section><section><h1>メモ</h1><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="8" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[8]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">spam</anchor> 問題の対策なのかなんなのか、特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体型</anchor>の場合は
(あるいは特定の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">媒体型</anchor>以外では) <code><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">550</anchor></code>
を返して遅れない <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">SMTP</anchor> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">鯖</anchor>があるようです。
そういう鯖に対して大きな<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">メッセージ</anchor>を送ろうとして、
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MUA</anchor> が気が利かして <code class="MIME"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor></code>
で分割して送ろうとすると、 <q><code class="MIME">message/partial</code> は不正な媒体型です</q>のようなエラーが鯖からかえってきます。
(<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">名無しさん</anchor> [sage] <weak xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">2005-05-31 02:06:40 +00:00</weak>)</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="11" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[11]</anchor-end>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5064</anchor> 2.3. では、<code class="MIME" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">message/partial</anchor></code> において
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Archived-At</anchor>:</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor>は <code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Comments</anchor>:</code>
<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor>と同様に扱われる、即ち<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片化</anchor>の際には最初の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片メッセージ</anchor>に含まれ、
結合の際には最初の<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片メッセージ</anchor>から結合されたメッセージに戻される、
と説明されています。
ただし、 <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 2046</anchor> を読む限り、 <code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Comments</anchor>:</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor>はそのような扱いを受けないはずです。
また、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">RFC 5064</anchor> 2.3. には、混乱を防ぐため、<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">素片メッセージ</anchor>には
<code class="822" xml:lang="en"><anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">Archived-At</anchor>:</code> <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">頭欄</anchor>を含める<anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:"><strong xmlns="http://www.w3.org/1999/xhtml">べきではありません</strong></anchor>との規定もあります。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="44" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[44]</anchor-end> <cite xml:lang="en">RFC 8098 - Message Disposition Notification</cite>
(<time>2017-03-02 23:20:54 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc8098">https://tools.ietf.org/html/rfc8098</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="45" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[45]</anchor-end> <cite xml:lang="en">RFC 8098 - Message Disposition Notification</cite>
(<time>2017-03-02 23:20:54 +09:00</time>)
<anchor-external xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resScheme="URI" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:resParameter="https://tools.ietf.org/html/rfc8098#section-2.4">https://tools.ietf.org/html/rfc8098#section-2.4</anchor-external></p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="46" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[46]</anchor-end> 
最近の <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MUA</anchor> は対応しているのかどうかよくわかりませんね。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="47" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[47]</anchor-end> 
少なくても送信側については対応していないものが多そうに見えます。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="48" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[48]</anchor-end> 
今では技術的には大容量サイズのファイルでもそんなに問題はないと思われますが、
実運用上はサーバー側で厳しめに制限しているところが今でも多そうなので、
需要はありそうに思います。</p><p><anchor-end xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:" a0:anchor="49" xmlns:a0="urn:x-suika-fam-cx:markup:suikawiki:0:9:">[49]</anchor-end> 
でも <anchor xmlns="urn:x-suika-fam-cx:markup:suikawiki:0:9:">MUA</anchor> も大容量サイズのファイルを扱う想定では設計されていないでしょうし、
大容量ファイルは別の何処かにアップロードして URL を送るような運用が一般化してしまっているので、
需要はあって実装したとて使われなさそうではあるんですよね。</p></section></body></html>