標準仕様書(TS) TS X 0107:2005
多目的インターネットメール拡張(MIME)
−第5部:適合基準
Multipurpose Internet Mail Extensions (MIME) —
Part 5: Conformance
Criteria and Examples
序文
この文書は,1996年11月にInternat Engineering Task Force (IETF)から公表されたRFC 2049
“Multipurpose Internet Mail Extensions (MIME) Part Five: Conformance Criteria
and Examples”を翻訳し,技術的内容を変更することなく作成した標準仕様書(TS)である。
Network Working Group N. Freed
Request for Comments: 2049 Innosoft
Obsoletes: 1521, 1522, 1590 N. Borenstein
Category: Standards Track First Virtual
November 1996
Multipurpose Internet Mail Extensions
(MIME) Part Five:
Conformance Criteria and Examples
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 適用範囲
Abstract
インターネット公式プロトコル規定STD 11であるRFC
822では,US-ASCIIメッセージヘッダについて多くの詳細を規定したメッセージ表現プロトコルを定義しているが,メッセージ,すなわちメッセージ本体については,
構造のないUS-ASCIIテキストだけとしている。この標準仕様書(TS)を含む一連の標準仕様書(TS)は,多目的インターネットメール拡張又はMIMEと総称され,次のことを可能とするために,メッセージのフォーマットを再定義する。
- a) US-ASCII以外の文字集合でのテキストのメッセージ本体
- b) 非テキストのメッセージ本体のための異なるフォーマットの拡張集合
- c) マルチパートのメッセージ本体
- d) US-ASCII以外の文字集合でのテキストのヘッダ情報
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)は,RFC 934,STD 11及びRFC
1049に文書化されている初期の成果に基づくが,それらを拡張及び改訂する。RFC
822では,メッセージ本体についてはごくわずかに示しているだけなので,これらの標準仕様書(TS)の大部分は,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)の最初であって,RFC 2045を原規定とするTS X
0069は,MIMEメッセージの構造を記述するために使用される多くのヘッダを規定する。2番目のRFC 2046を原規定とするTS X
0070は,MIMEメディア型付けシステムの一般的構造を定義し,メディア型の初期集合を定義する。3番目のRFC 2047を原規定とするTS X
0071は,非US-ASCIIでのインターネットメールヘッダフィールドの中で非US-ASCIIデータを可能にするためのRFC
822の拡張を規定する。4番目のRFC
2048を原規定とするTS X 0106は,MIME関連機能のための多くのIANA登録手続を規定する。最後の5番目のRFC
2049を原規定とするこの標準仕様書(TS)は,MIME適合基準を示し,それと共に幾つかのMIMEメッセージフォーマットの例示,貢献者及び参考文献を示す。
The initial document in this set, RFC 2045, specifies the various
headers used to describe the structure of MIME messages. The second
document defines the general structure of the MIME media typing
system and defines an initial set of media types. The third
document, RFC 2047, describes extensions to RFC 822 to allow non-US-
ASCII text data in Internet mail header fields. The fourth document,
RFC 2048, specifies various IANA registration procedures for MIME-
related facilities. This fifth and final document describes MIME
conformance criteria as well as providing some illustrative examples
of MIME message formats, acknowledgements, and the bibliography.
RFC 2045, RFC 2046, RFC 2047, RFC 2048及びRFC 2049は,RFC 1521, RFC 1522及びRFC
1590の改訂であって,RFC 1521, RFC 1522及びRFC 1590は, RFC 1341及びRFC
1342の改訂であった。附属書Bに,過去の版との違い及び変更を示す。
These documents are revisions of RFCs 1521, 1522, and 1590, which
themselves were revisions of RFCs 1341 and 1342. Appendix B of this
document describes differences and changes from previous versions.
Table of Contents
1. Introduction .......................................... 2
2. MIME Conformance ...................................... 2
3. Guidelines for Sending Email Data ..................... 6
4. Canonical Encoding Model .............................. 9
5. Summary ............................................... 12
6. Security Considerations ............................... 12
7. Authors' Addresses .................................... 12
8. Acknowledgements ...................................... 13
A. A Complex Multipart Example ........................... 15
B. Changes from RFC 1521, 1522, and 1590 ................. 16
C. References ............................................ 20
1.2 概要
1. Introduction
MIME関連の一連の規定のうち,1番目のTS X 0069及び2番目のTS X
0070は,MIMEヘッダフィールド及びMIMEメディア型の初期集合を定義する。3番目のTS X
0071は,US-ASCII以外の文字集合を可能とするために,RFC
822フォーマットの拡張について規定する。この標準仕様書(TS)は,MIMEのどの部分が適合するMIME実装によってサポートされなければならないかを規定する。また,この標準仕様書(TS)は,現代のメッセージングシステムの多くの落とし穴を示し,MIMEが基づいている正準符号化モデルをも規定する。
The first and second documents in this set define MIME header fields
and the initial set of MIME media types. The third document
describes extensions to RFC822 formats to allow for character sets
other than US-ASCII. This document describes what portions of MIME
must be supported by a conformant MIME implementation. It also
describes various pitfalls of contemporary messaging systems as well
as the canonical encoding model MIME is based on.
2. MIME Conformance
MIME関連規定で示される機構は,拡張に対応している。すべての実装がすべての可能なメディア型をサポートすることも,それらが同じ拡張を共有することも,全く期待されない。しかし相互運用性を推進するため,実装のある水準を定義する“MIME適合性”の概念を定義することは有用であり,これは,US-ASCIIテキストと異なる内容をもつメッセージの有用な交換を可能にする。
2.は,この適合性のための要件を規定する。
The mechanisms described in these documents are open-ended. It is
definitely not expected that all implementations will support all
available media types, nor that they will all share the same
extensions. In order to promote interoperability, however, it is
useful to define the concept of "MIME-conformance" to define a
certain level of implementation that allows the useful interworking
of messages with content that differs from US-ASCII text. In this
section, we specify the requirements for such conformance.
MIME適合であるメール利用者エージェントは,次を満たさなければならない。
A mail user agent that is MIME-conformant MUST:
- a) それが作成するすべてのメッセージに, 常に“MIME-Version: 1.0”ヘッダフィールドを生成しなければならない。 (1) Always generate a "MIME-Version: 1.0" header field in
any message it creates.
- b)
Content-Transfer-Encoding(内容転送符号化)ヘッダフィールドを認識し,quoted-printable実装又はbase64実装のどちらかによって符号化されたすべての受信データを復号しなければならない。
7ビット同一変換,8ビット同一変換及び2値同一変換も認識されなければならない。 (2) Recognize the Content-Transfer-Encoding header field
and decode all received data encoded by either quoted-
printable or base64 implementations. The identity
transformations 7bit, 8bit, and binary must also be
recognized.
符号化せずに送られるすべての非7ビットデータは,8ビット又は2値の内容転送符号化で適切にラベル付けされなければならない。下層にある転送機構が,8ビット又は2値をサポートしないとき(SMTP
[RFC-821]がサポートしないように),送信者は,quoted-printable又はbase64などの適切な内容転送符号化を用いて,データを符号化し,
かつラベル付けすることが要求される。 Any non-7bit data that is sent without encoding must be
properly labelled with a content-transfer-encoding of
8bit or binary, as appropriate. If the underlying
transport does not support 8bit or binary (as SMTP
[RFC-821] does not), the sender is required to both
encode and label data using an appropriate Content-
Transfer-Encoding such as quoted-printable or base64.
- c)
認識できないどのようなContent-Transfer-Encoding(内容転送符号化)も,実際のContent-Typeが認識されるかどうかにかかわらず,それが“application/octet-stream”のContent-Typeをもつように扱わなくてはならない。
(3) Must treat any unrecognized Content-Transfer-Encoding
as if it had a Content-Type of "application/octet-
stream", regardless of whether or not the actual
Content-Type is recognized.
- d)
Content-Typeヘッダフィールドを認識し解釈しなければならず,text以外のContent-Typeフィールドをもつ生データを利用者に見せてはならない。実装は,少なくともtext/plainメッセージを,送ることができなければならない。このメッセージの文字集合がUS-ASCIIでない場合には, charsetパラメタで指定される文字集合で送らなければならない。 (4) Recognize and interpret the Content-Type header field,
and avoid showing users raw data with a Content-Type
field other than text. Implementations must be able
to send at least text/plain messages, with the
character set specified with the charset parameter if
it is not US-ASCII.
- e) 名前を認識できない内容型パラメタは無視しなければならない。 (5) Ignore any content type parameters whose names they do
not recognize.
- f) 次のメディア型値を,少なくとも次の程度まで明示的に処理しなければならない。 (6) Explicitly handle the following media type values, to
at least the following extents:
text:
- 文字集合“US-ASCII”をもつ“text”メールを認識し, 表示しなければならない。
- 他の文字集合を, 少なくとも,メッセージが使っている文字集合が何であるかについて利用者に知らせることができる程度まで, 認識しなければならない。
- ISO-8859-*及びUS-ASCIIに共通の文字,
すなわちオクテット値1〜127で表現されるすべての文字を表示できる程度まで,“ISO-8859-*”文字集合を認識しなければならない。
- 既知の文字集合の認識できない下位型については,正準形式から局所形式への内容変換の後に“生”の版のデータを,利用者に見せるか見せることを提案しなければならない。
- 未知の文字集合のデータは, それが“application/octet-stream”であるかのように扱わなければならない。
Text:
-- Recognize and display "text" mail with the
character set "US-ASCII."
-- Recognize other character sets at least to the
extent of being able to inform the user about what
character set the message uses.
-- Recognize the "ISO-8859-*" character sets to the
extent of being able to display those characters that
are common to ISO-8859-* and US-ASCII, namely all
characters represented by octet values 1-127.
-- For unrecognized subtypes in a known character
set, show or offer to show the user the "raw" version
of the data after conversion of the content from
canonical form to local form.
-- Treat material in an unknown character set as if
it were "application/octet-stream".
image,audio及びvideo:
- 少なくとも,すべての認識できない下位型を“application/octet-stream”であるかのように扱う機能を提供しなければならない。
Image, audio, and video:
-- At a minumum provide facilities to treat any
unrecognized subtypes as if they were
"application/octet-stream".
application:
- TS X 0069で定義されるquoted-printable符号化又はbase64符号化が使われ,結果の情報が利用者のファイルに置かれる場合,それを取り除く能力を提示しなければならない。
Application:
-- Offer the ability to remove either of the quoted-
printable or base64 encodings defined in this
document if they were used and put the resulting
information in a user file.
multipart:
- 混合の下位型を認識しなければならない。メッセージレベル及び本体部分ヘッダレベルのすべての関連する情報を表示し,そして,それぞれの本体部分を独立に表示するか又は表示するかどうかを提案しなければならない。
- “alternative”下位型を認識し,multipart/alternativeのメールの冗長な部分を利用者に見せることを避けなければならない。
- “multipart/digest”下位型を認識しなければならない。特に,“multipart/digest”実体内部の本体部分のデフォルトのメディア型として,“text/plain”ではなく“message/rfc822”を使わなければならない。
- すべての認識できない下位型を“mixed”であるかのように扱わなければならない。
Multipart:
-- Recognize the mixed subtype. Display all relevant
information on the message level and the body part
header level and then display or offer to display
each of the body parts individually.
-- Recognize the "alternative" subtype, and avoid
showing the user redundant parts of
multipart/alternative mail.
-- Recognize the "multipart/digest" subtype,
specifically using "message/rfc822" rather than
"text/plain" as the default media type for body parts
inside "multipart/digest" entities.
-- Treat any unrecognized subtypes as if they were
"mixed".
message:
- 少なくともRFC
822メッセージのカプセル化(message/rfc822)をすべての再帰構造を保持する方法で認識及び表示しなければならない。すなわち,このメディア型に従ってカプセル化されたデータを,表示するか又は表示することを提案しなければならない。
- どんな認識できない下位型も“application/octet-stream”であるかのように扱わなければならない。
Message:
-- Recognize and display at least the RFC822 message
encapsulation (message/rfc822) in such a way as to
preserve any recursive structure, that is, displaying
or offering to display the encapsulated data in
accordance with its media type.
-- Treat any unrecognized subtypes as if they were
"application/octet-stream".
- g)
認識できないContent-Typeフィールドに遭遇した際には,実装は,それがパラメタなしの“application/octet-stream”のメディア型をもつかのように,
それを扱わなければならない。これらのデータをどう処理するかは実装の問題になるが,これらの認識できないデータを処理する可能な選択肢には,メール転送フォーマットから復号されるファイルにそれを書き込むことを利用者に提供すること,又は復号されるデータを入力として渡すプログラムを指名することを利用者に提案することが含まれる。
(7) Upon encountering any unrecognized Content-Type field,
an implementation must treat it as if it had a media
type of "application/octet-stream" with no parameter
sub-arguments. How such data are handled is up to an
implementation, but likely options for handling such
unrecognized data include offering the user to write it
into a file (decoded from its mail transport format) or
offering the user to name a program to which the
decoded data should be passed as input.
- h) 適合利用者エージェントが,
US-ASCII以外の文字集合を用いる非MIMEメッセージに対して非標準のサポートを提供する場合,受信メッセージだけにそれを行うことが,適合利用者エージェントに要求される。適合利用者エージェントは,US-ASCIIテキスト以外を含む非MIMEメッセージを送ってはならない。
(8) Conformant user agents are required, if they provide
non-standard support for non-MIME messages employing
character sets other than US-ASCII, to do so on
received messages only. Conforming user agents must not
send non-MIME messages containing anything other than
US-ASCII text.
特に,MIME-Versionフィールドなしのメールメッセージにおける非US-ASCIIテキストの使用は,異なる局所変換の領域間でメッセージを送るときに相互運用性を妨げるので,強く非推奨とする。適合利用者エージェントは,US-ASCII文字集合でプレーンテキスト以外のものをを送るとき,正しいMIMEラベル付けを含まなければならない。
In particular, the use of non-US-ASCII text in mail
messages without a MIME-Version field is strongly
discouraged as it impedes interoperability when sending
messages between regions with different localization
conventions. Conforming user agents MUST include proper
MIME labelling when sending anything other than plain
text in the US-ASCII character set.
さらに非MIME利用者エージェントは,たとえMIME中で他の何もサポートしない場合でも,それが送ったメッセージに適切なMIMEヘッダ情報を含むことが可能なように更新されたほうがよい。この更新は,あったとしても,
ほとんど非MIME受信者に影響を与えず,
これらのメッセージを正しく表示するのにMIMEを援助する。これは,他のMIME機能を将来採用することへの円滑な移行の道筋をも提供する。 In addition, non-MIME user agents should be upgraded if
at all possible to include appropriate MIME header
information in the messages they send even if nothing
else in MIME is supported. This upgrade will have
little, if any, effect on non-MIME recipients and will
aid MIME in correctly displaying such messages. It
also provides a smooth transition path to eventual
adoption of other MIME capabilities.
- i)
適合利用者エージェントは,“=?”で始まり“?=”で終わる“*text”又は“*ctext”の中にある非空白で印字可能なUS-ASCII文字のどの文字列も,
妥当な符号化語(valid encoded-word)であることを保証しなければならない。ここで,
“始まる”は,フィールド本体の先頭又は線形空白(linear-white-space)の直後を意味し,“終わる”は,フィールド本体の末尾又は線形空白の直前を意味する。さらに,“=?”で始まり“?=”で終わる“phrase”の中にあるどんな“word”も,妥当な符号化語でなければならない。
(9) Conforming user agents must ensure that any string of
non-white-space printable US-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 or immediately following
linear-white-space; "ends" means: At the end of the
field-body or immediately preceding linear-white-
space.) In addition, any "word" within a "phrase" that
begins with "=?" and ends with "?=" must be a valid
encoded-word.
- j) 適合利用者エージェントは,符号化語がメッセージヘッダ中の適切な位置に現れたらいつでも,4.に規定する規則に従って,
符号化語を“text”,“ctext”又は“word”から区別できなければならない。それは,
それがサポートするどの文字集合に対しても,“B”符号化及び“Q”符号化の両方をサポートしなければならない。そのプログラムは,符号化されないテキストを,
文字集合が“US-ASCII”であれば, 表示できなければならない。
ISO-8859-*文字集合に関して,メールを読むプログラムは,少なくともUS-ASCII集合にも含まれる文字を表示できなくてはならない。 (10) Conforming user agents must be able to distinguish
encoded-words from "text", "ctext", or "word"s,
according to the rules in section 4, 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 US-ASCII set.
これらの条件に適合する利用者エージェントは,MIME適合であるといえる。この句の意味は,これらのメールシステムの利用者に,適切にマーク付けされたどんな種類のデータも事実上送ることが,
“安全”であると想定されることとする。それは,これらのシステムが,少なくともそのデータを区別されない2値として扱うことができ,疑わない利用者の画面上にそれをまき散らすことはないことによる。
A user agent that meets the above conditions is said to be MIME-
conformant. The meaning of this phrase is that it is assumed to be
"safe" to send virtually any kind of properly-marked data to users of
~~~~~~~~~
such mail systems, because such systems will at least be able to
treat the data as undifferentiated binary, and will not simply splash
~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~
it onto the screen of unsuspecting users.
~~~~~~~~~~~~
MIME適合のフォーマットでデータを送ることは常に“安全”であるというもう一つ意義がある。それは, それらのデータが, 壊れることはなく, RFC
821及びRFC
822に適合するどんな既知のシステムによっても壊されないこととする。MIME適合の利用者エージェントは,利用者がテキストとして見られることを決して想定しないデータを見せられないという,追加の保証をもつ。
There is another sense in which it is always "safe" to send data in a
~~~~~
format that is MIME-conformant, which is that such data will not
break or be broken by any known systems that are conformant with RFC
~~~~~
821 and RFC 822. User agents that are MIME-conformant have the
additional guarantee that the user will not be shown data that were
never intended to be viewed as text.
3. Guidelines for Sending Email Data
インターネットメールは,完全で一様なシステムではない。メールは,最終目的地に行く途中の多くの段階で,壊れてしまうことがある。特に,インターネットを通って送られた電子メールは,多くのネットワーク技術を通過し得る。多くのネットワーク技術及びメール技術は,SMTP転送環境で可能な全機能をサポートするわけではない。これらのシステムを通過するメールは,それが転送され得るように,変更され易い。
Internet email is not a perfect, homogeneous system. Mail may become
corrupted at several stages in its travel to a final destination.
Specifically, email sent throughout the Internet may travel across
many networking technologies. Many networking and mail technologies
do not support the full functionality possible in the SMTP transport
environment. Mail traversing these systems is likely to be modified
in order that it can be transported.
インターネットには, 多くの非適合MTAがある。これらのMTAは,SMTPプロトコルで交信する際に,
それが実装されているホストの内部データ構造を利用して動作中にメッセージを改変するか,又ははっきりと壊される。
There exist many widely-deployed non-conformant MTAs in the Internet.
These MTAs, speaking the SMTP protocol, alter messages on the fly to
take advantage of the internal data structure of the hosts they are
implemented on, or are just plain broken.
次の指針は,最も広範なネットワーク技術及び既知の壊れたMTAで無傷に生き残るために想定されるデータフォーマット(メディア型)を工夫する人に有用であろう。
base64符号化で符号化されるものは,これらの規則を満たすが,よく知られた機構, とりわけUNIXのuuencode機能はそれを満たさないことに注意されたい。
Quoted-Printable符号化で符号化されたものは,大部分のゲートウェイで無傷に生き残るが,EBCDIC文字集合を使うシステムへのいくつかのゲートウェイでは生き残れない可能性がある。
The following guidelines may be useful to anyone devising a data
format (media type) that is supposed to survive the widest range of
networking technologies and known broken MTAs unscathed.
Note that
anything encoded in the base64 encoding will satisfy these rules, but
that some well-known mechanisms, notably the UNIX uuencode facility,
will not. Note also that anything encoded in the Quoted-Printable
encoding will survive most gateways intact, but possibly not some
gateways to systems that use the EBCDIC character set.
- a)
いくつかの状況下では,通常のゲートウェイの一部又は利用者エージェント操作として,データに使われる符号化を変更してよい。特に,base64からquted-printableへの変換及びその逆変換は,
必要かもしれない。これは,テキスト本体中の行区切りで,
CRLF列の混乱を起こすかもしれない。そうであるから,行区切りではないものとしてのCRLFの保存性は, 信頼してはならない。 (1) Under some circumstances the encoding used for data may
change as part of normal gateway or user agent
operation. In particular, conversion from base64 to
quoted-printable and vice versa may be necessary. This
may result in the confusion of CRLF sequences with line
breaks in text bodies. As such, the persistence of
CRLF as something other than a line break must not be
relied on.
- b) 多くのシステムは,局所的な改行変換を使って,テキストデータを表示し,保存することを選択してよい。局所的な改行変換は,RFC
822のCRLF規約, つまり, CRだけ,LFだけ,CRLF,又は数えたレコードを使うことが知られるシステムには一致しないことがある。その結果,
孤立したCR文字及びLF文字は, 一般には許されない。それらは,あるシステムでは,失われるか又は区切り子に変換されるかもしれないので, 信頼してはならない。
(2) Many systems may elect to represent and store text data
using local newline conventions. Local newline
conventions may not match the RFC822 CRLF convention --
systems are known that use plain CR, plain LF, CRLF, or
counted records.
The result is that isolated CR and LF
characters are not well tolerated in general; they may
be lost or converted to delimiters on some systems, and
hence must not be relied on.
- c)
NUL(US-ASCII値の0)の転送は,インターネットメールでは問題がある。これは,プログラム言語Cにおいて多くの標準ランタイムライブラリルーチンによって終端文字として使われているNULの結果によるところが大きい。終端文字としてのNULの使用の実行は,いまでは確立されたものだから,メッセージが保存されることを信じないほうがよい。
(3) The transmission of NULs (US-ASCII value 0) is
problematic in Internet mail. (This is largely the
result of NULs being used as a termination character by
many of the standard runtime library routines in the C
programming language.) The practice of using NULs as
termination characters is so entrenched now that
messages should not rely on them being preserved.
- d)
TAB(HT)文字は,誤って解釈され得るか,異なる数のスペースへ自動的に変換されるかもしれない。これは,ある環境では,特にUS-ASCII文字集合に基づかない環境では,避けられない。これらの変換は,強く非推奨とするが,もしそれが起きる場合には,メールフォーマットはTAB(HT)文字の保存性に依存してはならない。
(4) TAB (HT) characters may be misinterpreted or may be
automatically converted to variable numbers of spaces.
This is unavoidable in some environments, notably those
not based on the US-ASCII character set. Such
conversion is STRONGLY DISCOURAGED, but it may occur,
and mail formats must not rely on the persistence of
TAB (HT) characters.
- e)
76文字より長い行は,ある環境では,折り返されるか又は切り取られる。メール転送で行われる行の折返し又は切取りは,強く非推奨とするが,いくつかの場合には避けられない。長い行を要求するアプリケーションは,無指定(soft)行区切りと指定(hard)行区切りとを何とかして区別しなければならない。これを行う簡単な方法に,quoted-printable符号化の使用がある。
(5) Lines longer than 76 characters may be wrapped or
truncated in some environments. Line wrapping or line
truncation imposed by mail transports is STRONGLY
DISCOURAGED, but unavoidable in some cases.
Applications which require long lines must somehow
differentiate between soft and hard line breaks. (A
simple way to do this is to use the quoted-printable
encoding.)
- f) 行の末尾の“空白”文字(SPACE,TAB(HT))は,ある転送エージェントで捨てられるかもしれない。他の転送エージェントが,
これらの文字で行を埋めて,メールファイル中のすべての行を同じ長さにすることもある。したがって, 末尾の空白の保存性をあてにしてはならない。 (6) Trailing "white space" characters (SPACE, TAB (HT)) on
a line may be discarded by some transport agents, while
other transport agents may pad lines with these
characters so that all lines in a mail file are of
equal length. The persistence of trailing white space,
therefore, must not be relied on.
- g)
多くのメールドメインは,US-ASCII文字集合での変種を使うか,又はUS-ASCIIの文字の多くを含むがすべては含んでいないEBCDICなどの文字集合を使う。
“不変の”集合にない文字の正しい翻訳は,文字変換ゲートウェイに頼ることはできない。例えば,この状況は,uuencodeされた情報を,EBCDICシステムであるBITNETを通して送る場合に問題となる。多くのインターネットのホストは,内部ではUS-ASCII以外の文字集合を使うので,類似の問題は,ゲートウェイを通さない場合にも起る。
X.400におけるPrintable
String(印字可能文字列)の定義は,ある特定の場合に更に制限を加えている。特に,すべてのゲートウェイを通して一貫性があると知られている文字は,
大文字のAからZまで, 小文字のaからzまで,0から9までの10数字,及び次の11の特別な文字である73文字だけである。
(7) Many mail domains use variations on the US-ASCII
character set, or use character sets such as EBCDIC
which contain most but not all of the US-ASCII
characters. The correct translation of characters not
in the "invariant" set cannot be depended on across
character converting gateways. For example, this
situation is a problem when sending uuencoded
information across BITNET, an EBCDIC system. Similar
problems can occur without crossing a gateway, since
many Internet hosts use character sets other than US-
ASCII internally. The definition of Printable Strings
in X.400 adds further restrictions in certain special
cases. In particular, the only characters that are
known to be consistent across all gateways are the 73
characters that correspond to the upper and lower case
letters A-Z and a-z, the 10 digits 0-9, and the
following eleven special characters:
“'” (US-ASCIIの10進値で39)
“(” (US-ASCIIの10進値で40)
“)” (US-ASCIIの10進値で41)
“+” (US-ASCIIの10進値で43)
“,” (US-ASCIIの10進値で44)
“-” (US-ASCIIの10進値で45)
“.” (US-ASCIIの10進値で46)
“/” (US-ASCIIの10進値で47)
“:” (US-ASCIIの10進値で58)
“=” (US-ASCIIの10進値で61)
“?” (US-ASCIIの10進値で63)
"'" (US-ASCII decimal value 39)
"(" (US-ASCII decimal value 40)
")" (US-ASCII decimal value 41)
"+" (US-ASCII decimal value 43)
"," (US-ASCII decimal value 44)
"-" (US-ASCII decimal value 45)
"." (US-ASCII decimal value 46)
"/" (US-ASCII decimal value 47)
":" (US-ASCII decimal value 58)
"=" (US-ASCII decimal value 61)
"?" (US-ASCII decimal value 63)
最も大きな可搬性のあるメール表現は,73文字のこの集合から意味のある文字だけを使ったテキストの比較的短い行に限ることになる。base64符号化はこの規則に従う。
A maximally portable mail representation will confine
itself to relatively short lines of text in which the
only meaningful characters are taken from this set of
73 characters. The base64 encoding follows this rule.
- h)
いくつかのメール転送エージェントは,ある文字列を含むデータを壊す。特に,ピリオド(“.”)だけの行は,いくつかの(正しくない)SMTP実装によって壊されることが知られており,“From
”の5文字(最後の文字はSPACE)で始まる行も通常壊される。注意深い作成エージェントは,そのデータを符号化することによって破壊を防ぐことができる。例えば,quoted-printable符号化において行の先頭にある“From
”の場所に“=46rom ”を使い,行の“.”だけの場所には“=2E”を使う。
(8) Some mail transport agents will corrupt data that
includes certain literal strings. In particular, a
period (".") alone on a line is known to be corrupted
by some (incorrect) SMTP implementations, and a line
that starts with the five characters "From " (the fifth
character is a SPACE) are commonly corrupted as well.
A careful composition agent can prevent these
corruptions by encoding the data (e.g., in the quoted-
printable encoding using "=46rom " in place of "From "
at the start of a line, and "=2E" in place of "." alone
on a line).
上述の一覧は,MTAに関する推奨される実行の一覧ではないことに注意されたい。 RFC
821のMTAは,空白の文字を変更すること又は長い行を折り返すことを禁止している。これらの悪い不正な実行は,設置されたネットワークで起ることが知られていて,実装は,それらが引き起こし得る悪い影響を扱う際に頑健であることが望ましい。
Please note that the above list is NOT a list of recommended
practices for MTAs. RFC 821 MTAs are prohibited from altering the
character of white space or wrapping long lines. These BAD and
invalid practices are known to occur on established networks, and
implementations should be robust in dealing with the bad effects they
can cause.
4. Canonical Encoding Model
MIME規定の初期の版では,電子メールデータが正準形式に変換し符号化されるとき,特にこの過程がどのように,システムごとに大きく異なる改行の表現が与えられるCRLFの振る舞いに,影響するかについて,混乱があった。この理由によって,符号化の正準モデルを次に示す。
There was some confusion, in earlier versions of these documents,
regarding the model for when email data was to be converted to
canonical form and encoded, and in particular how this process would
affect the treatment of CRLFs, given that the representation of
newlines varies greatly from system to system. For this reason, a
canonical model for encoding is presented below.
MIME実体を作成する過程は,いくつかの段階で行われるものとしてモデル化できる。これらの段階は,大雑把に言って,PEM
[RFC-1421]で使われる段階と似ていて,それぞれの“最も内側のレベル”の本体に対して実行される。
The process of composing a MIME entity can be modeled as being done
in a number of steps. Note that these steps are roughly similar to
those steps used in PEM [RFC-1421] and are performed for each
"innermost level" body:
- a)
局所形式の作成
システムの固有フォーマットで,転送する本体を生成する。固有の文字集合が使われ,適切であれば,同様に局所的な行の終端の変換が行われる。本体は,UNIXスタイルのテキストファイル,Sunのラスタ画像,VMSのインデックス付きファイル,メモリ内だけに保存される形式のシステム依存の音声データ,又は情報のある形式の表現ための局所的なモデルに対応するその他のものであってもよい。基本的に,データは,メディア型で指定される型に対応する“固有の”形式で作成される。
(1) Creation of local form.
The body to be transmitted is created in the system's
native format. The native character set is used and,
where appropriate, local end of line conventions are
used as well. The body may be a UNIX-style text file,
or a Sun raster image, or a VMS indexed file, or audio
data in a system-dependent format stored only in
memory, or anything else that corresponds to the local
model for the representation of some form of
information. Fundamentally, the data is created in the
"native" form that corresponds to the type specified by
the media type.
- b) 正準形式への変換
レコード長,
可能なファイル属性情報などの“out-of-band”情報を含むすべての本体は,普遍的な正準形式に変換される。本体の特定のメディア型及び関連する属性は,使われる正準形式の性質を指示する。正しい正準形式への変換は,文字集合の変換,音声データの変換,圧縮,又は様々なメディア型に固有の多くの他の操作を含んでよい。しかし文字集合の変換を含む場合には,どんな文字集合の変換にも強い意味をもつであろう,メディア型のセマンティクスを理解する注意が払われなければならない。例えば,“plain”以外のテキスト下位型における構文上意味のある文字について注意を払わなければならない。
(2) Conversion to canonical form.
The entire body, including "out-of-band" information
such as record lengths and possibly file attribute
information, is converted to a universal canonical
form. The specific media type of the body as well as
its associated attributes dictate the nature of the
canonical form that is used. Conversion to the proper
canonical form may involve character set conversion,
transformation of audio data, compression, or various
other operations specific to the various media types.
If character set conversion is involved, however, care
must be taken to understand the semantics of the media
type, which may have strong implications for any
character set conversion, e.g. with regard to
syntactically meaningful characters in a text subtype
other than "plain".
例えば,text/plainデータの場合,テキストはサポートされる文字集合に変換されなければならず,RFC
822に従ってCRLF区切り子で行を区切らなくてはならない。次の段階でquoted-printable符号化又はbase64符号化のどちらかを用いるならば,RFC
822に伴う行の長さの制限はなくなる。 For example, in the case of text/plain data, the text
must be converted to a supported character set and
lines must be delimited with CRLF delimiters in
accordance with RFC 822. Note that the restriction on
line lengths implied by RFC 822 is eliminated if the
next step employs either quoted-printable or base64
encoding.
- c)
転送符号化の適用
この本体に適切なContent-Transfer-Encoding(内容転送符号化)を適用する。メディア型と転送符号化との間には固定的な関係はないことに注意すること。特に,base64又はquoted-printableの選択の基礎を,
本体の与えられたインスタンスに固有の文字頻度数に置くことは適切であろう。 (3) Apply transfer encoding.
A Content-Transfer-Encoding appropriate for this body
is applied. Note that there is no fixed relationship
between the media type and the transfer encoding. In
particular, it may be appropriate to base the choice of
base64 or quoted-printable on character frequency
counts which are specific to a given instance of a
body.
- d)
実体への挿入
符号化された本体は,MIME実体に適切なヘッダとともに挿入される。それから実体は,必要に応じてもっと高いレベルの実体(メッセージ又はマルチパート)に挿入される。
(4) Insertion into entity.
The encoded body is inserted into a MIME entity with
appropriate headers. The entity is then inserted into
the body of a higher-level entity (message or
multipart) as needed.
実体形式から局所形式への変換は,これらの段階を逆にすることによって達成される。もとの形式と最終的な局所形式とが同じである保証はないので,これらの段階の逆は異なる結果を生成するかもしれないことに注意すること。
Conversion from entity form to local form is accomplished by
reversing these steps. Note that reversal of these steps may produce
differing results since there is no guarantee that the original and
final local forms are the same.
これらの段階はモデルにすぎないことに注意することは重要である。これらは,実際のシステムがどのように構築されるかの青写真では決してない。特にモデルは,次の二つの共通設計を説明できない。
It is vital to note that these steps are only a model; they are
specifically NOT a blueprint for how an actual system would be built.
In particular, the model fails to account for two common designs:
- a)
多くの場合,符号化に先立つ正準形式への変換は,局所フォーマットを直接理解できる符号化器そのものに含まれる。例えば,テキスト本体の局所的な改行の変換は,そのフォーマットが何であるかの知識に基づいて,
符号化器そのものを通して実行されるであろう。 (1) In many cases the conversion to a canonical form prior
to encoding will be subsumed into the encoder itself,
which understands local formats directly. For example,
the local newline convention for text bodies might be
carried through to the encoder itself along with
knowledge of what that format is.
- b)
符号化器の出力は,メッセージとして転送される前に,一つ以上の追加の段階を通らなければならないかもしれない。したがって,符号化器の出力は,RFC
822に規定されるフォーマットに適合しないかもしれない。特に,変換器の出力が,標準的なRFC
822のCRLF区切り子を使うのではなく,局所的な改行変換を使って表現されることが再び適切であるかもしれない。
(2) The output of the encoders may have to pass through one
or more additional steps prior to being transmitted as
a message. As such, the output of the encoder may not
be conformant with the formats specified by RFC 822.
In particular, once again it may be appropriate for the
converter's output to be expressed using local newline
conventions rather than using the standard RFC 822 CRLF
delimiters.
他の実装上の多様性も同様に考えられる。この議論の重要な点は,要求される段階を崩したり追加処理を挿入したりする最適化にかかわらず,結果のメッセージはここに示されたモデルによって生成されたものと整合していなければならないことである。例えば,次のヘッダーファイルをもつメッセージは,はじめにtext/foo形式で表現され,それから必要に応じて,“bar”文字集合によって表現され,最後にbase64アルゴリズムによってmail-safe形式に変換されなければならない。
Content-type: text/foo; charset=bar
Content-Transfer-Encoding: base64
Other implementation variations are conceivable as well. The vital
aspect of this discussion is that, in spite of any optimizations,
collapsings of required steps, or insertion of additional processing,
the resulting messages must be consistent with those produced by the
model described here. For example, a message with the following
header fields:
Content-type: text/foo; charset=bar
Content-Transfer-Encoding: base64
must be first represented in the text/foo form, then (if necessary)
represented in the "bar" character set, and finally transformed via
the base64 algorithm into a mail-safe form.
備考 RFC
822のCRLF変換と異なる局所的な改行変換を使うフォーマットでメッセージを表現するシステムによって,ある混乱が起きていた。これらのフォーマットが正準なRFC822/MIMEではないことに注意することは,
重要である。これらのフォーマットは,メッセージの正準表現におけるCRLF列が局所的な改行変換として符号化される,RFC
822の代理“符号化”である。例えば,CRLF行分離列の部分でないLFオクテットを含む2値データを含むMIMEメッセージを表現できないことに注意。
NOTE: Some confusion has been caused by systems that represent
messages in a format which uses local newline conventions which
differ from the RFC822 CRLF convention. It is important to note that
these formats are not canonical RFC822/MIME.
These formats are
instead *encodings* of RFC822, where CRLF sequences in the canonical
representation of the message are encoded as the local newline
convention.
Note that formats
which encode CRLF sequences as, for
~~~
example, LF are not capable of representing MIME messages containing
binary data which contains LF octets not part of CRLF line separation
sequences.
5. Summary
この標準仕様書(TS)は,MIME適合が何を意味するかを定義した。それは, インターネットの電子メールシステムに存在することが知られている様々な問題,
及びこれらを克服するためにMIMEをどのように使うかをも詳述した。最後に,MIMEの正準符号化モデルを示した。
This document defines what is meant by MIME Conformance. It also
details various problems known to exist in the Internet email system
and how to use MIME to overcome them. Finally, it describes MIME's
canonical encoding model.
6. Security Considerations
セキュリティについては,MIME関連の2番目の規定であるTS X 0070に示されている。
Security issues are discussed in the second document in this set, RFC
2046.
7. Authors' Addresses
さらに詳細な情報を得るには, 次に示す原規定(RFC 2049)の著者にインターネットメールで連絡をとるのがよい。
Ned Freed
Innosoft International, Inc.
1050 East Garvey Avenue South
West Covina, CA 91790
USA
Phone: +1 818 919 3600
Fax: +1 818 919 3614
EMail: ned@innosoft.com
Nathaniel S. Borenstein
First Virtual Holdings
25 Washington Avenue
Morristown, NJ 07960
USA
Phone: +1 201 540 8967
Fax: +1 201 993 3032
EMail: nsb@nsb.fv.com
Ned Freed
Innosoft International, Inc.
1050 East Garvey Avenue South
West Covina, CA 91790
USA
Phone: +1 818 919 3600
Fax: +1 818 919 3614
EMail: ned@innosoft.com
Nathaniel S. Borenstein
First Virtual Holdings
25 Washington Avenue
Morristown, NJ 07960
USA
Phone: +1 201 540 8967
Fax: +1 201 993 3032
EMail: nsb@nsb.fv.com
MIMEは,Internet Engineering Task Force (IETF)のRFC
822拡張に関する作業グループの作業の結果である。作業グループの議長Greg Vaudreuilの連絡先を示す。
MIME is a result of the work of the Internet Engineering Task Force
Working Group on RFC 822 Extensions. The chairman of that group,
Greg Vaudreuil, may be reached at:
Gregory M. Vaudreuil
Octel Network Services
17080 Dallas Parkway
Dallas, TX 75248-1905
USA
EMail: Greg.Vaudreuil@Octel.Com
Gregory M. Vaudreuil
Octel Network Services
17080 Dallas Parkway
Dallas, TX 75248-1905
USA
EMail: Greg.Vaudreuil@Octel.Com
8. Acknowledgements
原規定(RFC
2049)は,IETF-SMTP及びIETF-822のメーリングリスト及びその他の場所での,多くのIETF会議での多くの人々の集積した努力の結果である。どんな列挙にもひどい抜けはあるであろうが,次の列挙は,この努力への多くの貢献者の中の一覧である。
This document is the result of the collective effort of a large
number of people, at several IETF meetings, on the IETF-SMTP and
IETF-822 mailing lists, and elsewhere. Although any enumeration
seems doomed to suffer from egregious omissions, the following are
among the many contributors to this effort:
Harald Tveit Alvestrand Marc Andreessen
Randall Atkinson Bob Braden
Philippe Brandon Brian Capouch
Kevin Carosso Uhhyung Choi
Peter Clitherow Dave Collier-Brown
Cristian Constantinof John Coonrod
Mark Crispin Dave Crocker
Stephen Crocker Terry Crowley
Walt Daniels Jim Davis
Frank Dawson Axel Deininger
Hitoshi Doi Kevin Donnelly
Steve Dorner Keith Edwards
Chris Eich Dana S. Emery
Johnny Eriksson Craig Everhart
Patrik Faltstrom Erik E. Fair
Roger Fajman Alain Fontaine
Martin Forssen James M. Galvin
Stephen Gildea Philip Gladstone
Thomas Gordon Keld Simonsen
Terry Gray Phill Gross
James Hamilton David Herron
Mark Horton Bruce Howard
Bill Janssen Olle Jarnefors
Risto Kankkunen Phil Karn
Alan Katz Tim Kehres
Neil Katin Steve Kille
Kyuho Kim Anders Klemets
John Klensin Valdis Kletniek
Jim Knowles Stev Knowles
Bob Kummerfeld Pekka Kytolaakso
Stellan Lagerstrom Vincent Lau
Timo Lehtinen Donald Lindsay
Warner Losh Carlyn Lowery
Laurence Lundblade Charles Lynn
John R. MacMillan Larry Masinter
Rick McGowan Michael J. McInerny
Leo Mclaughlin Goli Montaser-Kohsari
Tom Moore John Gardiner Myers
Erik Naggum Mark Needleman
Chris Newman John Noerenberg
Mats Ohrman Julian Onions
Michael Patton David J. Pepper
Erik van der Poel Blake C. Ramsdell
Christer Romson Luc Rooijakkers
Marshall T. Rose Jonathan Rosenberg
Guido van Rossum Jan Rynning
Harri Salminen Michael Sanderson
Yutaka Sato Markku Savela
Richard Alan Schafer Masahiro Sekiguchi
Mark Sherman Bob Smart
Peter Speck Henry Spencer
Einar Stefferud Michael Stein
Klaus Steinberger Peter Svanberg
James Thompson Steve Uhler
Stuart Vance Peter Vanderbilt
Greg Vaudreuil Ed Vielmetti
Larry W. Virden Ryan Waldron
Rhys Weatherly Jay Weber
Dave Wecker Wally Wedel
Sven-Ove Westberg Brian Wideen
John Wobus Glenn Wright
Rayan Zachariassen David Zimmerman
Harald Tveit Alvestrand Marc Andreessen
Randall Atkinson Bob Braden
Philippe Brandon Brian Capouch
Kevin Carosso Uhhyung Choi
Peter Clitherow Dave Collier-Brown
Cristian Constantinof John Coonrod
Mark Crispin Dave Crocker
Stephen Crocker Terry Crowley
Walt Daniels Jim Davis
Frank Dawson Axel Deininger
Hitoshi Doi Kevin Donnelly
Steve Dorner Keith Edwards
Chris Eich Dana S. Emery
Johnny Eriksson Craig Everhart
Patrik Faltstrom Erik E. Fair
Roger Fajman Alain Fontaine
Martin Forssen James M. Galvin
Stephen Gildea Philip Gladstone
Thomas Gordon Keld Simonsen
Terry Gray Phill Gross
James Hamilton David Herron
Mark Horton Bruce Howard
Bill Janssen Olle Jarnefors
Risto Kankkunen Phil Karn
Alan Katz Tim Kehres
Neil Katin Steve Kille
Kyuho Kim Anders Klemets
John Klensin Valdis Kletniek
Jim Knowles Stev Knowles
Bob Kummerfeld Pekka Kytolaakso
Stellan Lagerstrom Vincent Lau
Timo Lehtinen Donald Lindsay
Warner Losh Carlyn Lowery
Laurence Lundblade Charles Lynn
John R. MacMillan Larry Masinter
Rick McGowan Michael J. McInerny
Leo Mclaughlin Goli Montaser-Kohsari
Tom Moore John Gardiner Myers
Erik Naggum Mark Needleman
Chris Newman John Noerenberg
Mats Ohrman Julian Onions
Michael Patton David J. Pepper
Erik van der Poel Blake C. Ramsdell
Christer Romson Luc Rooijakkers
Marshall T. Rose Jonathan Rosenberg
Guido van Rossum Jan Rynning
Harri Salminen Michael Sanderson
Yutaka Sato Markku Savela
Richard Alan Schafer Masahiro Sekiguchi
Mark Sherman Bob Smart
Peter Speck Henry Spencer
Einar Stefferud Michael Stein
Klaus Steinberger Peter Svanberg
James Thompson Steve Uhler
Stuart Vance Peter Vanderbilt
Greg Vaudreuil Ed Vielmetti
Larry W. Virden Ryan Waldron
Rhys Weatherly Jay Weber
Dave Wecker Wally Wedel
Sven-Ove Westberg Brian Wideen
John Wobus Glenn Wright
Rayan Zachariassen David Zimmerman
原規定の著者は,この一覧から抜けている人に謝罪する。意図的に抜かしたのでは断じてない。
The authors apologize for any omissions from this list, which are
certainly unintentional.