標準仕様書(TS)        TS X 0071:2004

多目的インターネットメール拡張(MIME)

第3部 非ASCIIテキストへのメッセージヘッダ拡張

Multipurpose Internet Mail Extensions (MIME)

Part Three: Message Header Extensions for Non-ASCII Text



序文

この標準仕様書(TS)は,1996年11月にInternat Engineering Task Force (IETF)から公表されたRFC 2047 "Multipurpose Internet Mail Extensions (MIME) Part Three: Message Header Extensions for Non-ASCII Text"を翻訳し,技術的内容を変更することなく作成した標準 仕様書(TS)である。

Network Working Group K. Moore Request for Comments: 2047 University of Tennessee Obsoletes: 1521, 1522, 1590 November 1996 Category: Standards Track MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text Status of this Memo This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

1. 導入

1.1 適用範囲

Abstract

インターネット公式プロトコル規定STD 11であるRFC 822では,US-ASCIIメッセージヘッダについて多くの詳細を規定したメッセージ表現プロトコルを定義しているが,メッセージ内容,すなわちメッセージ本体については,構造のないUS-ASCIIテキストだけとしている。この標準情報(TR)を含む一連の 標準仕様書(TS)及び標準情報(TR)は,多目的インターネットメール拡張又はMIMEと総称され,次のことを可能とするために,メッセージのフォーマットを再定義する。

STD 11, RFC 822, defines a message representation protocol specifying considerable detail about US-ASCII message headers, and leaves the message content, or message body, as flat US-ASCII text. This set of documents, collectively called the Multipurpose Internet Mail Extensions, or MIME, redefines the format of messages to allow for (1) textual message bodies in character sets other than US-ASCII, (2) an extensible set of different formats for non-textual message bodies, (3) multi-part message bodies, and (4) textual header information in character sets other than US-ASCII.

MIMEを規定する一連の標準仕様書(TS)及び標準情報(TR)は,RFC 934,STD 11及びRFC 1049に文書化されている初期の成果に基づくが,それらを拡張及び改訂する。RFC 822では,メッセージ本体についてはごくわずかに示しているだけなので,これらの 標準仕様書(TS)及び標準情報(TR)の大部分は,RFC 822の改訂というよりは,RFC 822を補うものである。

These documents are based on earlier work documented in RFC 934, STD 11, and RFC 1049, but extends and revises them. Because RFC 822 said so little about message bodies, these documents are largely orthogonal to (rather than a revision of) RFC 822.

この標準仕様書(TS)は,MIMEを規定する一連の標準仕様書(TS)及び標準情報(TR)の3番目である。 この標準仕様書(TS)は,インターネットメールヘッダフィールドの中で非US-ASCIIデータを可能にするためのRFC 822の拡張について記述する。

This particular document is the third document in the series. It describes extensions to RFC 822 to allow non-US-ASCII text data in Internet mail header fields.

MIMEを規定する他の標準仕様書(TS)及び標準情報(TR)は,次を含む。

注1 これらの標準仕様書(TS)は,2004年3月現在,公表されていないが,今後公表されることが期待される。

Other documents in this series include: + RFC 2045, which specifies the various headers used to describe the structure of MIME messages. + RFC 2046, which defines the general structure of the MIME media typing system and defines an initial set of media types, + RFC 2048, which specifies various IANA registration procedures for MIME-related facilities, and + RFC 2049, which describes MIME conformance criteria and provides some illustrative examples of MIME message formats, acknowledgements, and the bibliography.

これらの標準仕様書(TS)及び標準情報(TR)は,RFC 1521, RFC 1522及びRFC 1590の改訂であって,RFC 1521, RFC 1522及びRFC 1590は,RFC 1341及びRFC1342の改訂であった。RFC 2049を原規定とする標準 仕様書(TS)(1)の附属書に,過去の版との違い及び変更について記述する。

These documents are revisions of RFCs 1521, 1522, and 1590, which themselves were revisions of RFCs 1341 and 1342. An appendix in RFC 2049 describes differences and changes from previous versions.

1.2 概要

1. Introduction

TR X 0069は,多くの文字集合で符号化されたテキスト本体部分を表すための機構を,そのような本体部分を印字可能なUS-ASCII文字の列として符号化する方法とともに,記述している。 この標準仕様書(TS)は, 既存のメッセージ処理ソフトウェアを混乱させないような方法で, RFC 822メッセージヘッダの多くの部分での非ASCIIテキストの符号化を許すために,TR X 0069に記述されているものと類似の技法について記述する。

RFC 2045 describes a mechanism for denoting textual body parts which are coded in various character sets, as well as methods for encoding such body parts as sequences of printable US-ASCII characters. This memo describes similar techniques to allow the encoding of non-ASCII text in various portions of a RFC 822 [2] message header, in a manner which is unlikely to confuse existing message handling software.

TR X 0069に記述されている符号化技法と同様,ここで概要を述べる技法は,既存のインターネットメール処理プログラムの癖に妨害されないような方法で,メッセージヘッダ中に非ASCII文字を使用することを許すように,設計された。 特に,いくつかのメール中継プログラムは,次のことをすることが知られている。

加えて,いくつかのメール読みプログラムでは,RFC 822に従った合法的なものであっても, "<", ","又は":"などの特別な文字を"隠す"ための逆スラッシュ引用化を使用したメッセージ又はその規定であまり使われない他の機能の活用したメッセージを,正しく構文解析することが難しいということが知られている。

Like the encoding techniques described in RFC 2045, the techniques outlined here were designed to allow the use of non-ASCII characters in message headers in a way which is unlikely to be disturbed by the quirks of existing Internet mail handling programs. In particular, some mail relaying programs are known to (a) delete some message header fields while retaining others, (b) rearrange the order of addresses in To or Cc fields, (c) rearrange the (vertical) order of header fields, and/or (d) "wrap" message headers at different places than those in the original message. In addition, some mail reading programs are known to have difficulty correctly parsing message headers which, while legal according to RFC 822, make use of backslash-quoting to "hide" special characters such as "<", ",", or ":", or which exploit other infrequently-used features of that specification.

これらのプログラムがRFC 822ヘッダを正しく解釈しないことは不幸であるが,これらのプログラムを"遮断"することは,インターネットメールシステムに深刻な運用上の問題を引き起こすことになる。 そのため,この標準仕様書(TS)で記述される拡張は,RFC 822のあまり使われていない機能には頼らない。

While it is unfortunate that these programs do not correctly interpret RFC 822 headers, to "break" these programs would cause severe operational problems for the Internet mail system. The extensions described in this memo therefore do not rely on little- used features of RFC 822.

その代わり,"符号語"として知られる,確実な"普通"の印字可能なASCII文字の列が,符号化されたデータとしての利用に確保された。 符号語の構文は,メッセージヘッダ中の通常のテキストとして"偶然"に現れないようなものとする。 さらに,符号語に使われる文字は,符号語が現れた文脈で,特殊な意味をもたないものに制限される。

Instead, certain sequences of "ordinary" printable ASCII characters (known as "encoded-words") are reserved for use as encoded data. The syntax of encoded-words is such that they are unlikely to "accidentally" appear as normal text in message headers. Furthermore, the characters used in encoded-words are restricted to those which do not have special meanings in the context in which the encoded-word appears.

一般に,"符号語"は,"=?"で始まり,"?="で終わり,中間に二つの"?"をもつ,印字可能なASCII文字の列とする。 それは,文字集合及び符号化方法を規定し,その符号化方法の規則に従ってASCII図形文字として符号化された原テキストも含む。

Generally, an "encoded-word" is a sequence of printable ASCII characters that begins with "=?", ends with "?=", and has two "?"s in between. It specifies a character set and an encoding method, and also includes the original text encoded as graphic ASCII characters, according to the rules for that encoding method.

この規定を実装するメール作成ソフトウェアは,ヘッダに非ASCIIテキストを入力する手段を提供するが,メッセージヘッダにそれらを挿入する前に,これらのフィールド又はこれらのフィールドの適当な部分を符号語に翻訳する。

A mail composer that implements this specification will provide a means of inputting non-ASCII text in header fields, but will translate these fields (or appropriate portions of these fields) into encoded-words before inserting them into the message header.

この規定を実装するメールリーダは,メッセージヘッダのある部分に現われたとき,符号語を認識する。 符号語をそのまま表示する代わりに,指示された文字集合で元のテキストに逆符号化して表示する。

A mail reader that implements this specification will recognize encoded-words when they appear in certain portions of the message header. Instead of displaying the encoded-word "as is", it will reverse the encoding and display the original text in the designated character set.

備考  この標準仕様書(TS)は,RFC 822及びTR X 0069で定義された記法及び語に深く依存する。 特に,RFC 822からの終端又は非終端の記号の多くが,この標準仕様書(TS)で定義するヘッダ拡張のための文法で使われ,同様に,この標準仕様書(TS)で使われるABNFのための構文がRFC 822で定義される。 RFC 822で定義された記号のうち,この標準仕様書(TS)で参照するものは, 'addr-spec','atom','CHAR','comment','CTLs','ctext','linear-white-space','phrase','quoted-pair','quoted-string','SPACE'及び'word'である。 このプロトコル拡張の実装を成功させるためには,これらの語のRFC 822における定義に,注意深く目を向けることが必要である。

NOTES This memo relies heavily on notation and terms defined RFC 822 and RFC 2045. In particular, the syntax for the ABNF used in this memo is defined in RFC 822, as well as many of the terminal or nonterminal symbols from RFC 822 are used in the grammar for the header extensions defined here. Among the symbols defined in RFC 822 and referenced in this memo are: 'addr-spec', 'atom', 'CHAR', 'comment', 'CTLs', 'ctext', 'linear-white-space', 'phrase', 'quoted-pair'. 'quoted-string', 'SPACE', and 'word'. Successful implementation of this protocol extension requires careful attention to the RFC 822 definitions of these terms.

この標準仕様書(TS)で,"ASCII"という語が現われたら,それは,ANSI X3.4-1986,"7-Bit American Standard Code for Information Interchange"を参照する。 この文字集合のためのMIMEのcharset名は,"US-ASCII"である。 簡潔さとRFC 822との一貫性のため,この標準仕様書(TS)で,特にはMIMEのcharset名を参照せずに,"ASCII"という語を使う。 しかし,MIMEメッセージ及び本体部分ヘッダ中では,文字集合名は"US-ASCII"と綴られなければならないことに,実装者は注意しなければならない。

When the term "ASCII" appears in this memo, it refers to the "7-Bit American Standard Code for Information Interchange", ANSI X3.4-1986. The MIME charset name for this character set is "US-ASCII". When not specifically referring to the MIME charset name, this document uses the term "ASCII", both for brevity and for consistency with RFC 822. However, implementors are warned that the character set name must be spelled "US-ASCII" in MIME message and body part headers. この標準仕様書(TS)は,メッセージヘッダ中に非ASCIIテキストを表現するためのプロトコルを規定する。 この規定では,"8ビット"ヘッダと純粋なASCIIヘッダとの間の変換を定義しないし,このような変換を可能とすることも想定しない。

This memo specifies a protocol for the representation of non-ASCII text in message headers. It specifically DOES NOT define any translation between "8-bit headers" and pure ASCII headers, nor is any such translation assumed to be possible.

2. 符号語の構文

2. Syntax of encoded-words

次のABNF文法によって'encoded-word'が定義される。 'encoded-word'の要素間に空白文字が現われてはならないことを除き,RFC 822の記法が使われる。

An 'encoded-word' is defined by the following ABNF grammar. The notation of RFC 822 is used, with the exception that white space characters MUST NOT appear between components of an 'encoded-word'.
   encoded-word = "=?" charset "?" encoding "?" encoded-text "?="

   charset = token    ; 3.を参照

   encoding = token   ; 4.を参照

   token = 1*<SPACE, CTLs及びespecialsを除く任意のCHAR>

   especials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / "
               <"> / "/" / "[" / "]" / "?" / "." / "="

   encoded-text = 1*<"?"又はSPACE以外の任意の印字可能なASCII文字>
                  ; "5. メッセージヘッダ中の符号語の使用"を参照
                  ; 
encoded-word = "=?" charset "?" encoding "?" encoded-text "?=" charset = token ; see section 3 encoding = token ; see section 4 token = 1*<Any CHAR except SPACE, CTLs, and especials> especials = "(" / ")" / "<" / ">" / "@" / "," / ";" / ":" / " <"> / "/" / "[" / "]" / "?" / "." / "=" encoded-text = 1*<Any printable ASCII character other than "?" or SPACE> ; (but see "Use of encoded-words in message ; headers", section 5)

'encoding'名及び'charset'名は大文字小文字を区別しない。 だから,charset名"ISO-8859-1"は"iso-8859-1"と等価であり,"Q"と名付けられた符号化は"Q"又は"q"のどちらの綴りでもよい。

Both 'encoding' and 'charset' names are case-independent. Thus the charset name "ISO-8859-1" is equivalent to "iso-8859-1", and the encoding named "Q" may be spelled either "Q" or "q".

'encoded-word'は,'charset','encoding','encoded-text'及び区切り子を含んで75文字より長くてはならない。 75文字の'encoded-word'に収まりきらない長いテキストを符号化することが望まれる場合,CRLF SPACEで区切られた複数の'encoded-word'を使ってよい。

An 'encoded-word' may not be more than 75 characters long, including 'charset', 'encoding', 'encoded-text', and delimiters. If it is desirable to encode more text than will fit in an 'encoded-word' of 75 characters, multiple 'encoded-word's (separated by CRLF SPACE) may be used.

複数行ヘッダフィールドの長さへは制限はないが,一つ以上の'encoded-word'を含むヘッダフィールドのそれぞれの行は76文字までに制限される。

While there is no limit to the length of a multiple-line header field, each line of a header field that contains one or more 'encoded-word's is limited to 76 characters.

長さの制限は,ネットワーク間のメールゲートウェイを通る相互運用性を容易にするため,及び,トークンが"符号語"であるか何かほかのものであるか決めることが出来るようになる前の,最後の"?="区切り子を探している間に,ヘッダの構文解析器が費やさなければならない先読みの量に制限を課するためである。

The length restrictions are included both to ease interoperability through internetwork mail gateways, and to impose a limit on the amount of lookahead a header parser must employ (while looking for a final ?= delimiter) before it can decide whether a token is an "encoded-word" or something else.

備考  'encoded-word'は,RFC 822構文解析器により,'atom'として認識されるように設計された。 その結果として,符号化されないSPACE及びHTABの様な空白文字は,'encoded-word'中で禁止される。 例えば,次の文字列は,RFC 822構文解析器による単一の'atom'としてではなく,又は,'encoded-words'を理解する構文解析器による'encoded-word'としてではなく,四つの'atom'として構文解析される。

IMPORTANT: 'encoded-word's are designed to be recognized as 'atom's by an RFC 822 parser. As a consequence, unencoded white space characters (such as SPACE and HTAB) are FORBIDDEN within an 'encoded-word'. For example, the character sequence
      =?iso-8859-1?q?this is some text?=
=?iso-8859-1?q?this is some text?=

文字列"this is some text"を符号化する正しい方法は,SPACE文字も同様に符号化することであり,例えば,次のようになる。

would be parsed as four 'atom's, rather than as a single 'atom' (by an RFC 822 parser) or 'encoded-word' (by a parser which understands 'encoded-words'). The correct way to encode the string "this is some text" is to encode the SPACE characters as well, e.g.
      =?iso-8859-1?q?this=20is=20some=20text?=
=?iso-8859-1?q?this=20is=20some=20text?=

'encoded-text'中に現われてもよい文字は,5.に規定する規則により,さらに制限される。

The characters which may appear in 'encoded-text' are further restricted by the rules in section 5.

3. 文字集合

3. Character sets

'encoded-word'の'charset'部分は,符号化されていないテキストに関連する文字集合を指定する。 "text/plain"本体部分のMIME"charset"パラメタ中に許される任意の文字集合名,又は,MIMEのtext/plain内容型で使うためにIANAで登録された任意の文字集合名が,'charset'として可能とする。

The 'charset' portion of an 'encoded-word' specifies the character set associated with the unencoded text. A 'charset' can be any of the character set names allowed in an MIME "charset" parameter of a "text/plain" body part, or any character set name registered with IANA for use with the MIME text/plain content-type.

いくつかの文字集合は,"ASCIIモード"及び他のモードを切り換える,コード切り換え技法を使う。 'encoded-word'中の符号化されていないテキストが,ASCIIモードから抜ける切り換えを行うcharset解釈器を起動する列を含む場合,'encoded-word'の最後に再びASCIIモードを選択する追加の制御コードを含まなければならない。 この規則は,単一のヘッダフィールド内の直前の'encoded-word'を含み,それぞれの'encoded-word'に別々に適用される。

Some character sets use code-switching techniques to switch between "ASCII mode" and other modes. If unencoded text in an 'encoded-word' contains a sequence which causes the charset interpreter to switch out of ASCII mode, it MUST contain additional control codes such that ASCII mode is again selected at the end of the 'encoded-word'. (This rule applies separately to each 'encoded-word', including adjacent 'encoded-word's within a single header field.)

'encoded-word'中でテキストを表現する複数の文字集合を使う可能性がある場合で,メッセージの送信者と受信者との間の私的合意がない場合,他の文字集合に優先してISO-8859-*の一連のものの中から使用することを推奨する。

When there is a possibility of using more than one character set to represent the text in an 'encoded-word', and in the absence of private agreements between sender and recipients of a message, it is recommended that members of the ISO-8859-* series be used in preference to other character sets.

4. 符号化

4. Encodings

はじめに規定する"encoding"の合法的な値は,"Q"及び"B"とする。 これらの符号化については,以下に記述される。 "Q"符号化は,符号化される文字のほとんどがASCII文字集合に含まれる場合に,使用が推奨され,それ以外の場合は,"B"符号化を使用するのがよい。 このことにはかかわらず,'encoded-word'を認識すると宣言するメールリーダは,サポートするすべての文字集合に対して,どちらの符号化も受け入れなければならない。

Initially, the legal values for "encoding" are "Q" and "B". These encodings are described below. The "Q" encoding is recommended for use when most of the characters to be encoded are in the ASCII character set; otherwise, the "B" encoding should be used. Nevertheless, a mail reader which claims to recognize 'encoded-word's MUST be able to accept either encoding for any character set which it supports.

'encoded-text'には,印字可能なASCII文字のサブセットだけを,使用してよい。 スペース文字及びタブ文字は許容されないので,'encoded-word'の始まり及び終わりは明白である。 "?"文字は,'encoded-word'内の多くの部分を他の部分と分離するのに使われるから,'encoded-text'部分には現われることはできない。 他の文字は,特定の文脈では,不正である。例えば,Fromヘッダフィールド中で,アドレスに先行する'phrase'中には'encoded-word'は,RFC 822で定義される"specials"の何も含んではならない。 最後に,ネットワーク間のメールゲートウェイを通過するメッセージの信頼性を保証するために,いくつかの文脈では特定の文字は許されない。

Only a subset of the printable ASCII characters may be used in 'encoded-text'. Space and tab characters are not allowed, so that the beginning and end of an 'encoded-word' are obvious. The "?" character is used within an 'encoded-word' to separate the various portions of the 'encoded-word' from one another, and thus cannot appear in the 'encoded-text' portion. Other characters are also illegal in certain contexts. For example, an 'encoded-word' in a 'phrase' preceding an address in a From header field may not contain any of the "specials" defined in RFC 822. Finally, certain other characters are disallowed in some contexts, to ensure reliability for messages that pass through internetwork mail gateways.

"B"符号化はこれらの要求に自動的に従うことになる。 "Q"符号化は,Subjectなどのメッセージヘッダ中の転送に重大ではない場所では,広い範囲の印字可能文字の使用を許容し,他の場所では,それより狭い範囲の文字の使用を許容する。

The "B" encoding automatically meets these requirements. The "Q" encoding allows a wide range of printable characters to be used in non-critical locations in the message header (e.g., Subject), with fewer characters available for use in other locations.

4.1 "B"符号化

4.1. The "B" encoding

"B"符号化は,TR X 0069で定義される"BASE64"符号化と同一とする。

The "B" encoding is identical to the "BASE64" encoding defined by RFC 2045.

4.2 "Q"符号化

4.2. The "Q" encoding

"Q"符号化は,TR X 0069で定義される"Quoted-Printable"内容転送符号化と似ている。 ASCII端末で,復号することなしに解読されるほとんどのASCII文字を許すように設計されている。

The "Q" encoding is similar to the "Quoted-Printable" content- transfer-encoding defined in RFC 2045. It is designed to allow text containing mostly ASCII characters to be decipherable on an ASCII terminal without decoding.

5. メッセージヘッダ中の符号語の使用

5. Use of encoded-words in message headers

'encoded-word'は,メッセージヘッダ中又は本体部分ヘッダ中に,次の規則にしたがって現われてよい。

An 'encoded-word' may appear in a message header or body part header according to the following rules:

'encoded-word'が現れてよい場所は,これらだけとする。特に,

These are the ONLY locations where an 'encoded-word' may appear. In particular: + An 'encoded-word' MUST NOT appear in any portion of an 'addr-spec'. + An 'encoded-word' MUST NOT appear within a 'quoted-string'. + An 'encoded-word' MUST NOT be used in a Received header field. + An 'encoded-word' MUST NOT be used in parameter of a MIME Content-Type or Content-Disposition field, or in any structured field body except within a 'comment' or 'phrase'.

'encoded-word'中の'encoded-text'は自分自身に含まれなければならない。 すなわち,'encoded-text'は,一つの'encoded-word'からもう一つの'encoded-word'に続いてはならない。 これは,"B"'encoded-word'の'encoded-text'部分が4文字の長さの倍数となることを示唆する。 "Q"'encoded-word'では,'encoded-text'部分中に現れるどの"="文字も二つの16進文字によって後続される。

The 'encoded-text' in an 'encoded-word' must be self-contained; 'encoded-text' MUST NOT be continued from one 'encoded-word' to another. This implies that the 'encoded-text' portion of a "B" 'encoded-word' will be a multiple of 4 characters long; for a "Q" 'encoded-word', any "=" character that appears in the 'encoded-text' portion will be followed by two hexadecimal characters.

それぞれの'encoded-word'はオクテットの整数を符号化しなければならない。 それぞれの'encoded-word'中の'encoded-text'は,指定された符号化に従って整形されなければならない。 すなわち,'encoded-text'は,次の'encoded-word'に続いてはならない。 例えば,"=?charset?Q?=?==?charset?Q?AB?="は不正である。何故ならば,同じ'encoded-word'中の二つの16進数字"AB"は"="に続かなければならないからである。

Each 'encoded-word' MUST encode an integral number of octets. The 'encoded-text' in each 'encoded-word' must be well-formed according to the encoding specified; the 'encoded-text' may not be continued in the next 'encoded-word'. (For example, "=?charset?Q?=?= =?charset?Q?AB?=" would be illegal, because the two hex digits "AB" must follow the "=" in the same 'encoded-word'.)

それぞれの'encoded-word'は,文字の整数を表現しなければならない。 複数オクテット文字は,隣接する'encoded-word'へ分割してはならない。

Each 'encoded-word' MUST represent an integral number of characters. A multi-octet character may not be split across adjacent 'encoded- word's.

この印字可能な文字データ及び空白文字データだけを,この体系を使って符号化するほうがよい。 しかし,これらの符号化体系は,任意のオクテット値の符号化を許すので,この復号を実装するメールリーダは,受信者の端末で復号されたデータの表示に,望まない副作用を引き起こさないことを保証する方がよい。

Only printable and white space character data should be encoded using this scheme. However, since these encoding schemes allow the encoding of arbitrary octet values, mail readers that implement this decoding should also ensure that display of the decoded data on the recipient's terminal will not cause unwanted side-effects.

これらの方法を非テキストデータ(例えば,画像又は音)を符号化するために使用することを,この標準仕様書(TS)では定義しない。 純粋なASCII文字の列を表現するための'encoded-word'の使用は,許されてはいるが,しないほうがよい。 まれではあるが,'encoded-word'のように見える普通のテキストを符号化する必要があるかもしれない。

Use of these methods to encode non-textual data (e.g., pictures or sounds) is not defined by this memo. Use of 'encoded-word's to represent strings of purely ASCII characters is allowed, but discouraged. In rare cases it may be necessary to encode ordinary text that looks like an 'encoded-word'.

6. メールリーダによる'encoded-word'のサポート

6. Support of 'encoded-word's by mail readers

6.1 メッセージヘッダ中の'encoded-word'の認識

6.1. Recognition of 'encoded-word's in message headers

メールリーダは,'encoded-word'を正しく認識するため,RFC 822の規定に従って,メッセージヘッダ及び本体部分ヘッダを,構文解析しなければならない。

A mail reader must parse the message and body part headers according to the rules in RFC 822 to correctly recognize 'encoded-word's.

'encoded-word'は次のように認識される。

'encoded-word's are to be recognized as follows:

6.2 'encoded-word'の表示

6.2. Display of 'encoded-word's

認識されるすべての'encoded-word'は復号され,その結果の符号化されていないテキストは,可能であれば,元来の文字集合で表示される。

Any 'encoded-word's so recognized are decoded, and if possible, the resulting unencoded text is displayed in the original character set.

備考  符号語の復号及び表示は,構造化された本体が構文解析されてトークンになった後に,実行される。 したがって,取り囲むテキスト中の'special'文字と区別できない,符号語中の'special'文字は,表示されるときに,隠すことができる。 この理由及びその他の理由によって,'encoded-word'を含むメッセージヘッダを,RFC 822メールリーダで構文解析することができる符号化されていない形式に翻訳することは,一般には,できない。

NOTE: Decoding and display of encoded-words occurs *after* a structured field body is parsed into tokens. It is therefore possible to hide 'special' characters in encoded-words which, when displayed, will be indistinguishable from 'special' characters in the surrounding text. For this and other reasons, it is NOT generally possible to translate a message header containing 'encoded-word's to an unencoded form which can be parsed by an RFC 822 mail reader.

複数の'encoded-word'を含む特定のヘッダフィールドを表示するとき,隣接する'encoded-word'の対を分離するすべての'linear-white-space'は,無視されるものとする。 これは, 符号化されていないテキスト中の空白がある場所で'encoded-word'を分離しなくてはならないことなしに,符号化されていないテキストの長い文字列を表すために複数の'encoded-word'を使用することを許容するためである。

When displaying a particular header field that contains multiple 'encoded-word's, any 'linear-white-space' that separates a pair of adjacent 'encoded-word's is ignored. (This is to allow the use of multiple 'encoded-word's to represent long strings of unencoded text, without having to separate 'encoded-word's where spaces occur in the unencoded text.)

将来的に他の符号化が定義されて,メールリーダが使われている符号化をサポートしない場合,(a) 'encoded-word'を通常のテキストとして表示するか,又は(b)テキストを復号できないことを示す適当なメッセージに代えるかのどちらかをしてよい。

In the event other encodings are defined in the future, and the mail reader does not support the encoding used, it may either (a) display the 'encoded-word' as ordinary text, or (b) substitute an appropriate message indicating that the text could not be decoded.

メールリーダが使われている文字集合をサポートしないとき,(a)'encoded-word'を通常のテキストとしてヘッダ中に表示する,(b)利用可能な文字を使って表示する最大限の努力をする,又は(c)復号されたテキストが表示できないことを示す適当なメッセージに代える,のいずれでもしてよい。

If the mail reader does not support the character set used, it may (a) display the 'encoded-word' as ordinary text (i.e., as it appears in the header), (b) make a "best effort" to display using such characters as are available, or (c) substitute an appropriate message indicating that the decoded text could not be displayed.

使われている文字集合が,コード切替え技法を採用している場合,符号化されたテキストの表示は,暗黙に"ASCIIモード"で始まるとする。 さらに,メールリーダは,'encoded-word'が表示された後に,出力機器が再び"ASCIIモード"に戻ることを保証しなければならない。

If the character set being used employs code-switching techniques, display of the encoded text implicitly begins in "ASCII mode". In addition, the mail reader must ensure that the output device is once again in "ASCII mode" after the 'encoded-word' is displayed.

6.3 誤った形式の'encoded-word'に対するメールリーダ処理

6.3. Mail reader handling of incorrectly formed 'encoded-word's

2.に定義されている構文に従う正当な'encoded-word'が,使用された符号化の規則に従って,誤った形式になっている可能性がある。例えば,次のような場合である。

It is possible that an 'encoded-word' that is legal according to the syntax defined in section 2, is incorrectly formed according to the rules for the encoding being used. For example:

メールリーダは,形式が誤っている'encoded-word'に関連するテキストを表示しようとする必要はない。 しかし,メールリーダは,'encoded-word'が誤った形式をしているからという理由で,メッセージの表示又は処理を妨げてはならない。

A mail reader need not attempt to display the text associated with an 'encoded-word' that is incorrectly formed. However, a mail reader MUST NOT prevent the display or handling of a message because an 'encoded-word' is incorrectly formed.

7. 適合性

7. Conformance

この規定に適合すると主張するメール作成プログラムは,"=?"で始まり"?="で終わる'*text'又は'*ctext'内の空白でない印字可能なASCII文字の列が,正当な'encoded-word'であることを保証しなければならない。 ここで,"始まる"とは,'linear-white-space'の直後又は'*ctext'中の'encoded-word'では"("の直後の,フィールド本体の開始を意味し, "終わる"とは,'linear-white-space'の直前又は'*ctext'中の'encoded-word'では")"の直前の,フィールド本体の終わりを意味する。 さらに,"=?"で始まり"?="で終わる'phrase'中のすべての'word'は,正当な'encoded-word'でなければならない。

A mail composing program claiming compliance with this specification MUST ensure that any string of non-white-space printable ASCII characters within a '*text' or '*ctext' that begins with "=?" and ends with "?=" be a valid 'encoded-word'. ("begins" means: at the start of the field-body, immediately following 'linear-white-space', or immediately following a "(" for an 'encoded-word' within '*ctext'; "ends" means: at the end of the field-body, immediately preceding 'linear-white-space', or immediately preceding a ")" for an 'encoded-word' within '*ctext'.) In addition, any 'word' within a 'phrase' that begins with "=?" and ends with "?=" must be a valid 'encoded-word'.

この規定に適合すると主張するメール読みプログラムは,メッセージヘッダ中の適当な位置に現われるときにはいつでも,6.に規定する規則に従って,'encoded-word'を'text','ctext'又は'word'と区別できなければならない。 そのプログラムは,サポートするすべての文字集合に対して,"B"符号化及び"Q"符号化の両方をサポートしなければならない。 そのプログラムは,文字集合が"US-ASCII"ならば,符号化されていないテキストを表示できなければならない。 ISO-8859-* 文字集合に対しては,メールリーダプログラムは,少なくとも,ASCII集合にもある文字を表示できなければならない。

A mail reading program claiming compliance with this specification must be able to distinguish 'encoded-word's from 'text', 'ctext', or 'word's, according to the rules in section 6, anytime they appear in appropriate places in message headers. It must support both the "B" and "Q" encodings for any character set which it supports. The program must be able to display the unencoded text if the character set is "US-ASCII". For the ISO-8859-* character sets, the mail reading program must at least be able to display the characters which are also in the ASCII set.

8. 例

8. Examples

'encoded-word'を含むメッセージヘッダの例は次のとおりである。

The following are examples of message headers containing 'encoded- word's:
  From: =?US-ASCII?Q?Keith_Moore?= 
   To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= 
   CC: =?ISO-8859-1?Q?Andr=E9?= Pirard 
   Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?=
    =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=
From: =?US-ASCII?Q?Keith_Moore?= <moore@cs.utk.edu> To: =?ISO-8859-1?Q?Keld_J=F8rn_Simonsen?= <keld@dkuug.dk> CC: =?ISO-8859-1?Q?Andr=E9?= Pirard <PIRARD@vm1.ulg.ac.be> Subject: =?ISO-8859-1?B?SWYgeW91IGNhbiByZWFkIHRoaXMgeW8=?= =?ISO-8859-2?B?dSB1bmRlcnN0YW5kIHRoZSBleGFtcGxlLg==?=

備考  上記のSubjectフィールドの最初の'encoded-word'では,それぞれの'encoded-word'が自己完結していなければならないので("="文字は2オクテットを表す4つのbase64文字のかたまりを完了しなければならない),'encoded-text'の終わりにある最後の"="は必要である。 2番目の'encoded-word'が最初とは異なる'charset'を使うのでなければ,最初の'encoded-word'で追加のオクテットが符号化されることはできた(符号語はちょうど3つの符号化されたオクテットの倍数となる)。

Note: In the first 'encoded-word' of the Subject field above, the last "=" at the end of the 'encoded-text' is necessary because each 'encoded-word' must be self-contained (the "=" character completes a group of 4 base64 characters representing 2 octets). An additional octet could have been encoded in the first 'encoded-word' (so that the encoded-word would contain an exact multiple of 3 encoded octets), except that the second 'encoded-word' uses a different 'charset' than the first one.
   From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= 
   To: ietf-822@dimacs.rutgers.edu, ojarnef@admin.kth.se
   Subject: Time for ISO 10646?

   To: Dave Crocker 
   Cc: ietf-822@dimacs.rutgers.edu, paf@comsol.se
   From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= 
   Subject: Re: RFC-HDR care and feeding

   From: Nathaniel Borenstein 
         (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=)
   To: Greg Vaudreuil , Ned Freed
      , Keith Moore 
   Subject: Test of new header generator
   MIME-Version: 1.0
   Content-type: text/plain; charset=ISO-8859-1
From: =?ISO-8859-1?Q?Olle_J=E4rnefors?= <ojarnef@admin.kth.se> To: ietf-822@dimacs.rutgers.edu, ojarnef@admin.kth.se Subject: Time for ISO 10646? To: Dave Crocker <dcrocker@mordor.stanford.edu> Cc: ietf-822@dimacs.rutgers.edu, paf@comsol.se From: =?ISO-8859-1?Q?Patrik_F=E4ltstr=F6m?= <paf@nada.kth.se> Subject: Re: RFC-HDR care and feeding From: Nathaniel Borenstein <nsb@thumper.bellcore.com> (=?iso-8859-8?b?7eXs+SDv4SDp7Oj08A==?=) To: Greg Vaudreuil <gvaudre@NRI.Reston.VA.US>, Ned Freed <ned@innosoft.com>, Keith Moore <moore@cs.utk.edu> Subject: Test of new header generator MIME-Version: 1.0 Content-type: text/plain; charset=ISO-8859-1

次の例は,構造化されたフィールド本体に現われる'encoded-word'を含むテキストがどのようであるかを示す。 "("及び")"が'comment'区切り子として認識されないから,'*text'として定義されるフィールドとは,規則が少し異なる。 5.の(1)を参照すること。

The following examples illustrate how text containing 'encoded-word's which appear in a structured field body. The rules are slightly different for fields defined as '*text' because "(" and ")" are not recognized as 'comment' delimiters. [Section 5, paragraph (1)].

次のそれぞれの例では,'*text'フィールド中に同じ並びが起こらない場合,"表示される"形式は,"符号化された形式"と同一であることを除き,符号語として取り扱われない。 これは,次の例では符号語のそれぞれが,"("又は")"文字と隣接しているからである。

In each of the following examples, if the same sequence were to occur in a '*text' field, the "displayed as" form would NOT be treated as encoded words, but be identical to the "encoded form". This is because each of the encoded-words in the following examples is adjacent to a "(" or ")" character.
符号化形式表示形式
(=?ISO-8859-1?Q?a?=)(a)
(=?ISO-8859-1?Q?a?= b)(a b)
'comment'中では,空白は,'encoded-word'と取り囲むテキストとの間に現われなければならない(5.(2))。 しかし,空白は,'comment'を始める最初の"("と'encoded-word'との間には必要でない。
(=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=)(ab)
隣り合う'encoded-word'間の空白は表示されない。
(=?ISO-8859-1?Q?a?=  =?ISO-8859-1?Q?b?=)(ab)
'encoded-word'間に複数のSPACEがあっても,表示の目的のためには無視される。
(=?ISO-8859-1?Q?a?=
   =?ISO-8859-1?Q?b?=)
(ab)
'encoded-word'間の任意の量の線形空白は,一つ以上のSPACEに後続されるCRLFを含んでいても,表示の目的のためには無視される。
(=?ISO-8859-1?Q?a_b?=)(a b)
符号化されたテキストの部分内で表示されるSPACEを生じさせるため,SPACEは,'encoded-word'の一部として符号化されなければならない。
(=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=)(a b)
符号化されたテキストの二つの文字列の間に表示されるSPACEを生じさせるため,SPACEは,一つの'encoded-word'の一部として符号化してもよい。
encoded form displayed as --------------------------------------------------------------------- (=?ISO-8859-1?Q?a?=) (a) (=?ISO-8859-1?Q?a?= b) (a b) Within a 'comment', white space MUST appear between an 'encoded-word' and surrounding text. [Section 5, paragraph (2)]. However, white space is not needed between the initial "(" that begins the 'comment', and the 'encoded-word'. (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=) (ab) White space between adjacent 'encoded-word's is not displayed. (=?ISO-8859-1?Q?a?= =?ISO-8859-1?Q?b?=) (ab) Even multiple SPACEs between 'encoded-word's are ignored for the purpose of display. (=?ISO-8859-1?Q?a?= (ab) =?ISO-8859-1?Q?b?=) Any amount of linear-space-white between 'encoded-word's, even if it includes a CRLF followed by one or more SPACEs, is ignored for the purposes of display. (=?ISO-8859-1?Q?a_b?=) (a b) In order to cause a SPACE to be displayed within a portion of encoded text, the SPACE MUST be encoded as part of the 'encoded-word'. (=?ISO-8859-1?Q?a?= =?ISO-8859-2?Q?_b?=) (a b) In order to cause a SPACE to be displayed between two strings of encoded text, the SPACE MAY be encoded as part of one of the 'encoded-word's.

9. 引用規定

9. References
[RFC 822]
Crocker, D., "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDEL, August 1982.

[RFC 2049]
Borenstein, N., and N. Freed, "Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples", RFC 2049, November 1996.

[RFC 2045]
TR X 0069:2002 多目的インターネットメール拡張(MIME) 第1部 インターネットメッセージ本体のフォーマット.

備考 Borenstein, N., and N. Freed, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996 がこれに一致している。

[RFC 2046]
TS X 0070:2004 多目的インターネットメール拡張(MIME) 第2部 メディア型.

備考 Borenstein N., and N. Freed, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996 がこれに一致している。

[RFC 2048]
Freed, N., Klensin, J., and J. Postel, "Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures", RFC 2048, November 1996.
[RFC 822] Crocker, D., "Standard for the Format of ARPA Internet Text Messages", STD 11, RFC 822, UDEL, August 1982. [RFC 2049] Borenstein, N., and N. Freed, "Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria and Examples", RFC 2049, November 1996. [RFC 2045] Borenstein, N., and N. Freed, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996. [RFC 2046] Borenstein N., and N. Freed, "Multipurpose Internet Mail Extensions (MIME) Part Two: Media Types", RFC 2046, November 1996. [RFC 2048] Freed, N., Klensin, J., and J. Postel, "Multipurpose Internet Mail Extensions (MIME) Part Four: Registration Procedures", RFC 2048, November 1996.

10. セキュリティへの考慮

10. Security Considerations

セキュリティに関してはこの標準仕様書(TS)では規定しない。

Security issues are not discussed in this memo.

11. 貢献者

11. Acknowledgements

原規定の著者は,Nathaniel Borenstein, Issac Chan, Lutz Donnerhacke, Paul Eggert, Ned Freed, Andreas M. Kirchwitz, Olle Jarnefors, Mike Rosin, Yutaka Sato, Bart Schaefer及びKazuhiko Yamamotoの有用な助言,洞察に満ちた批評及びこの規定の初期の版への応答における啓発される質問に対して感謝する。

The author wishes to thank Nathaniel Borenstein, Issac Chan, Lutz Donnerhacke, Paul Eggert, Ned Freed, Andreas M. Kirchwitz, Olle Jarnefors, Mike Rosin, Yutaka Sato, Bart Schaefer, and Kazuhiko Yamamoto, for their helpful advice, insightful comments, and illuminating questions in response to earlier versions of this specification.

12. 原規定の著者への連絡先

12. Author's Address
   Keith Moore
   University of Tennessee
   107 Ayres Hall
   Knoxville TN 37996-1301

   EMail: moore@cs.utk.edu
Keith Moore University of Tennessee 107 Ayres Hall Knoxville TN 37996-1301 EMail: moore@cs.utk.edu