原文:ftp://ftp.rfc-editor.org/in-notes/rfc5321.txt
原文との対訳として読みたい方へ:このページをローカルに保存して、スタイルシートの original クラスの display 属性を none から block に変更してみてください。


ソーシャルブックマーク: このページをはてなブックマークに追加 このページをDeliciousに登録 このページをlivedoorクリップに登録
サイト内関連リンク:RFC 2821 SMTP (日本語訳、ひとつ前のSMTP仕様です)RFC 2822 インターネットメッセージフォーマット(日本語訳)RFC 2554 SMTP-AUTH(日本語訳)


Network Working Group
Request for Comments: 5321
Obsoletes: 2821
Updates: 1123
Category: Standards Track
J. Klensin
October 2008

Simple Mail Transfer Protocol

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. この文書はインターネットコミュニティのためのインターネット標準トラックプロトコルについて述べており、改良に向けての議論と提案を求めている。このプロトコルの標準化の状態と状況については "Internet Official Protocol Standards" (STD 1)を参照してほしい。この文書の配布に制限はない。

Abstract 概要

This document is a specification of the basic protocol for Internet electronic mail transport. It consolidates, updates, and clarifies several previous documents, making all or parts of most of them obsolete. It covers the SMTP extension mechanisms and best practices for the contemporary Internet, but does not provide details about particular extensions. Although SMTP was designed as a mail transport and delivery protocol, this specification also contains information that is important to its use as a "mail submission" protocol for "split-UA" (User Agent) mail reading systems and mobile environments. この文書はインターネット電子メール転送のための基本プロトコルの仕様である。この文書はいくつかの過去の文書を統合・更新・明確化し、それらの一部またはすべてを廃止する。この文書は SMTP 拡張メカニズムと現在のインターネットのための最善の慣例とを網羅するが、特定の拡張に関する詳細は提供しない。SMTP はメールの転送/配送のプロトコルとして設計されたが、"スプリット-UA(split-UA)"(ユーザーエージェント(User Agent))メール読み取りシステムとモバイル環境とのための "メール投入(mail submission)" としての使用に重要な情報も含む。

Table of Contents 目次

1. Introduction 1. 導入

1.1. Transport of Electronic Mail 1.1. 電子メールの転送

The objective of the Simple Mail Transfer Protocol (SMTP) is to transfer mail reliably and efficiently. Simple Mail Transfer Protocol (SMTP) の目的は、メールを確実かつ効率的に転送することである。

SMTP is independent of the particular transmission subsystem and requires only a reliable ordered data stream channel. While this document specifically discusses transport over TCP, other transports are possible. Appendices to RFC 821 [1] describe some of them. SMTP は特定の通信サブシステムから独立しており、信頼できる順序付けられたデータストリームチャネルのみを必要とする。この文書は特に TCP 上での転送を議論するが、他のトランスポートも可能である。RFC 821 [1] の付録がそれらのいくつかを説明している。

An important feature of SMTP is its capability to transport mail across multiple networks, usually referred to as "SMTP mail relaying" (see Section 3.6). A network consists of the mutually-TCP-accessible hosts on the public Internet, the mutually-TCP-accessible hosts on a firewall-isolated TCP/IP Intranet, or hosts in some other LAN or WAN environment utilizing a non-TCP transport-level protocol. Using SMTP, a process can transfer mail to another process on the same network or to some other network via a relay or gateway process accessible to both networks. SMTP の重要な機能は複数のネットワークを超えてメールを転送する能力であり、通常それは "SMTP メールリレー(SMTP mail relaying)" と呼ばれる(セクション 3.6 参照)。ネットワークは、公共のインターネット上の相互に TCP アクセス可能なホスト、ファイアウォールで分離された TCP/IP イントラネット上の相互に TCP アクセス可能なホスト、非 TCP のトランスポート層プロトコルを使用する LAN または WAN 環境内のホストから構成される。SMTP を使用することで、プロセスは同じネットワーク上の別のプロセスへ、または両ネットワークからアクセス可能なリレーまたはゲートウェイプロセスを経由して別のネットワークへとメールを転送できる。

In this way, a mail message may pass through a number of intermediate relay or gateway hosts on its path from sender to ultimate recipient. The Mail eXchanger mechanisms of the domain name system (RFC 1035 [2], RFC 974 [12], and Section 5 of this document) are used to identify the appropriate next-hop destination for a message being transported. このようにして、メールメッセージは送信者から最終受信者まで、その経路上の多数の中間リレーホストまたは中間ゲートウェイホストを通過する。ドメインネームシステム(RFC 1035 [2]、RFC 974 [12]、およびこの文書のセクション 5 )のメールエクスチェンジャ(Mail eXchanger)メカニズムは、転送されるメッセージのための適切な次ホップの宛先を特定するために使用される。

1.2. History and Context for This Document 1.2. この文書の歴史と背景

This document is a specification of the basic protocol for the Internet electronic mail transport. It consolidates, updates and clarifies, but does not add new or change existing functionality of the following: この文書はインターネット電子メール転送のための基本プロトコルの仕様である。この文書は以下の既存機能を統合・更新・明確化するが、追加・変更はしない:

It obsoletes RFC 821, RFC 974, RFC 1869, and RFC 2821 and updates RFC 1123 (replacing the mail transport materials of RFC 1123). However, RFC 821 specifies some features that were not in significant use in the Internet by the mid-1990s and (in appendices) some additional transport models. Those sections are omitted here in the interest of clarity and brevity; readers needing them should refer to RFC 821. この文書は RFC 821・RFC 974・RFC 1869・RFC 2821 を廃止し、RFC 1123 を更新する(RFC 1123 のメール転送の題材を置き換える)。しかしながら RFC 821 は、1990 年代半ばまでのインターネットでは重要でなかった使用法におけるいくつかの機能と、(付録において)いくつかの追加の転送モデルとを規定している。明確さと簡潔さとのためにそれらのセクションは削除された。それらを必要とする読者は RFC 821 を参照するべきである。

It also includes some additional material from RFC 1123 that required amplification. This material has been identified in multiple ways, mostly by tracking flaming on various lists and newsgroups and problems of unusual readings or interpretations that have appeared as the SMTP extensions have been deployed. Where this specification moves beyond consolidation and actually differs from earlier documents, it supersedes them technically as well as textually. またこの文書は、拡充を必要とする RFC 1123 由来の追加題材をいくつか含む。この題材は複数の方法で確認されてきた:大部分は SMTP 拡張の採用とともに現れた様々なメーリングリストおよびニュースグループのやりとり、または例外的な読み物や解説による議論を追跡することによって確認できる。本仕様が整理統合を超えて過去の文書と実質的に異なっている部分は、技術的にも文章的にも過去の文書に取って代わる。

Although SMTP was designed as a mail transport and delivery protocol, this specification also contains information that is important to its use as a "mail submission" protocol, as recommended for Post Office Protocol (POP) (RFC 937 [15], RFC 1939 [16]) and IMAP (RFC 3501 [17]). In general, the separate mail submission protocol specified in RFC 4409 [18] is now preferred to direct use of SMTP; more discussion of that subject appears in that document. SMTP はメールの転送・配送プロトコルとして設計されたが、本仕様は Post Office Protocol (POP) (RFC 937 [15], RFC 1939 [16]) と IMAP (RFC 3501 [17]) のために推奨されている通り、"メール投入(mail submission)" としての使用に重要な情報も含む。現在では一般に、RFC 4409 [18] で規定されている別のメールサブミッションプロトコルが SMTP の使用を指示するのに好ましい。この件のさらなる考察はこの文書に示されている。

Section 2.3 provides definitions of terms specific to this document. Except when the historical terminology is necessary for clarity, this document uses the current 'client' and 'server' terminology to identify the sending and receiving SMTP processes, respectively. セクション 3.2 はこの文書に特有の用語の定義を提供する。明確化のために歴史的な用語が必要な場合を除き、この文書は SMTP の送信プロセスと受信プロセスとを表すために、それぞれ最新の用語 'クライアント(client)' と 'サーバー(server)' とを使用する。

A companion document, RFC 5322 [4], discusses message header sections and bodies and specifies formats and structures for them. 対になる文書 RFC 5322 [4] はメッセージのヘッダ部とボディ部について議論し、そのフォーマットと構造とを規定している。

1.3. Document Conventions 1.3. 文書の慣例

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [5]. As each of these terms was intentionally and carefully chosen to improve the interoperability of email, each use of these terms is to be treated as a conformance requirement. この文書内のキーワード "MUST"、"MUST NOT"、"REQUIRED"、"SHALL"、"SHALL NOT"、"SHOULD"、"SHOULD NOT"、"RECOMMENDED"、"MAY"、"OPTIONAL" は、RFC 2119 [5] で説明されている通りに解釈される。各用語は電子メールの相互運用性を改善するために意図的かつ慎重に選択されているため、これらの用語の使用は適合性要件として扱われるべきである。

Because this document has a long history and to avoid the risk of various errors and of confusing readers and documents that point to this one, most examples and the domain names they contain are preserved from RFC 2821. Readers are cautioned that these are illustrative examples that should not actually be used in either code or configuration files. この文書が長い歴史を持つこと、そしてさまざまなエラーと読者やこの文書を指し示す文書を混乱させるリスクとを避けるために、大部分の例とそれらに含まれるドメイン名とは RFC 2821 由来のものを踏襲している。読者は、これらが説明的な例であり、実際にコードや構成ファイルで使用されるべきものではないことに注意してほしい。

2. The SMTP Model 2. SMTP モデル

2.1. Basic Structure 2.1. 基本構造

The SMTP design can be pictured as: SMTP の構造は以下のように図示できる:

                  +----------+                +----------+
      +------+    |          |                |          |
      | User |<-->|          |      SMTP      |          |
      +------+    |  Client- |Commands/Replies| Server-  |
      +------+    |   SMTP   |<-------------->|    SMTP  |    +------+
      | File |<-->|          |    and Mail    |          |<-->| File |
      |System|    |          |                |          |    |System|
      +------+    +----------+                +----------+    +------+
                   SMTP client                SMTP server
                    +----------+            +----------+
      +--------+    |          |    SMTP    |          |
      |ユーザー|<-->|          |コマンド/   |          |
      +--------+    |クライアン|    リプライ| サーバー |
      +--------+    |ト-SMTP   |<---------->|  -SMTP   |    +--------+
      |ファイル|<-->|          |   メール   |          |<-->|ファイル|
      |システム|    |          |            |          |    |システム|
      +--------+    +----------+            +----------+    +--------+
                  SMTP クライアント         SMTP サーバー

When an SMTP client has a message to transmit, it establishes a two- way transmission channel to an SMTP server. The responsibility of an SMTP client is to transfer mail messages to one or more SMTP servers, or report its failure to do so. SMTP クライアントが転送するメッセージを持つとき、SMTP サーバーに対して双方向通信チャネルを確立する。SMTP クライアントの責任は、ひとつ以上の SMTPサーバーにメールメッセージを送信するか、その失敗を報告することである。

The means by which a mail message is presented to an SMTP client, and how that client determines the identifier(s) ("names") of the domain(s) to which mail messages are to be transferred, is a local matter, and is not addressed by this document. In some cases, the designated domain(s), or those determined by an SMTP client, will identify the final destination(s) of the mail message. In other cases, common with SMTP clients associated with implementations of the POP (RFC 937 [15], RFC 1939 [16]) or IMAP (RFC 3501 [17]) protocols, or when the SMTP client is inside an isolated transport service environment, the domain determined will identify an intermediate destination through which all mail messages are to be relayed. SMTP clients that transfer all traffic regardless of the target domains associated with the individual messages, or that do not maintain queues for retrying message transmissions that initially cannot be completed, may otherwise conform to this specification but are not considered fully-capable. Fully-capable SMTP implementations, including the relays used by these less capable ones, and their destinations, are expected to support all of the queuing, retrying, and alternate address functions discussed in this specification. In many situations and configurations, the less- capable clients discussed above SHOULD be using the message submission protocol (RFC 4409 [18]) rather than SMTP. メールメッセージが SMTP クライアントに提示される手段と、そのクライアントがメールメッセージを転送するドメインの識別子("名前(names)")を決定する方法とはローカルの問題であり、この文書では扱わない。場合によっては、指定されたドメインまたは SMTP クライアントによって決定されたドメインがメールメッセージの最終宛先を表す。そうでない場合、POP(RFC 937 [15], RFC 1939 [16]) または IMAP (RFC 3501 [17]) のプロトコルの実装に関連する SMTP クライアントでは一般的であり、また分離されたトランスポートサービス環境内部に SMTP クライアントがあるときには、決定されたドメインはすべてのメールメッセージがリレーされるべき中間の宛先を表すだろう。個々のメッセージの宛先ドメインに関係なくすべてのトラフィックを転送する SMTP クライアントや、初回に完了できなかったメッセージ送信を再試行するためのキューを保持しないクライアントは、他の部分では本仕様に適合するかもしれないが、完全に対応しているとは見なされない。完全対応の SMTP 実装(能力の劣る実装が使用するリレーを含む)は、キューイング、再試行、および本仕様で議論されている代替のアドレス機能を、すべてサポートすることを期待される。多くの状況と構成とにおいて、先に述べた能力の劣るクライアントは、SMTP ではなく、メッセージサブミッションプロトコル(RFC 4409 [18])を使用するべきである(SHOULD)。

The means by which an SMTP client, once it has determined a target domain, determines the identity of an SMTP server to which a copy of a message is to be transferred, and then performs that transfer, is covered by this document. To effect a mail transfer to an SMTP server, an SMTP client establishes a two-way transmission channel to that SMTP server. An SMTP client determines the address of an appropriate host running an SMTP server by resolving a destination domain name to either an intermediate Mail eXchanger host or a final target host. 目的のドメインを決定した後の SMTP クライアントが、メッセージのコピーを転送するべき SMTP サーバーの身元を決定し、その後転送を実行する手段は、この文書で網羅されている。SMTP サーバーへのメール転送を行うために、SMTP クライアントは SMTP サーバーへの双方向通信チャネルを確立する。SMTP クライアントは、中間メールエクスチェンジャホストまたは最終目的ホストのどちらかの宛先ドメイン名を解決することで、SMTP サーバーを実行する適切なホストのアドレスを決定する。

An SMTP server may be either the ultimate destination or an intermediate "relay" (that is, it may assume the role of an SMTP client after receiving the message) or "gateway" (that is, it may transport the message further using some protocol other than SMTP). SMTP commands are generated by the SMTP client and sent to the SMTP server. SMTP replies are sent from the SMTP server to the SMTP client in response to the commands. SMTP サーバーは、最終宛先、または中間 "リレー(relay)"(つまりメッセージ受信後に SMTP クライアントの役割を担うかもしれない宛先)、または "ゲートウェイ(gateway)"(つまり、SMTP 以外のプロトコルを使用してさらにメッセージを転送するかもしれない宛先)の、何れかの可能性がある。SMTP コマンドは SMTP クライアントによって生成され、SMTP サーバーへと送信される。SMTP リプライはコマンドに応えて SMTP サーバーから SMTP クライアントへと送信される。

In other words, message transfer can occur in a single connection between the original SMTP-sender and the final SMTP-recipient, or can occur in a series of hops through intermediary systems. In either case, once the server has issued a success response at the end of the mail data, a formal handoff of responsibility for the message occurs: the protocol requires that a server MUST accept responsibility for either delivering the message or properly reporting the failure to do so (see Sections 6.1, 6.2, and 7.8, below). 言い換えるとメッセージ転送は、発信元の SMTP-送信者と最終の SMTP-受信者との間の単一接続においてか、または中継システムを経由する一連のホップにおいて発生し得る。どちらにせよ、サーバーがメッセージの終わりに成功応答を返した時点で、メッセージに対する責任の公式なハンドオフが発生する。このプロトコルは、メッセージを配送するか、配送できなかったことを適切に報告するか、どちらかを行う責任をサーバーが受け入れなければならない(MUST)ことを要求する。

Once the transmission channel is established and initial handshaking is completed, the SMTP client normally initiates a mail transaction. Such a transaction consists of a series of commands to specify the originator and destination of the mail and transmission of the message content (including any lines in the header section or other structure) itself. When the same message is sent to multiple recipients, this protocol encourages the transmission of only one copy of the data for all recipients at the same destination (or intermediate relay) host. 通信チャネルが確立し最初のハンドシェイクに成功すると、通常 SMTP クライアントはメールトランザクションを開始する。そのようなトランザクションは、メールの発信者と宛先とメッセージ内容(ヘッダ部または他の構造体内の任意の行を含む)の送信とを指定する一連のコマンドから構成される。同じメッセージが複数の受信者に送られる場合、このプロトコルは同じ宛先(または中間リレー)ホスト上のすべての受信者に対し、データのコピーをひとつだけ送信することを推奨する。

The server responds to each command with a reply; replies may indicate that the command was accepted, that additional commands are expected, or that a temporary or permanent error condition exists. Commands specifying the sender or recipients may include server- permitted SMTP service extension requests, as discussed in Section 2.2. The dialog is purposely lock-step, one-at-a-time, although this can be modified by mutually agreed upon extension requests such as command pipelining (RFC 2920 [19]). サーバーは各コマンドに対してリプライを返す。リプライは、コマンドが受け入れられたか、追加コマンドが期待されるか、一時的または永続的なエラー状態かを表す。送信者または受信者を指定するコマンドは、サーバーの許可する SMTP サービス拡張リクエスト(セクション 2.2 で議論されている)を含んでもよい。その対話は意図的に横並びで一度にひとつずつになるが、コマンドパイプライン(RFC 2920 [19])のような拡張リクエストに互いに合意することで、それを変更することもできる。

Once a given mail message has been transmitted, the client may either request that the connection be shut down or may initiate other mail transactions. In addition, an SMTP client may use a connection to an SMTP server for ancillary services such as verification of email addresses or retrieval of mailing list subscriber addresses. 与えられたメールメッセージが送信された後、クライアントはその接続を切断するか、別のメールトランザクションを開始してよい。また SMTP クライアントは、メールアドレスの検証やメーリングリスト購読者のアドレス取得など、補助的なサービスのために SMTP サーバーへの接続を使用してよい。

As suggested above, this protocol provides mechanisms for the transmission of mail. Historically, this transmission normally occurred directly from the sending user's host to the receiving user's host when the two hosts are connected to the same transport service. When they are not connected to the same transport service, transmission occurs via one or more relay SMTP servers. A very common case in the Internet today involves submission of the original message to an intermediate, "message submission" server, which is similar to a relay but has some additional properties; such servers are discussed in Section 2.3.10 and at some length in RFC 4409 [18]. An intermediate host that acts as either an SMTP relay or as a gateway into some other transmission environment is usually selected through the use of the domain name service (DNS) Mail eXchanger mechanism. 先に示したように、このプロトコルはメール送信のためのメカニズムを提供する。歴史的には、二つのホストが同じトランスポートサービスに接続している場合、通常この送信は送信ユーザーのホストから受信ユーザーのホストへと直接行われていた。二台が同じトランスポートサービスに接続していない場合、送信はひとつ以上のリレー SMTP サーバーを通して行われる。現在のインターネットにおけるごく一般的なケースは、発信メッセージを中継する "メッセージサブミッション(message submission)" サーバー(リレーに似ているがいくつかの追加機能を持つ)への投入を必要とする。そのようなサーバーはセクション 2.3.10、および RFC 4409 [18] でより詳しく議論されている。SMTP リレー、または他の通信環境へのゲートウェイとして動作する中継ホストは、通常ドメインネームサービス(DNS)のメールエクスチェンジャ(Mail eXchanger)メカニズムを使用して選択される。

Usually, intermediate hosts are determined via the DNS MX record, not by explicit "source" routing (see Section 5 and Appendix C and Appendix F.2). 通常、中継ホストは明示的な "ソース(source)" ルーティング(セクション 5・付録 C・付録 F.2 を参照)ではなく、DNS の MX レコードによって決定される。

2.2. The Extension Model 2.2. 拡張モデル

2.2.1. Background 2.2.1. 背景

In an effort that started in 1990, approximately a decade after RFC 821 was completed, the protocol was modified with a "service extensions" model that permits the client and server to agree to utilize shared functionality beyond the original SMTP requirements. The SMTP extension mechanism defines a means whereby an extended SMTP client and server may recognize each other, and the server can inform the client as to the service extensions that it supports. 1990 年に始まった努力の中、RFC 821 が完成してからおよそ 10 年後、このプロトコルはクライアントとサーバーとがオリジナルの SMTP 要件を超える共有機能の使用に合意することを許可する "サービス拡張(service extensions)" によって改訂された。SMTP サービス拡張は、それによって拡張された SMTP クライアントとサーバーとが互いを認識し、サーバーが自身のサポートするサービス拡張をクライアントに通知するための手段を定義する。

Contemporary SMTP implementations MUST support the basic extension mechanisms. For instance, servers MUST support the EHLO command even if they do not implement any specific extensions and clients SHOULD preferentially utilize EHLO rather than HELO. (However, for compatibility with older conforming implementations, SMTP clients and servers MUST support the original HELO mechanisms as a fallback.) Unless the different characteristics of HELO must be identified for interoperability purposes, this document discusses only EHLO. 現代の SMTP 実装は基本的な拡張メカニズムをサポートしなければならない(MUST)。例えばサーバーは特別な拡張を実装していなくとも EHLO コマンドをサポートしなければならない(MUST)し、クライアントは HELO ではなく EHLO を優先的に使用するべきである(SHOULD)。(しかしながら過去の実装との互換性のために、SMTP のクライアントとサーバーは代替としてオリジナルの HELO メカニズムをサポートしなければならない(MUST)) 相互運用性のために HELO 固有の特徴に言及しなければならない場合を除き、この文書は EHLO だけを議論する。

SMTP is widely deployed and high-quality implementations have proven to be very robust. However, the Internet community now considers some services to be important that were not anticipated when the protocol was first designed. If support for those services is to be added, it must be done in a way that permits older implementations to continue working acceptably. The extension framework consists of: SMTP は広く展開されており、高品質の実装は非常に堅牢であることが証明されている。しかしながら現在のインターネットコミュニティは、このプロトコルが最初に設計されたときには予期されていなかったいくつかのサービスを重要なものと考えている。それらのサービスのサポートが追加される場合、過去の実装が正しく動作し続けられる方法で行われなければならない。拡張フレームワークは以下を含む:

SMTP's strength comes primarily from its simplicity. Experience with many protocols has shown that protocols with few options tend towards ubiquity, whereas protocols with many options tend towards obscurity. SMTP の強さは主にその単純さに由来する。多くのプロトコルでの経験が、少数の選択肢を持つプロトコルは至るところで使われる傾向があるのに対し、多くの選択肢を持つプロトコルは目立たない傾向があることを示している。

Each and every extension, regardless of its benefits, must be carefully scrutinized with respect to its implementation, deployment, and interoperability costs. In many cases, the cost of extending the SMTP service will likely outweigh the benefit. それぞれの拡張はその利点によらず、その実装・展開・相互運用性のコストに付いて注意深く調べられなければならない。多くの場合、SMTP サービスを拡張するコストは利益より重要だろう。

2.2.2. Definition and Registration of Extensions 2.2.2. 拡張の定義と登録

The IANA maintains a registry of SMTP service extensions. A corresponding EHLO keyword value is associated with each extension. Each service extension registered with the IANA must be defined in a formal Standards-Track or IESG-approved Experimental protocol document. The definition must include: IANA は SMTP サービス拡張のレジストリを保守する。対応する EHLO キーワードの値が各拡張に対応する。IANA によって登録される各サービス拡張は、公式のスタンダードトラックまたは IESG 認可の実験的プロトコル文書において定義されなければならない。定義は以下の内容を含まなければならない:

In addition, any EHLO keyword value starting with an upper or lower case "X" refers to a local SMTP service extension used exclusively through bilateral agreement. Keywords beginning with "X" MUST NOT be used in a registered service extension. Conversely, keyword values presented in the EHLO response that do not begin with "X" MUST correspond to a Standard, Standards-Track, or IESG-approved Experimental SMTP service extension registered with IANA. A conforming server MUST NOT offer non-"X"-prefixed keyword values that are not described in a registered extension. さらに、大文字または小文字の "X" で始まるすべての EHLO キーワード値は、双方の合意によって排他的に使用されるローカルの SMTP サービス拡張を表す。"X" で始まるキーワードは、登録されるサービス拡張に使用されてはならない(MUST NOT)。逆に EHLO 応答において "X" で始まらないキーワード値は、IANA によって登録されたスタンダード、スタンダードトラック、IESG 認可の試験的な SMTP サービス拡張に対応しなければならない(MUST)。適合サーバーは、登録済み拡張で説明されていない "X" 以外で始まるキーワード値を提示してはならない(MUST NOT)。

Additional verbs and parameter names are bound by the same rules as EHLO keywords; specifically, verbs beginning with "X" are local extensions that may not be registered or standardized. Conversely, verbs not beginning with "X" must always be registered. 追加の動詞とパラメータ名とは EHLO キーワードと同じ規則によってひも付けられる。特に "X" で始まる動詞は、登録も標準化も許されないローカルの拡張である。逆に "X" で始まらない動詞は必ず登録されなければならない。

2.2.3. Special Issues with Extensions 2.2.3. 拡張に固有の問題

Extensions that change fairly basic properties of SMTP operation are permitted. The text in other sections of this document must be understood in that context. In particular, extensions can change the minimum limits specified in Section 4.5.3, can change the ASCII character set requirement as mentioned above, or can introduce some optional modes of message handling. SMTP の操作の基本的特性を変更する拡張も許可される。この文書の他のセクションの文章は、そのような状況を考慮して理解しなければならない。具体的にいうと、拡張はセクション 4.5.3 で規定されている最低限度を変更したり、前述の ASCII 文字セットの要求事項を変更したり、メッセージ処理の何らかのオプションモードを導入したりできる。

In particular, if an extension implies that the delivery path normally supports special features of that extension, and an intermediate SMTP system finds a next hop that does not support the required extension, it MAY choose, based on the specific extension and circumstances, to requeue the message and try later and/or try an alternate MX host. If this strategy is employed, the timeout to fall back to an unextended format (if one is available) SHOULD be less than the normal timeout for bouncing as undeliverable (e.g., if normal timeout is three days, the requeue timeout before attempting to transmit the mail without the extension might be one day). 具体的にいうと、もし拡張が、配送経路がその拡張の特別な機能をサポートするという意味を含み、中間 SMTP システムが要求された拡張をサポートしない次ホップを見つけた場合、その中間システムはその特定の拡張と状況とに基づいて、メッセージを再キューイングして後で再試行したり、別の MX ホストを試したりしてよい(MAY)。この戦略が採用される場合、拡張されていない形式にフォールバックするタイムアウトは、配送不能として戻ってくる場合の通常のタイムアウトより短いべきである(SHOULD)(例えば通常のタイムアウトが 3 日の場合、拡張を使わないメール送信を試みるまでの再キューイングのタイムアウトは 1 日としてよい)。

2.3. SMTP Terminology 2.3. SMTP 用語

2.3.1. Mail Objects 2.3.1. メールオブジェクト

SMTP transports a mail object. A mail object contains an envelope and content. SMTP はメールオブジェクトを転送する。メールオブジェクトはエンベロープとコンテンツとを含む。

The SMTP envelope is sent as a series of SMTP protocol units (described in Section 3). It consists of an originator address (to which error reports should be directed), one or more recipient addresses, and optional protocol extension material. Historically, variations on the reverse-path (originator) address specification command (MAIL) could be used to specify alternate delivery modes, such as immediate display; those variations have now been deprecated (see Appendix F and Appendix F.6). SMTP エンベロープは一連の SMTP プロトコルユニット(セクション 3 で説明されている)として送信される。SMTP エンベロープは、発信者アドレス(エラー報告が向けられるべきアドレス)、ひとつまたは複数の受信者アドレス、オプションのプロトコル拡張の要素から構成される。歴史的には、代替の配送モード(例えば即時表示(immediate display)など)を指定するために、リバースパスアドレスを指定するコマンド(MAIL)のバリエーションを使用できた。それらのバリエーションは現在では非推奨である(付録 F および 付録 F.6 参照)。

The SMTP content is sent in the SMTP DATA protocol unit and has two parts: the header section and the body. If the content conforms to other contemporary standards, the header section consists of a collection of header fields, each consisting of a header name, a colon, and data, structured as in the message format specification (RFC 5322 [4]); the body, if structured, is defined according to MIME (RFC 2045 [21]). The content is textual in nature, expressed using the US-ASCII repertoire [6]. Although SMTP extensions (such as "8BITMIME", RFC 1652 [22]) may relax this restriction for the content body, the content header fields are always encoded using the US-ASCII repertoire. Two MIME extensions (RFC 2047 [23] and RFC 2231 [24]) define an algorithm for representing header values outside the US- ASCII repertoire, while still encoding them using the US-ASCII repertoire. SMTP コンテンツは SMTP DATA プロトコルユニットの中で送信され、ヘッダ部とボディという二つの部分を持つ。その内容が現在の別の標準に準拠するなら、ヘッダ部はヘッダフィールドの集合から構成され、それぞれのフィールドはメッセージフォーマット仕様(RFC 5322 [4])の通りに構造化されたヘッダ名・コロン・データから構成され、ボディは(構造化されるなら) MIME (RFC 2045 [21])にしたがって定義される。内容は事実上テキストであり、US-ASCII の範囲 [6] で表現される。SMTP 拡張(例えば "8BITMIME", RFC 1652 [22]))がコンテンツボディのこの制限を緩和することもできるが、ヘッダフィールドは常に US-ASCII を使用してエンコードされる。二つの MIME 拡張(RFC 2047 [23] と RFC 2231 [24])が US-ASCII 範囲外のヘッダの値を表現するためのアルゴリズムを定義しているが、それらもまた US-ASCII を使用してエンコードする。

2.3.2. Senders and Receivers 2.3.2. 送信者と受信者

In RFC 821, the two hosts participating in an SMTP transaction were described as the "SMTP-sender" and "SMTP-receiver". This document has been changed to reflect current industry terminology and hence refers to them as the "SMTP client" (or sometimes just "the client") and "SMTP server" (or just "the server"), respectively. Since a given host may act both as server and client in a relay situation, "receiver" and "sender" terminology is still used where needed for clarity. RFC 821 において、SMTP トランザクションに参加する二つのホストは "SMTP-送信者(SMTP-sender)" および "SMTP-受信者(SMTP-receiver)" と記述されていた。最新の業界用語を反映するために、この文書はそれらをそれぞれ "SMTP クライアント(SMTP client)"(あるいは単に "クライアント(the client)")、および"SMTP サーバー(SMTP server)"(あるいは単に "サーバー(the server)") と呼ぶ。リレーを行う状況においては、ある特定のホストがサーバーおよびクライアントの両方として振る舞う可能性があるため、"受信者(receiver)" および "送信者(sender)" という用語は、明確性が必要な場合に今でも使用されている。

2.3.3. Mail Agents and Message Stores 2.3.3. メールエージェントとメッセージストア

Additional mail system terminology became common after RFC 821 was published and, where convenient, is used in this specification. In particular, SMTP servers and clients provide a mail transport service and therefore act as "Mail Transfer Agents" (MTAs). "Mail User Agents" (MUAs or UAs) are normally thought of as the sources and targets of mail. At the source, an MUA might collect mail to be transmitted from a user and hand it off to an MTA; the final ("delivery") MTA would be thought of as handing the mail off to an MUA (or at least transferring responsibility to it, e.g., by depositing the message in a "message store"). However, while these terms are used with at least the appearance of great precision in other environments, the implied boundaries between MUAs and MTAs often do not accurately match common, and conforming, practices with Internet mail. Hence, the reader should be cautious about inferring the strong relationships and responsibilities that might be implied if these terms were used elsewhere. RFC 821 が公開された後に新たなメールシステム用語が普及し、適宜この仕様でも使用されている。具体的にいうと、SMTP のサーバーとクライアントとはメール転送サービスを提供し、したがって "メール転送エージェント(Mail Transfer Agents)"(MTAs) として振る舞う。"メールユーザーエージェント(Mail User Agents)"(MUA または UA)は、通常メールの送信元および目的地と考えられる。送信元において MUA は、送信されるメールをユーザーから受け取り、それを MTA に引き渡すだろう。最終("配送(delivery") MTA はそのメールを MUA に引き渡す(または、例えばそのメッセージを "メッセージストア(message store" に預けることで、少なくともその責任を移す)と考えられる。しかしながら、これらの用語は少なくとも他の環境においてかなり正確な概観とともに使用される一方で、しばしば MUA と MTA との間の暗黙の境界は、一般的で適合するインターネットメールの習慣と正確に一致するわけではない。したがって読者は、これらの用語が別の場所で使用された場合に、それが暗示するかもしれない強い関連と責任とを推測することに慎重であるべきである。

2.3.4. Host 2.3.4. ホスト

For the purposes of this specification, a host is a computer system attached to the Internet (or, in some cases, to a private TCP/IP network) and supporting the SMTP protocol. Hosts are known by names (see the next section); they SHOULD NOT be identified by numerical addresses, i.e., by address literals as described in Section 4.1.2. 本仕様の目的のためには、ホストはインターネット(または場合によってはプライベート TCP/IP ネットワーク)に接続し、SMTP プロトコルをサポートするコンピュータシステムである。ホストは名前によって識別される(次セクション参照)。数値アドレス(つまりセクション 4.1.2 で説明されているアドレスリテラル)によって識別されるべきではない(SHOULD NOT)。

2.3.5. Domain Names 2.3.5. ドメイン名

A domain name (or often just a "domain") consists of one or more components, separated by dots if more than one appears. In the case of a top-level domain used by itself in an email address, a single string is used without any dots. This makes the requirement, described in more detail below, that only fully-qualified domain names appear in SMTP transactions on the public Internet, particularly important where top-level domains are involved. These components ("labels" in DNS terminology, RFC 1035 [2]) are restricted for SMTP purposes to consist of a sequence of letters, digits, and hyphens drawn from the ASCII character set [6]. Domain names are used as names of hosts and of other entities in the domain name hierarchy. For example, a domain may refer to an alias (label of a CNAME RR) or the label of Mail eXchanger records to be used to deliver mail instead of representing a host name. See RFC 1035 [2] and Section 5 of this specification. ドメイン名(またはしばしば単に "ドメイン(domain")は、ひとつまたは複数の要素から構成される(二つ以上現れる場合はドットで区切られる)。トップレベルドメインが電子メールに使われる場合、ドットを持たない単一文字列が使用される。これにより、公共のインターネット上の SMTP トランザクションにおいては完全限定ドメイン名のみ現れるという要件(以下で詳述する)が、トップレベルドメインが関与する場合に特に重要になる。これらの構成要素(DNS 用語で "ラベル(labels)" RFC 1035 [2])は SMTP の目的のために、ASCII 文字セット[6]から選ばれた一連の文字・数字・ハイフンから構成される。ドメイン名はホストまたはドメイン名階層内の他のエンティティの名前として使用される。例えば、ドメインはホスト名を表す代わりに、エイリアス(CNAME RR のラベル)や、メールの配送に使用されるメールエクスチェンジャ(Mail eXchanger)のラベルを参照することができる。RFC 1035 [2] および本仕様のセクション 5 を参照してほしい。

The domain name, as described in this document and in RFC 1035 [2], is the entire, fully-qualified name (often referred to as an "FQDN"). A domain name that is not in FQDN form is no more than a local alias. Local aliases MUST NOT appear in any SMTP transaction. この文書および RFC 1035 [2] で説明されているドメイン名は、完全限定ドメイン名(しばしば "FQDN" として言及される)である。FQDN 形式ではないドメイン名は、ローカルのエイリアスに過ぎない。SMTP トランザクションにはいかなるローカルエイリアスも現れてはならない(MUST NOT)。

Only resolvable, fully-qualified domain names (FQDNs) are permitted when domain names are used in SMTP. In other words, names that can be resolved to MX RRs or address (i.e., A or AAAA) RRs (as discussed in Section 5) are permitted, as are CNAME RRs whose targets can be resolved, in turn, to MX or address RRs. Local nicknames or unqualified names MUST NOT be used. There are two exceptions to the rule requiring FQDNs: SMTP においてドメイン名が使用される場合、解決可能な完全限定ドメイン名(FQDN)のみ許される。言い換えると、MX RR またはアドレス(つまり A または AAAA) RR (セクション 5 で議論されている)に解決できる名前が許可され、最終的に MX または アドレス RR に解決できる CNAME RR も同様に許可される。ローカルのニックネームまたは限定されない名前を使用してはならない(MUST NOT)。FQDN を要求するこの規則には二つの例外がある:

2.3.6. Buffer and State Table 2.3.6. バッファと状態テーブル

SMTP sessions are stateful, with both parties carefully maintaining a common view of the current state. In this document, we model this state by a virtual "buffer" and a "state table" on the server that may be used by the client to, for example, "clear the buffer" or "reset the state table", causing the information in the buffer to be discarded and the state to be returned to some previous state. SMTP セッションはステートフルであり、両参加者は現在の状態の共通認識を注意深く保持する。この文書において私たちはこの状態を、サーバー上の仮想の "バッファ((buffer)" および "状態テーブル(state table)" によってモデル化する。クライアントはこれらを、例えば "バッファをクリア(clear the buffer)" や "状態テーブルをリセット(reset the state table)" のように使用することができ、バッファ内の情報を破棄させたり、状態を以前の状態に戻させたりする。

2.3.7. Commands and Replies 2.3.7. コマンドとリプライ

SMTP commands and, unless altered by a service extension, message data, are transmitted from the sender to the receiver via the transmission channel in "lines". SMTP コマンドおよび(サービス拡張によって変更されていない限り)メッセージデータは、送信者から受信者へと "行(lines)" 形式で通信チャネルを通して転送される。

An SMTP reply is an acknowledgment (positive or negative) sent in "lines" from receiver to sender via the transmission channel in response to a command. The general form of a reply is a numeric completion code (indicating failure or success) usually followed by a text string. The codes are for use by programs and the text is usually intended for human users. RFC 3463 [25], specifies further structuring of the reply strings, including the use of supplemental and more specific completion codes (see also RFC 5248 [26]). SMTP リプライは、コマンドに対する応答において通信チャネルを通して受信者から送信者へと "行(lines)" 形式で送られる確認応答(肯定または否定)である。リプライの一般的な形式は、数字の完了コード(成功か失敗かを表す)と、通常はそれにテキスト文字列が続く。コードはプログラムによって使用されるためのものであり、テキストは通常人間のユーザー向けを意図されたものである。RFC 3463 [25] はリプライ文字列のさらなる構造化を規定しており、より具体的な追加の完了コードを含む(RFC 5248 [26] 参照)。

2.3.8. Lines 2.3.8. 行

Lines consist of zero or more data characters terminated by the sequence ASCII character "CR" (hex value 0D) followed immediately by ASCII character "LF" (hex value 0A). This termination sequence is denoted as <CRLF> in this document. Conforming implementations MUST NOT recognize or generate any other character or character sequence as a line terminator. Limits MAY be imposed on line lengths by servers (see Section 4). 行はゼロ文字または 1 文字以上のデータ文字から構成され、ASCII 文字 "CR"(16 進 0D)の直後に ASCII 文字 "LF"(16 進 0A)というシーケンスで終了する。本文書ではこの終端シーケンスを <CRLF> と表す。適合実装は、他の文字や他の文字シーケンスを行の終端と認識してはならない(MUST NOT)。サーバーが行の長さに制限を課してもよい(MAY)。

In addition, the appearance of "bare" "CR" or "LF" characters in text (i.e., either without the other) has a long history of causing problems in mail implementations and applications that use the mail system as a tool. SMTP client implementations MUST NOT transmit these characters except when they are intended as line terminators and then MUST, as indicated above, transmit them only as a <CRLF> sequence. さらに、テキスト中の "裸の(bare)" "CR" または "LF" は(つまりそれぞれの単独の文字は)、メール実装やメールシステムをツールとして使用するアプリケーションにおいて問題を起こしてきた長い歴史を持つ。SMTP のクライアント実装は、行の終端を表そうとするときにこれらの文字を送信してはならず(MUST NOT)、先に指摘した通り、<CRLF> のシーケンスとしてのみ送信しなければならない(MUST)。

2.3.9. Message Content and Mail Data 2.3.9. メッセージコンテンツとメールデータ

The terms "message content" and "mail data" are used interchangeably in this document to describe the material transmitted after the DATA command is accepted and before the end of data indication is transmitted. Message content includes the message header section and the possibly structured message body. The MIME specification (RFC 2045 [21]) provides the standard mechanisms for structured message bodies. この文書において用語 "メッセージコンテンツ(message content)" および "メールデータ(mail data)" は、DATA コマンドが受け入れられた後からデータ終了指示が送信される前までの要素を表すために使用される。メッセージコンテンツはメッセージヘッダセクションと、場合によっては構造化されるメッセージボディとを含む。MIME 仕様(RFC 2045 [21])は構造化メッセージボディのための標準メカニズムを提供する。

2.3.10. Originator, Delivery, Relay, and Gateway Systems 2.3.10. 発信者、配送、リレー、ゲートウェイ

This specification makes a distinction among four types of SMTP systems, based on the role those systems play in transmitting electronic mail. An "originating" system (sometimes called an SMTP originator) introduces mail into the Internet or, more generally, into a transport service environment. A "delivery" SMTP system is one that receives mail from a transport service environment and passes it to a mail user agent or deposits it in a message store that a mail user agent is expected to subsequently access. A "relay" SMTP system (usually referred to just as a "relay") receives mail from an SMTP client and transmits it, without modification to the message data other than adding trace information, to another SMTP server for further relaying or for delivery. 本仕様は、電子メールの転送においてシステムが果たす役割に基づいて、4 種類の SMTP システムを区別する。"発信(originating)" システム(時に SMTP 発信者(SMTP originator)と呼ばれる)は、メールをインターネット、またはより一般的に言えばトランスポートサービス環境へと取り込む。"配送(delivery)" SMTP システムは、トランスポートサービス環境からメールを受信し、それをメールユーザーエージェントに渡すか、またはメールユーザーエージェントが後にアクセスすると期待されるメッセージストアに入れるシステムである。"リレー(relay)" SMTP システム(通常は単に "リレー(relay)" と呼ばれる)は、SMTP クライアントからメールを受信し、さらなるリレーまたは配送のために、メッセージにトレース情報を追加する以外の変更を行わずにそれを別の SMTP サーバーへと送信する。

A "gateway" SMTP system (usually referred to just as a "gateway") receives mail from a client system in one transport environment and transmits it to a server system in another transport environment. Differences in protocols or message semantics between the transport environments on either side of a gateway may require that the gateway system perform transformations to the message that are not permitted to SMTP relay systems. For the purposes of this specification, firewalls that rewrite addresses should be considered as gateways, even if SMTP is used on both sides of them (see RFC 2979 [27]). "ゲートウェイ(gateway)" SMTP システム(通常は単に "ゲートウェイ(gateway)" と呼ばれる)は、あるトランスポート環境内のクライアントシステムからメールを受信し、それを別のトランスポート環境内のサーバーシステムへと送信する。ゲートウェイの両側のトランスポート環境間のプロトコルまたはメッセージのセマンティクスの違いは、メッセージに対して SMTP リレーシステムには許されない変換を行うことを必要としてもよい。本仕様の目的のために、アドレスを書き換えるファイアーウォール(RFC 2979 [27] 参照)は、たとえその両サイドが SMTP であったとしても、ゲートウェイと見なすべきであるとする。

2.3.11. Mailbox and Address 2.3.11. メールボックスとアドレス

As used in this specification, an "address" is a character string that identifies a user to whom mail will be sent or a location into which mail will be deposited. The term "mailbox" refers to that depository. The two terms are typically used interchangeably unless the distinction between the location in which mail is placed (the mailbox) and a reference to it (the address) is important. An address normally consists of user and domain specifications. The standard mailbox naming convention is defined to be "local-part@domain"; contemporary usage permits a much broader set of applications than simple "user names". Consequently, and due to a long history of problems when intermediate hosts have attempted to optimize transport by modifying them, the local-part MUST be interpreted and assigned semantics only by the host specified in the domain part of the address. 本仕様内で使用される限りにおいて "アドレス(address)" とは、メールを送信されるユーザー、またはメールが入れられる場所を特定する文字列である。"メールボックス(mailbox)" という用語はその保管場所を表す。メールが置かれる場所(メールボックス)とその参照(アドレス)との区別が重要な場合を除き、これら二つの用語は交換可能である。通常アドレスは、ユーザーおよびドメインの指定から構成される。標準的なメールボックスの命名規則は "local-part@domain" と定義されており、最新の用法は単純な "ユーザー名(user names)" より広範囲の応用を許可している。その結果として、および中間ホストがそれらを修正することで転送を最適化しようと試みた場合の問題の長い歴史のために、local-part はそのアドレスのドメイン部で指定されたホストによってのみ、その意味を解釈および割り当てられなければならない(MUST)。

2.4. General Syntax Principles and Transaction Model 2.4. 一般的な構文規則とトランザクションモデル

SMTP commands and replies have a rigid syntax. All commands begin with a command verb. All replies begin with a three digit numeric code. In some commands and replies, arguments are required following the verb or reply code. Some commands do not accept arguments (after the verb), and some reply codes are followed, sometimes optionally, by free form text. In both cases, where text appears, it is separated from the verb or reply code by a space character. Complete definitions of commands and replies appear in Section 4. SMTP のコマンドおよびリプライは厳密な構文を持つ。すべてのコマンドはコマンド動詞から始まる。すべてのリプライは 3 桁の数値コードから始まる。一部のコマンドおよびリプライにおいては、その動詞またはリプライコードに続けて引数を必要とする。一部のコマンドは(動詞の後に)引数を受け入れず、一部のリプライコードは(時にオプションで)自由形式のテキストが続く。いずれにしてもテキストが現れる場合、空白文字によって動詞またはリプライコードと分離される。コマンドおよびリプライの完全な定義はセクション 4 に示されている。

Verbs and argument values (e.g., "TO:" or "to:" in the RCPT command and extension name keywords) are not case sensitive, with the sole exception in this specification of a mailbox local-part (SMTP Extensions may explicitly specify case-sensitive elements). That is, a command verb, an argument value other than a mailbox local-part, and free form text MAY be encoded in upper case, lower case, or any mixture of upper and lower case with no impact on its meaning. The local-part of a mailbox MUST BE treated as case sensitive. Therefore, SMTP implementations MUST take care to preserve the case of mailbox local-parts. In particular, for some hosts, the user "smith" is different from the user "Smith". However, exploiting the case sensitivity of mailbox local-parts impedes interoperability and is discouraged. Mailbox domains follow normal DNS rules and are hence not case sensitive. 動詞と引数の値(例えば RCPT コマンドにおける "TO:" または "to:" や拡張名キーワード)は大文字・小文字を区別されないが、メールボックスの local-part の指定が唯一の例外である(SMTP 拡張は大文字・小文字を区別する要素を明示的に規定してもよい)。つまり、コマンド動詞、メールボックスの local-part 以外の引数、自由形式のテキストは、その意味に影響を与えることなく、大文字、小文字、または大文字・小文字の任意の組み合わせで符号化されてよい(MAY)ということである。メールボックスの local-part は大文字・小文字を区別されなければならない(MUST)。したがって SMTP 実装は、メールボックスの local-part の大文字・小文字が保持されるよう注意しなければならない(MUST)。具体的にいうと、一部のホストにとってユーザー "smith" はユーザー "Smith" と異なるということである。しかしながら、メールボックスの local-part の大文字・小文字の区別の濫用は相互運用性を妨げるため、推奨されない。メールボックスのドメインは通常の DNS 規則にしたがい、大文字・小文字を区別しない。

A few SMTP servers, in violation of this specification (and RFC 821) require that command verbs be encoded by clients in upper case. Implementations MAY wish to employ this encoding to accommodate those servers. 一部の SMTP サーバーは、本仕様(および RFC 821)に違反してクライアントがコマンド動詞を大文字でエンコードすることを要求する。そのようなサーバーに適応するために、実装は大文字でのエンコードを採用することを望んでもよい(MAY)。

The argument clause consists of a variable-length character string ending with the end of the line, i.e., with the character sequence <CRLF>. The receiver will take no action until this sequence is received. 引数は行末(つまり <CRLF>)で終わる可変長文字列から構成される。受信者は <CRLF> を受信するまで行動を取らないだろう。

The syntax for each command is shown with the discussion of that command. Common elements and parameters are shown in Section 4.1.2. 各コマンドの構文は、そのコマンドの考察とともに示される。共通の要素とパラメータとはセクション 4.1.2 で示される。

Commands and replies are composed of characters from the ASCII character set [6]. When the transport service provides an 8-bit byte (octet) transmission channel, each 7-bit character is transmitted, right justified, in an octet with the high-order bit cleared to zero. More specifically, the unextended SMTP service provides 7-bit transport only. An originating SMTP client that has not successfully negotiated an appropriate extension with a particular server (see the next paragraph) MUST NOT transmit messages with information in the high-order bit of octets. If such messages are transmitted in violation of this rule, receiving SMTP servers MAY clear the high- order bit or reject the message as invalid. In general, a relay SMTP SHOULD assume that the message content it has received is valid and, assuming that the envelope permits doing so, relay it without inspecting that content. Of course, if the content is mislabeled and the data path cannot accept the actual content, this may result in the ultimate delivery of a severely garbled message to the recipient. Delivery SMTP systems MAY reject such messages, or return them as undeliverable, rather than deliver them. In the absence of a server- offered extension explicitly permitting it, a sending SMTP system is not permitted to send envelope commands in any character set other than US-ASCII. Receiving systems SHOULD reject such commands, normally using "500 syntax error - invalid character" replies. コマンドおよびリプライは ASCII 文字セット [6] の文字から構成される。トランスポートサービスが 8 ビットバイト(オクテット)の通信チャネルを提供する場合、上位ビットをゼロにクリアされた右詰めのオクテットとして転送される。つまり、拡張されていない SMTP サービスは 7 ビットの通信しかサポートしない。ある特定のサーバーとの適切な拡張の交渉に成功していない発信 SMTP クライアントは、オクテットの最上位ビットに情報を持つメッセージを送信してはならない(MUST NOT)。この規則に違反してそのようなメッセージが送信された場合、受信側 SMTP サーバーは上位ビットをクリアするか、無効としてメッセージを拒否してよい(MAY)。一般にリレー SMTP は、受信したメッセージの内容が妥当であり、(エンベロープがそれを許可していると仮定して)内容を確認することなくリレーするべきである。当然ながら、内容が誤ってラベル付けされ、かつデータ経路がその実際の内容を受け入れられない場合、それは最終的にまったく誤ったメッセージを受信者へと配送することになる可能性がある。配送 SMTP システムはそのようなメッセージを配送せず、拒否したり、配送不能として返送してもよい(MAY)。サーバーの提示する拡張が明示的に許可しない限り、送信 SMTP システムは US-ASCII 以外の文字セットによるエンベロープコマンドの送信を許可されない。受信システムはそのようなコマンドを、通常は "500 syntax error - invalid character"(構文エラー - 無効な文字) リプライを使用して、拒否するべきである(SHOULD)。

8-bit message content transmission MAY be requested of the server by a client using extended SMTP facilities, notably the "8BITMIME" extension, RFC 1652 [22]. 8BITMIME SHOULD be supported by SMTP servers. However, it MUST NOT be construed as authorization to transmit unrestricted 8-bit material, nor does 8BITMIME authorize transmission of any envelope material in other than ASCII. 8BITMIME MUST NOT be requested by senders for material with the high bit on that is not in MIME format with an appropriate content-transfer encoding; servers MAY reject such messages. 拡張 SMTP (特に RFC 1652 [22] の "8BITMIME" 拡張)を使用するクライアントは、サーバーに 8 ビットのメッセージコンテンツ転送を要求してもよい(MAY)。SMTP サーバーは 8BITMIME をサポートするべきである(SHOULD)。しかしながらこれを、無制限の 8 ビット要素の送信を許可されたものと解釈したり、8BITMIME が ASCII 以外の任意のエンベロープ要素の送信を許可するものと解釈したりしてはならない(MUST NOT)。送信者は、適切なコンテンツ転送エンコードを持つ MIME フォーマットでは許可されていない最上位ビットがオンの要素のために、8BITMIME を要求してはならない(MUST NOT)。サーバーはそのようなメッセージを拒否してもよい(MAY)。

The metalinguistic notation used in this document corresponds to the "Augmented BNF" used in other Internet mail system documents. The reader who is not familiar with that syntax should consult the ABNF specification in RFC 5234 [7]. Metalanguage terms used in running text are surrounded by pointed brackets (e.g., <CRLF>) for clarity. The reader is cautioned that the grammar expressed in the metalanguage is not comprehensive. There are many instances in which provisions in the text constrain or otherwise modify the syntax or semantics implied by the grammar. この文書で使用されているメタ言語表記は、他のインターネットメールシステムの文書でも使用されている "拡張 BNF(Augmented BNF)" に対応する。この構文に詳しくない読者は、RFC 5234 [7] の ABNF 仕様を参考にするべきである。本文中で使用されているメタ言語用語はアングルブラケットで囲まれている(例えば <CRLF>)。読者は、メタ言語で表された文法が包括的なものでないことに注意してほしい。文法の課すセマンティクスや構文を文中の規定が制約したり、さもなければ修正したりする例は多くある。

3. The SMTP Procedures: An Overview 3. SMTP の手順:概観

This section contains descriptions of the procedures used in SMTP: session initiation, mail transaction, forwarding mail, verifying mailbox names and expanding mailing lists, and opening and closing exchanges. Comments on relaying, a note on mail domains, and a discussion of changing roles are included at the end of this section. Several complete scenarios are presented in Appendix D. このセクションには SMTP において使用される手続き、セッション開始、メールトランザクション、メール転送、メールボックス名の検証、メーリングリストの展開、交換の開始と終了の説明が含まれる。リレーについての注釈、メールドメインについての注意事項、役割の変化の考察は、このセクションの最後に含まれている。いくつかの完全なシナリオは付録 D に示されている。

3.1. Session Initiation 3.1. セッション開始

An SMTP session is initiated when a client opens a connection to a server and the server responds with an opening message. SMTP セッションは、クライアントがサーバーへの接続を開き、サーバーがオープニングメッセージを応答したときに開始される。

SMTP server implementations MAY include identification of their software and version information in the connection greeting reply after the 220 code, a practice that permits more efficient isolation and repair of any problems. Implementations MAY make provision for SMTP servers to disable the software and version announcement where it causes security concerns. While some systems also identify their contact point for mail problems, this is not a substitute for maintaining the required "postmaster" address (see Section 4). SMTP サーバーの実装は、コード 220 の後の接続グリーティングリプライの中に自身のソフトウェアとバージョン情報とを含めてもよい(MAY)。任意の問題をより効率的に分離・修復することを可能にする習慣である。実装は、セキュリティ上の問題を生じる場合に SMTP サーバーがソフトウェアとバージョンとのアナウンスを無効にする手段を提供してもよい(MAY)。システムはメールの問題のための連絡先を特定してもよいが、それは必須の "postmaster" アドレス(セクション 4 参照)を保守することの代替ではない。

The SMTP protocol allows a server to formally reject a mail session while still allowing the initial connection as follows: a 554 response MAY be given in the initial connection opening message instead of the 220. A server taking this approach MUST still wait for the client to send a QUIT (see Section 4.1.1.10) before closing the connection and SHOULD respond to any intervening commands with "503 bad sequence of commands". Since an attempt to make an SMTP connection to such a system is probably in error, a server returning a 554 response on connection opening SHOULD provide enough information in the reply text to facilitate debugging of the sending system. SMTP プロトコルは、サーバーが初期接続を許可し続けながらメールセッションを公式に拒否することを許可している:初期接続のオープニングメッセージ内で 220 応答の変わりに 554 応答が返されてもよい(MAY)。このアプローチを取るサーバーは、接続を閉じる前にクライアントが QUIT (セクション 4.1.1.10)を送信するのを待たなければならず(MUST)、間に入るすべてのコマンドに対し "503 bad sequence of commands"(不正なコマンド順序) で応答するべきである(SHOULD)。そのようなシステムへの SMTP 接続の試みは恐らく誤りであるため、接続開始時に 554 を返すサーバーは、送信システムのデバッグを手助けするためにリプライテキスト内で十分な情報を提供するべきである(SHOULD)。

3.2. Client Initiation 3.2. クライアントの開始

Once the server has sent the greeting (welcoming) message and the client has received it, the client normally sends the EHLO command to the server, indicating the client's identity. In addition to opening the session, use of EHLO indicates that the client is able to process service extensions and requests that the server provide a list of the extensions it supports. Older SMTP systems that are unable to support service extensions, and contemporary clients that do not require service extensions in the mail session being initiated, MAY use HELO instead of EHLO. Servers MUST NOT return the extended EHLO- style response to a HELO command. For a particular connection attempt, if the server returns a "command not recognized" response to EHLO, the client SHOULD be able to fall back and send HELO. サーバーがグリーティング(ウェルカム)メッセージを送信し、クライアントがそれを受信した後、クライアントは通常サーバーに EHLO コマンドを送信し、自身の身元を示す。セッションを開くことに加え EHLO を使用することは、クライアントがサービス拡張を処理する能力を持つことを表し、サーバーがサポートするサービス拡張のリストを提供するよう要求することになる。サービス拡張をサポートできない古い SMTP や、メールセッションの開始時にサービス拡張を必要としないクライアントは、EHLO の代わりに HELO を使用してもよい(MAY)。サーバーは HELO コマンドに対して拡張された EHLO 形式の応答を返してはならない(MUST NOT)。特定の接続試行で EHLO に対してサーバーが "command not recognized(認識できないコマンド)" を返した場合、クライアントはフォールバックし、HELO を送信できるべきである(SHOULD)。

In the EHLO command, the host sending the command identifies itself; the command may be interpreted as saying "Hello, I am <domain>" (and, in the case of EHLO, "and I support service extension requests"). EHLO コマンドにおいて、このコマンドを送信するホストは自身を識別する:コマンドは "Hello, I am <domain>(こんにちは、私は<domain>です)" と解釈できる(また EHLO であれば "and I support service extension requests(サービス拡張リクエストをサポートしています)" とも)。

3.3. Mail Transactions 3.3. メールトランザクション

There are three steps to SMTP mail transactions. The transaction starts with a MAIL command that gives the sender identification. (In general, the MAIL command may be sent only when no mail transaction is in progress; see Section 4.1.4.) A series of one or more RCPT commands follows, giving the receiver information. Then, a DATA command initiates transfer of the mail data and is terminated by the "end of mail" data indicator, which also confirms the transaction. SMTP のメールトランザクションには 3 つのステップが存在する。トランザクションは送信者の身元を与える MAIL コマンドから始まる。(一般に MAIL コマンドはメールトランザクションが進行中でないときにのみ送信してよい。セクション 4.1.4 参照) 次に DATA コマンドがメールデータの送信を開始し、"メール終了(end of mail)" インジケータ(これもトランザクションを承認する)で終了する。

The first step in the procedure is the MAIL command. 手続きの最初のステップは MAIL コマンドである。

      MAIL FROM:<reverse-path> [SP <mail-parameters> ] <CRLF>

This command tells the SMTP-receiver that a new mail transaction is starting and to reset all its state tables and buffers, including any recipients or mail data. The <reverse-path> portion of the first or only argument contains the source mailbox (between "<" and ">" brackets), which can be used to report errors (see Section 4.2 for a discussion of error reporting). If accepted, the SMTP server returns a "250 OK" reply. If the mailbox specification is not acceptable for some reason, the server MUST return a reply indicating whether the failure is permanent (i.e., will occur again if the client tries to send the same address again) or temporary (i.e., the address might be accepted if the client tries again later). Despite the apparent scope of this requirement, there are circumstances in which the acceptability of the reverse-path may not be determined until one or more forward-paths (in RCPT commands) can be examined. In those cases, the server MAY reasonably accept the reverse-path (with a 250 reply) and then report problems after the forward-paths are received and examined. Normally, failures produce 550 or 553 replies. このコマンドは SMTP-受信者に、新しいメールトランザクションを開始し、受信者やメールデータを含むすべての状態テーブルとバッファとを初期化するように伝える。最初のまたは唯一の引数である <reverse-path> は、エラーを報告するのに使用される送信元メールボックス("<" と ">" との間)を含む(エラー報告に関する議論はセクション 4.2 を参照してほしい)。それが受入可能なら、SMTP サーバーは "250 OK" リプライを返す。何らかの理由でメールボックスの指定が受け入れられない場合、サーバーは、障害が永続的なもの(つまりクライアントが同じアドレスを再度試しても再び起こるであろう障害)か一時的なもの(つまりクライアントがそのアドレスを再度試すと受け入れられるかもしれない障害)かを示すリプライを返さなければならない(MUST)。この要求事項の明白なスコープにもかかわらず、(RCPT コマンド内の)ひとつまたは複数の forward-path を検証できるまで、reverse-path の受入可能性を判断できない状況もあり得る。そのような場合サーバーは、reverse-path を正当に(250 リプライで)受け入れ、その後 forward-path を受信し検証した後で問題を報告してもよい(MAY)。通常、失敗は 550 または 553 のリプライを生成する。

Historically, the <reverse-path> was permitted to contain more than just a mailbox; however, contemporary systems SHOULD NOT use source routing (see Appendix C). 歴史的には、<reverse-path> に単なるメールボックス以上の内容を含むことが許可されていた。しかしながら現在のシステムはソースルーティング(付録 C 参照)を使用するべきではない(SHOULD NOT)。

The optional <mail-parameters> are associated with negotiated SMTP service extensions (see Section 2.2). オプションの <mail-parameters> は交渉済みの SMTP サービス拡張(セクション 2.2 参照)のために使われる。

The second step in the procedure is the RCPT command. This step of the procedure can be repeated any number of times. 手続きの第二のステップは RCPT コマンドである。このステップは任意の回数だけ繰り返すことができる。

      RCPT TO:<forward-path> [ SP <rcpt-parameters> ] <CRLF>

The first or only argument to this command includes a forward-path (normally a mailbox and domain, always surrounded by "<" and ">" brackets) identifying one recipient. If accepted, the SMTP server returns a "250 OK" reply and stores the forward-path. If the recipient is known not to be a deliverable address, the SMTP server returns a 550 reply, typically with a string such as "no such user - " and the mailbox name (other circumstances and reply codes are possible). このコマンドへの最初のまたは唯一の引数は、一人の受信者を表す forward-path を含む(通常はメールボックスとドメインであり、常に "<" と ">" とで囲まれる)。それが受け入れられるなら、SMTP サーバーは "250 OK" リプライを返し、その forward-path を保持する。その受信者が配送不能のアドレスであることが分かっている場合、SMTP サーバーは 550 リプライ(典型的には "no such user - " とメールボックス名を伴なう)を返す(他の理由やリプライコードも可能である)。

The <forward-path> can contain more than just a mailbox. Historically, the <forward-path> was permitted to contain a source routing list of hosts and the destination mailbox; however, contemporary SMTP clients SHOULD NOT utilize source routes (see Appendix C). Servers MUST be prepared to encounter a list of source routes in the forward-path, but they SHOULD ignore the routes or MAY decline to support the relaying they imply. Similarly, servers MAY decline to accept mail that is destined for other hosts or systems. These restrictions make a server useless as a relay for clients that do not support full SMTP functionality. Consequently, restricted- capability clients MUST NOT assume that any SMTP server on the Internet can be used as their mail processing (relaying) site. If a RCPT command appears without a previous MAIL command, the server MUST return a 503 "Bad sequence of commands" response. The optional <rcpt-parameters> are associated with negotiated SMTP service extensions (see Section 2.2). <forward-path> は単なるメールボックス以上の内容を含むことができる。歴史的には <forward-path> はソースルーティングのホストリストと宛先メールボックスとを含むことを許可されていたが、現在の SMTP クライアントはソースルーティングを使用するべきではない(SHOULD NOT)(付録 C 参照)。サーバーは forward-path 内でソースルートのリストに遭遇する用意がなければならない(MUST)が、そのルートを拒否するべき(SHOULD)であり、それらが課すリレーのサポートを拒否してよい(MAY)。同じように、サーバーは他のホストやシステムに宛てられたメールの受け入れを拒否してもよい(MAY)。これらを制限すると、サーバーは完全な SMTP 機能をサポートしないクライアントのためのリレーとしては役に立たないものとなる。したがって能力の制限されたクライアントは、インターネット上の任意の SMTP サーバーがメール処理(リレー)サイトとして使用できると仮定してはならない(MUST NOT)。MAIL コマンドなしに RCPT コマンドが現れた場合、サーバーは 503 "Bad sequence of commands"(不正なコマンド順序) レスポンスを返さなければならない(MUST)。オプションの <rcpt-parameters> は、交渉済みの SMTP サービス拡張(セクション 2.2 参照)に対応する。

Since it has been a common source of errors, it is worth noting that spaces are not permitted on either side of the colon following FROM in the MAIL command or TO in the RCPT command. The syntax is exactly as given above. よくあるエラーの原因であるため、MAIL コマンド内の FROM、RCPT コマンド内の TO に続くコロンの両側に空白が許可されないことには注目する価値がある。構文は前述の通りである。

The third step in the procedure is the DATA command (or some alternative specified in a service extension). 手続きの第三のステップは、DATA コマンド(またはサービス拡張で規定された何らかの代替)である。

      DATA <CRLF>

If accepted, the SMTP server returns a 354 Intermediate reply and considers all succeeding lines up to but not including the end of mail data indicator to be the message text. When the end of text is successfully received and stored, the SMTP-receiver sends a "250 OK" reply. 受け入れられると、SMTP サーバーは 354 中間リプライ(Intermediate reply)を返し、メールデータ終了インジケータの直前までのすべての後続行をメッセージテキストであると見なす。テキストの終端が受信され保存されると、SMTP-受信者は "250 OK" リプライを送信する。

Since the mail data is sent on the transmission channel, the end of mail data must be indicated so that the command and reply dialog can be resumed. SMTP indicates the end of the mail data by sending a line containing only a "." (period or full stop). A transparency procedure is used to prevent this from interfering with the user's text (see Section 4.5.2). メールデータは通信チャネル上を送信されるため、コマンドおよびリプライの対話を再開できるように、メールデータの終了が示されなければならない。SMTP は "."(ピリオド)のみからなる行を送信することでメールデータの終了を表す。これがユーザーテキストを邪魔するのを避けるために、透過手続きが使用される(セクション 4.5.2 参照)。

The end of mail data indicator also confirms the mail transaction and tells the SMTP server to now process the stored recipients and mail data. If accepted, the SMTP server returns a "250 OK" reply. The DATA command can fail at only two points in the protocol exchange: メールデータの終了インジケータはメールトランザクションの確認も行い、保存された受信者とメールデータとを処理するように SMTP サーバーに伝える。受け入れられると、SMTP サーバーは "250 OK" リプライを返す。このプロトコル交換において、DATA コマンドは二つの点でのみ失敗し得る:

If there was no MAIL, or no RCPT, command, or all such commands were rejected, the server MAY return a "command out of sequence" (503) or "no valid recipients" (554) reply in response to the DATA command. If one of those replies (or any other 5yz reply) is received, the client MUST NOT send the message data; more generally, message data MUST NOT be sent unless a 354 reply is received. MAIL または RCPT がない場合や、それらのコマンドが拒否された場合、サーバーは DATAコマンドに対して "command out of sequence" (503) または "no valid recipients" (554) のリプライを返してもよい(MAY)。これらのリプライ(または他の 5yz リプライ)を受信したクライアントはメッセージデータを送信してはならない(MUST NOT)。より一般的に言えば、354 リプライを受信しない限り、メッセージデータが送信されてはならない(MUST NOT)。

If the verb is initially accepted and the 354 reply issued, the DATA command should fail only if the mail transaction was incomplete (for example, no recipients), if resources were unavailable (including, of course, the server unexpectedly becoming unavailable), or if the server determines that the message should be rejected for policy or other reasons. 最初にコマンドが受け入れられ 354 リプライが発行されると、DATA コマンドが失敗するのは、メールトランザクションが不完全だった(例えば受信者がいない)場合、またはリソースが使用不能な場合(当然ながらサーバーが予期せず使用不能になった場合も含む)、またはポリシーなどの理由によってサーバーがそのメッセージを拒否するべきと判断した場合だけのはずである。

However, in practice, some servers do not perform recipient verification until after the message text is received. These servers SHOULD treat a failure for one or more recipients as a "subsequent failure" and return a mail message as discussed in Section 6 and, in particular, in Section 6.1. Using a "550 mailbox not found" (or equivalent) reply code after the data are accepted makes it difficult or impossible for the client to determine which recipients failed. しかしながら現実には、一部のサーバーはメッセージテキストの受信後まで受信者の検証を行わない。そのようなサーバーは、ひとつまたは複数の受信者の障害を "後続障害(subsequent failure)" として扱い、セクション 6 と(具体的には)セクション 6.1 とで議論されている通り、メールメッセージを返すべきである。データが受け入れられた後に "550 mailbox not found"(メールボックスが見つからない) のリプライコード(またはそれと同等)を使用すると、クライアントはどの受信者が失敗したかの判断が困難、または不可能になる。

When the RFC 822 format ([28], [4]) is being used, the mail data include the header fields such as those named Date, Subject, To, Cc, and From. Server SMTP systems SHOULD NOT reject messages based on perceived defects in the RFC 822 or MIME (RFC 2045 [21]) message header section or message body. In particular, they MUST NOT reject messages in which the numbers of Resent-header fields do not match or Resent-to appears without Resent-from and/or Resent-date. RFC 822 フォーマット([28], [4])が使用されているとき、メールデータには Date、Subject、To、Cc、From などのヘッダフィールドが含まれる。サーバー SMTP システムは、RFC 822 または MIME (RFC 2045 [21])のメッセージヘッダセクションまたはメッセージボディにおいて認識される欠陥に基づいてメッセージを拒否するべきではない。特に、Resent-header フィールドの数が一致しないメッセージ、Resent-from や Resent-date 無しに Resent-to が現れるメッセージを拒否してはならない(MUST NOT)。

Mail transaction commands MUST be used in the order discussed above. メールトランザクションは上記で議論した順序で使用されなければならない(MUST)。

3.4. Forwarding for Address Correction or Updating 3.4. アドレスの訂正または更新のための転送

Forwarding support is most often required to consolidate and simplify addresses within, or relative to, some enterprise and less frequently to establish addresses to link a person's prior address with a current one. Silent forwarding of messages (without server notification to the sender), for security or non-disclosure purposes, is common in the contemporary Internet. 転送のサポートは、多くの場合ある企業の内部で(またはいくつかの企業に関連して)アドレスを統合したり簡素化するため、またはそれほど頻度は高くないが、ある人物の以前のアドレスを現在のアドレスにひも付けるために必要とされる。セキュリティまたは機密保持の目的のため、現在のインターネットではメッセージの暗黙の(サーバーが送信者に通知しない)転送が一般的である。

In both the enterprise and the "new address" cases, information hiding (and sometimes security) considerations argue against exposure of the "final" address through the SMTP protocol as a side effect of the forwarding activity. This may be especially important when the final address may not even be reachable by the sender. Consequently, the "forwarding" mechanisms described in Section 3.2 of RFC 821, and especially the 251 (corrected destination) and 551 reply codes from RCPT must be evaluated carefully by implementers and, when they are available, by those configuring systems (see also Section 7.4). 企業の場合も "新アドレス(new address)" の場合も、転送動作の副作用として SMTP プロトコルにより "最終(final)" アドレスが公開されることは、情報隠蔽(またはセキュリティ)の考慮と相反する。最終アドレスが送信者から連絡可能であることを許されていない場合には、これは特に重要である。その結果として、RFC 821 のセクション 3.2 で説明されている "転送(forwarding)" メカニズム、そして特に RCPT からの 251 リプライ(訂正された宛先(corrected destination))および 551 リプライは、実装や(利用可能なら)実装を構成するシステムによって、注意深く評価されなければならない(セクション 7.4 参照)。

In particular: 詳細:

Alternately, 代替:

SMTP server implementations that support the 251 and/or 551 reply codes SHOULD provide configuration mechanisms so that sites that conclude that they would undesirably disclose information can disable or restrict their use. 251 や 551 のリプライコードをサポートする SMTP サーバー実装は、望まない情報を公開しないと決定したサイトが、その利用を無効化または制限できるようにする設定メカニズムを提供するべきである((SHOULD)。

3.5. Commands for Debugging Addresses 3.5. アドレスのデバッグ作業のためのコマンド

3.5.1. Overview 3.5.1. 概観

SMTP provides commands to verify a user name or obtain the content of a mailing list. This is done with the VRFY and EXPN commands, which have character string arguments. Implementations SHOULD support VRFY and EXPN (however, see Section 3.5.2 and Section 7.3). SMTP は、ユーザー名を確認したり、メーリングリストの内容を取得したりするためのコマンドを提供する。これは VRFY コマンドおよび EXPN コマンドで行われ、文字列の引数を取る。実装は VRFY と EXPN とをサポートするべきである(SHOULD)(しかしながらセクション 3.5.2 およびセクション 7.3 を参照してほしい)。

For the VRFY command, the string is a user name or a user name and domain (see below). If a normal (i.e., 250) response is returned, the response MAY include the full name of the user and MUST include the mailbox of the user. It MUST be in either of the following forms: VRFY コマンドの場合、引数の文字列はユーザー名か、ユーザー名とドメイン名(下記参照)である。通常のレスポンス(つまり 250)が返される場合、そのレスポンスはユーザーのメールボックスを含まなければならず(MUST)、ユーザーのフルネームを含んでもよい(MAY)。これは以下のどちらかの形式でなければならない(MUST):

      User Name <local-part@domain>
      local-part@domain

When a name that is the argument to VRFY could identify more than one mailbox, the server MAY either note the ambiguity or identify the alternatives. In other words, any of the following are legitimate responses to VRFY: VRFY の引数の名前から二つ以上のメールボックスが特定される場合、サーバーはその不明確さに言及するか、選択肢を提示してよい(MAY)。つまり、以下に示すのは VRFY に対する正当なレスポンスである:

      553 User ambiguous

or あるいは

      553- Ambiguous; Possibilities are
      553-Joe Smith <jsmith@foo.com>
      553-Harry Smith <hsmith@foo.com>
      553 Melvin Smith <dweep@foo.com>

or あるいは

      553-Ambiguous; Possibilities
      553- <jsmith@foo.com>
      553- <hsmith@foo.com>
      553 <dweep@foo.com>

Under normal circumstances, a client receiving a 553 reply would be expected to expose the result to the user. Use of exactly the forms given, and the "user ambiguous" or "ambiguous" keywords, possibly supplemented by extended reply codes, such as those described in RFC 3463 [25], will facilitate automated translation into other languages as needed. Of course, a client that was highly automated or that was operating in another language than English might choose to try to translate the response to return some other indication to the user than the literal text of the reply, or to take some automated action such as consulting a directory service for additional information before reporting to the user. 通常の状況下では、リプライ 553 を受け取ったクライアントはその結果を利用者に公開することを期待されるだろう。与えられた書式の正確な使用(および例えば RFC 3463 [25] で説明されているような拡張リプライコードを伴なうであろうキーワード "user ambiguous" または "ambiguous")は、必要に応じて自動的に他の言語に翻訳する手助けとなるだろう。当然ながら、高度に自動化されたクライアントや英語以外の言語で運用されているクライアントは、リプライのリテラル文字列ではない何らかの別の指示をユーザーに返すために、応答を翻訳したり、ユーザーに報告する前に追加情報を得るためにディレクトリサービスを調べるなどの自動アクションを取ることを試みてもよい。

For the EXPN command, the string identifies a mailing list, and the successful (i.e., 250) multiline response MAY include the full name of the users and MUST give the mailboxes on the mailing list. EXPN コマンドの場合、文字列はメーリングリストを表し、成功を表す(つまり 250の)複数行応答にはメーリングリスト内の各メールボックスを与えなければならず(MUST)、各ユーザーのフルネームを含んでもよい(MAY)。

In some hosts, the distinction between a mailing list and an alias for a single mailbox is a bit fuzzy, since a common data structure may hold both types of entries, and it is possible to have mailing lists containing only one mailbox. If a request is made to apply VRFY to a mailing list, a positive response MAY be given if a message so addressed would be delivered to everyone on the list, otherwise an error SHOULD be reported (e.g., "550 That is a mailing list, not a user" or "252 Unable to verify members of mailing list"). If a request is made to expand a user name, the server MAY return a positive response consisting of a list containing one name, or an error MAY be reported (e.g., "550 That is a user name, not a mailing list"). 一部のホストでは、メーリングリストと単一のメールボックスを持つエイリアスとの違いが少々不明瞭である。これは、両方のエントリが共通のデータ構造に保持される可能性があり、メールボックスをただひとつだけ含むメーリングリストを持つことが可能なためである。VRFY をメーリングリストに適用することを要求された場合、リスト上の全員にメッセージが配送されるのであれば肯定応答が返されてもよく(MAY)、さもなければエラー(例えば "550 That is a mailing list, not a user"(それはメーリングリストであり、ユーザーではない) または "252 Unable to verify members of mailing list"(メーリングリストのメンバーの確認はできない))が報告されるべきである(SHOULD)。ユーザー名の展開を要求されたサーバーは、ひとつの名前を含むリストから構成される肯定応答を返してもよいし(MAY)、エラー(例えば "550 That is a user name, not a mailing list"(それはユーザー名であり、メーリングリストではない))を報告してもよい(MAY)

In the case of a successful multiline reply (normal for EXPN), exactly one mailbox is to be specified on each line of the reply. The case of an ambiguous request is discussed above. 成功を表す複数行リプライ(EXPN では標準的である)の場合、リプライの各行にはただひとつのメールボックスが示される。あいまいな要求の場合については上記で議論した通りである。

"User name" is a fuzzy term and has been used deliberately. An implementation of the VRFY or EXPN commands MUST include at least recognition of local mailboxes as "user names". However, since current Internet practice often results in a single host handling mail for multiple domains, hosts, especially hosts that provide this functionality, SHOULD accept the "local-part@domain" form as a "user name"; hosts MAY also choose to recognize other strings as "user names". "ユーザー名(user name)" はあいまいな用語だが、意図的に使用されている。VRFY コマンドまたは EXPN コマンドの実装は、少なくともローカルメールボックスを "ユーザー名(user names)" として認識しなければならない(MUST)。しかしながら現在のインターネットの習慣は、しばしば複数ドメインのためのメールを処理する単一ホストを生じさせるため、ホスト(特にこの機能を提供するホスト)は、"local-part@domain" の形式を "ユーザー名(user name)" として受け入れるべきである(SHOULD)。またホストは、別の文字列を "ユーザー名(user name)" として認識する選択をしてもよい(MAY)。

The case of expanding a mailbox list requires a multiline reply, such as: メールボックスを展開する場合、例えば以下のような複数行リプライが必要となる:

      C: EXPN Example-People
      S: 250-Jon Postel <Postel@isi.edu>
      S: 250-Fred Fonebone <Fonebone@physics.foo-u.edu>
      S: 250 Sam Q. Smith <SQSmith@specific.generic.com>

or または

      C: EXPN Executive-Washroom-List
      S: 550 Access Denied to You.

The character string arguments of the VRFY and EXPN commands cannot be further restricted due to the variety of implementations of the user name and mailbox list concepts. On some systems, it may be appropriate for the argument of the EXPN command to be a file name for a file containing a mailing list, but again there are a variety of file naming conventions in the Internet. Similarly, historical variations in what is returned by these commands are such that the response SHOULD be interpreted very carefully, if at all, and SHOULD generally only be used for diagnostic purposes. ユーザー名およびメールボックスの概念の実装の多様性のため、VRFY コマンドおよび EXPN コマンドの文字列引数をさらに制限することはできない。システムによっては EXPN コマンドの引数がメーリングリストを含むファイルのファイル名かもしれないが、その場合もインターネット上にはさまざまなファイル名の習慣が存在する。これらのコマンドに返される内容の歴史的な変化も同じようなものであるため、応答があったとしても、それは非常に慎重に解釈されるべき(SHOULD)であり、通常は診断目的にのみ使用されるべきである(SHOULD)。

3.5.2. VRFY Normal Response 3.5.2. VRFY の正常応答

When normal (2yz or 551) responses are returned from a VRFY or EXPN request, the reply MUST include the <Mailbox> name using a "<local-part@domain>" construction, where "domain" is a fully- qualified domain name. In circumstances exceptional enough to justify violating the intent of this specification, free-form text MAY be returned. In order to facilitate parsing by both computers and people, addresses SHOULD appear in pointed brackets. When addresses, rather than free-form debugging information, are returned, EXPN and VRFY MUST return only valid domain addresses that are usable in SMTP RCPT commands. Consequently, if an address implies delivery to a program or other system, the mailbox name used to reach that target MUST be given. Paths (explicit source routes) MUST NOT be returned by VRFY or EXPN. VRFY または EXPN のリクエストに対して通常の応答(2yz または 551)が返される場合、そのリプライは "<local-part@domain>" の形式の <メールボックス(Mailbox)> を含まなければならない(MUST)(ここで "domain" は完全限定ドメイン名である)。この仕様の目的に違反するのを正当化するのに十分なほど例外的な状況では、自由形式のテキストが返されてもよい(MAY)。コンピュータと人との両方による解析を手助けするために、アドレスはアングルブラケット内に現れるべきである(SHOULD)。自由形式のデバッグ情報ではなくアドレスが返される場合、EXPN および VRFY は、SMTP の RCPT コマンドにおいて使用できる有効なドメインアドレスのみを返さなければならない(MUST)。したがって、アドレスがプログラムまたは他のシステムへの配送を暗示する場合、その目的地に到達するのに使用されるメールボックス名が与えられなければならない(MUST)。VRFY または EXPN によって経路(明示的なソースルート)が返されてはならない(MUST NOT)。

Server implementations SHOULD support both VRFY and EXPN. For security reasons, implementations MAY provide local installations a way to disable either or both of these commands through configuration options or the equivalent (see Section 7.3). When these commands are supported, they are not required to work across relays when relaying is supported. Since they were both optional in RFC 821, but VRFY was made mandatory in RFC 1123 [3], if EXPN is supported, it MUST be listed as a service extension in an EHLO response. VRFY MAY be listed as a convenience but, since support for it is required, SMTP clients are not required to check for its presence on the extension list before using it. サーバー実装は VRFY と EXPN とを両方サポートするべきである(SHOULD)。セキュリティのため、実装は構成オプションなどにより、これらのコマンドの片方または両方を無効化するローカルの手段を導入してもよい(MAY)(セクション 7.3 参照)。リレーがサポートされる場合、これらのコマンドがサポートされるとしても、リレーをまたいで動作する必要はない。RFC 821 ではこれらは共にオプションであったが、RFC 1123 [3] において VRFY が必須となった。そのため EXPN がサポートされる場合、EHLO 応答におけるサービス拡張としてリストされなければならない(MUST)。利便性のために VRFY がリストされてもよい(MAY)が、そのサポートは必須であるため、SMTP クライアントはそれを使用する前に拡張のリストにそれが存在することを確認する必要はない。

3.5.3. Meaning of VRFY or EXPN Success Response 3.5.3. VRFY または EXPN の成功応答の意味

A server MUST NOT return a 250 code in response to a VRFY or EXPN command unless it has actually verified the address. In particular, a server MUST NOT return 250 if all it has done is to verify that the syntax given is valid. In that case, 502 (Command not implemented) or 500 (Syntax error, command unrecognized) SHOULD be returned. As stated elsewhere, implementation (in the sense of actually validating addresses and returning information) of VRFY and EXPN are strongly recommended. Hence, implementations that return 500 or 502 for VRFY are not in full compliance with this specification. 実際にアドレスを検証しない限り、サーバーは VRFY または EXPN に対して 250 コードを返してはならない(MUST NOT)。特に、構文が妥当であることを確認しただけで 250 を返してはならない(MUST NOT)。そのような場合、502 (コマンドが実装されていない(Command not implemented))または 500 (構文エラー、コマンドは認識されない(Syntax error, command unrecognized))が返されるべきである(SHOULD)。別のところで述べた通り、(実際にアドレスを確認して情報を返すという意味での)VRFY および EXPN の実装は強く推奨される。そのため、VRFY に対して 500 または 502 を返す実装は、本仕様に完全には準拠しない。

There may be circumstances where an address appears to be valid but cannot reasonably be verified in real time, particularly when a server is acting as a mail exchanger for another server or domain. "Apparent validity", in this case, would normally involve at least syntax checking and might involve verification that any domains specified were ones to which the host expected to be able to relay mail. In these situations, reply code 252 SHOULD be returned. These cases parallel the discussion of RCPT verification in Section 2.1. Similarly, the discussion in Section 3.4 applies to the use of reply codes 251 and 551 with VRFY (and EXPN) to indicate addresses that are recognized but that would be forwarded or rejected were mail received for them. Implementations generally SHOULD be more aggressive about address verification in the case of VRFY than in the case of RCPT, even if it takes a little longer to do so. 特にサーバーが別のサーバーまたはドメインのためのメールエクスチェンジャとして動作する場合など、アドレス部分は妥当に見えるがリアルタイムでの合理的な検証を行えない状況もあり得る。この場合の "見掛け上の妥当性(Apparent validity)" は通常少なくとも構文の確認を含むだろうし、指定された任意のドメインがメールをリレーできることを期待されるホストのドメインであることの確認も含むかもしれない。そのような状況では、リプライコード 252 が返されるべきである(SHOULD)。これらのケースはセクション 2.1 の RCPT の検証の議論に似ている。同じようにセクション 3.4 における議論は、受信したメールが認識はされるが転送または拒否されるかもしれないアドレスであったことを表すために、VRFY(および EXPN)にリプライコード 251 と 551 とを使用する場合にも適用される。一般に実装は、RCPT の場合に比べて VRFY の場合のアドレス検証について、たとえ多少時間が掛かるとしても、より積極的であるべきである(SHOULD)。

3.5.4. Semantics and Applications of EXPN 3.5.4. EXPN の動作と応用

EXPN is often very useful in debugging and understanding problems with mailing lists and multiple-target-address aliases. Some systems have attempted to use source expansion of mailing lists as a means of eliminating duplicates. The propagation of aliasing systems with mail on the Internet for hosts (typically with MX and CNAME DNS records), for mailboxes (various types of local host aliases), and in various proxying arrangements has made it nearly impossible for these strategies to work consistently, and mail systems SHOULD NOT attempt them. EXPN はしばしば、メーリングリストや複数宛先アドレスのエイリアスに付いての問題をデバッグしたり理解したりするのに非常に役に立つ。一部のシステムは重複を削減する手段として、メーリングリストのソース展開を使用しようと試みてきた。インターネット上のメールでのエイリアスシステム(一般に DNS レコードの MX および CNAME によるホストのためのもの、および様々な種類のローカルホストエイリアスによるメールボックスのためのもの)の増殖、および様々な代理処理におけるエイリアスシステムの増殖が、これらの戦略が一貫して正しく動作することをほとんど不可能なものにしているため、メールシステムはそのような試みを行うべきではない(SHOULD NOT)。

3.6. Relaying and Mail Routing 3.6. リレーとメールルーティング

3.6.1. Source Routes and Relaying 3.6.1. ソースルートとリレー

In general, the availability of Mail eXchanger records in the domain name system (RFC 1035 [2], RFC 974 [12]) makes the use of explicit source routes in the Internet mail system unnecessary. Many historical problems with the interpretation of explicit source routes have made their use undesirable. SMTP clients SHOULD NOT generate explicit source routes except under unusual circumstances. SMTP servers MAY decline to act as mail relays or to accept addresses that specify source routes. When route information is encountered, SMTP servers MAY ignore the route information and simply send to the final destination specified as the last element in the route and SHOULD do so. There has been an invalid practice of using names that do not appear in the DNS as destination names, with the senders counting on the intermediate hosts specified in source routing to resolve any problems. If source routes are stripped, this practice will cause failures. This is one of several reasons why SMTP clients MUST NOT generate invalid source routes or depend on serial resolution of names. 一般に、ドメインネームシステム(RFC 1035 [2]、RFC 974 [12])のメールエクスチェンジャ(Mail eXchanger)レコードの利用により、インターネットのメールシステムにおける明示的なソースルートの使用は不要になる。明示的なソースルートの解釈に伴なう歴史的な問題が、その使用を好ましくないものにした。特殊な状況ではないかぎり、SMTP クライアントは明示的なソースルートを生成するべきではない(SHOULD NOT)。SMTP サーバーは、メールリレーとして動作したり、ソースルートを指定されたアドレスを受け入れたりすることを拒否してもよい(MAY)。経路情報に出くわしたとき、SMTP サーバーはその経路情報を無視し、単純に経路の最終要素として指定された最終宛先にメールを送信してもよく(MAY)、またそうするべきである(SHOULD)。DNS に現れない名前を宛先名として使用し、送信者はソースルートに指定された中間ホストがすべての問題を解決することを当てにするという妥当でない方法が存在した。ソースルートが取り除かれる場合、この方法は失敗するだろう。これは、SMTP クライアントが無効なソースルートを生成したり、名前の逐次解決に頼ったりしてはならない(MUST NOT)いくつかの理由の内のひとつである。

When source routes are not used, the process described in RFC 821 for constructing a reverse-path from the forward-path is not applicable and the reverse-path at the time of delivery will simply be the address that appeared in the MAIL command. ソースルートが使用されない場合、forward-path から reverse-path を構築するために RFC 821 で説明されているプロセスは適用できず、配送時の reverse-path は単純に MAIL コマンドに現れたアドレスになるだろう。

3.6.2. Mail eXchange Records and Relaying 3.6.2. MX(Mail eXchange)レコードとリレー

A relay SMTP server is usually the target of a DNS MX record that designates it, rather than the final delivery system. The relay server may accept or reject the task of relaying the mail in the same way it accepts or rejects mail for a local user. If it accepts the task, it then becomes an SMTP client, establishes a transmission channel to the next SMTP server specified in the DNS (according to the rules in Section 5), and sends it the mail. If it declines to relay mail to a particular address for policy reasons, a 550 response SHOULD be returned. 通常、リレー SMTP サーバーは最終配送システムではなく、それを指定する DNS の MX レコードの対象となる。リレーサーバーはローカルユーザーへのメールを受け入れたり拒否したりするのと同じように、メールをリレーする仕事を受け入れたり拒否したりしてよい。サーバーがその作業を受け入れる場合、サーバーは次に SMTPクライアントになり、(セクション 5 のルールに従って)DNS で指定された次の SMTP サーバーへの通信チャネルを確立する。ポリシーを理由に特定のアドレスへのメールのリレーを拒否する場合、550 応答が返されるべきである(SHOULD)。

This specification does not deal with the verification of return paths for use in delivery notifications. Recent work, such as that on SPF [29] and DKIM [30] [31], has been done to provide ways to ascertain that an address is valid or belongs to the person who actually sent the message. A server MAY attempt to verify the return path before using its address for delivery notifications, but methods of doing so are not defined here nor is any particular method recommended at this time. 本仕様は配信通知において使用されるリターンパスの検証を扱わない。最近の研究(SPF [29] および DKIM [30] [31] など)は、アドレスが有効か、または本当にそのメッセージを送信した人物の所有するアドレスかを確かめる方法を提供している。サーバーは配信通知のためにそのアドレスを使用する前にリターンパスの検証を試みてもよい(MAY)が、それを行う手段はここで定義されないし、現時点で推奨される特定の手段もない。

3.6.3. Message Submission Servers as Relays 3.6.3. リレーとしてのメッセージサブミッションサーバー

Many mail-sending clients exist, especially in conjunction with facilities that receive mail via POP3 or IMAP, that have limited capability to support some of the requirements of this specification, such as the ability to queue messages for subsequent delivery attempts. For these clients, it is common practice to make private arrangements to send all messages to a single server for processing and subsequent distribution. SMTP, as specified here, is not ideally suited for this role. A standardized mail submission protocol has been developed that is gradually superseding practices based on SMTP (see RFC 4409 [18]). In any event, because these arrangements are private and fall outside the scope of this specification, they are not described here. 本仕様の要求事項の一部(例えば後に配送を試行するためにメッセージをキューイングする能力など)を限定的にしかサポートしないメール送信クライアントが数多く存在する(特に POP3 または IMAP を通してメールを受信する能力を併せ持つ)。これらのクライアントのために、処理とその後の配布とのために単一サーバーにすべてのメッセージを送信するというプライベートな取り決めを持つのが一般的な習慣である。ここで規定する SMTP は、その役割に理想的には合致しない。標準化されたメールサブミッションプロトコルが開発され、SMTP に基づく実践(RFC 4409 [18] 参照)に徐々に取って代わっている。いずれにしてもこれらの取り決めはプライベートなものであり、本仕様の範囲外であるため、ここでは説明されない。

It is important to note that MX records can point to SMTP servers that act as gateways into other environments, not just SMTP relays and final delivery systems; see Sections 3.7 and 5. MX レコードは、単なる SMTP リレーや最終配送システムではなく、他の環境へのゲートウェイとして振る舞う SMTP サーバーを指し示すことができることに注意することが重要である(セクション 3.7 および セクション 5 を参照)。

If an SMTP server has accepted the task of relaying the mail and later finds that the destination is incorrect or that the mail cannot be delivered for some other reason, then it MUST construct an "undeliverable mail" notification message and send it to the originator of the undeliverable mail (as indicated by the reverse- path). Formats specified for non-delivery reports by other standards (see, for example, RFC 3461 [32] and RFC 3464 [33]) SHOULD be used if possible. SMTP サーバーがメールのリレー作業を受け入れた後に、その宛先が不正、または他の理由によりメールの配送が不可能であることが分かった場合、サーバーは "undeliverable mail" 通知メッセージを構築し、配送不能メールの発信者(reverse-path によって示される)にそれを送り返さなければならない(MUST)。可能であれば、他の標準(例えば RFC 3461 [31] および RFC 3464 [33])によって配送不能通知用に規定されたフォーマットを使用するべきである(SHOULD)。

This notification message must be from the SMTP server at the relay host or the host that first determines that delivery cannot be accomplished. Of course, SMTP servers MUST NOT send notification messages about problems transporting notification messages. One way to prevent loops in error reporting is to specify a null reverse-path in the MAIL command of a notification message. When such a message is transmitted, the reverse-path MUST be set to null (see Section 4.5.5 for additional discussion). A MAIL command with a null reverse-path appears as follows: この通知メッセージは、リレーホスト、または配送不能であると最初に判断したホスト上の SMTP サーバーから送信されなければならない。当然ながら SMTP サーバーは、通知メッセージの転送中の問題についての通知メッセージを送信してはならない(MUST NOT)。エラー報告におけるループを避ける方法のひとつは、通知メッセージの MAIL コマンドに空の reverse-path を指定することである。そのようなメッセージが送信される場合、空の reverse-path がセットされなければならない(MUST)(さらなる議論についてはセクション 4.5.5 を参照してほしい)。空の reverse-path を持つ MAIL コマンドは以下のように表される:

      MAIL FROM:<>

As discussed in Section 6.4, a relay SMTP has no need to inspect or act upon the header section or body of the message data and MUST NOT do so except to add its own "Received:" header field (Section 4.4) and, optionally, to attempt to detect looping in the mail system (see Section 6.3). Of course, this prohibition also applies to any modifications of these header fields or text (see also Section 7.9). セクション 6.4 の議論の通り、リレー SMTP はメッセージのヘッダ部やボディを検査したり、それらに基づいて動作したりする必要はなく、またヘッダに自身の "Received:" フィールド(セクション 4.4)を追加する場合と、オプションでメールシステム内のループの検出を試みる場合とを除き、そうしてはならない(MUST NOT)。当然ながらこの禁止事項は、これらのヘッダフィールドまたはテキストに対する変更にも適用される(セクション 7.9 も参照してほしい)。

3.7. Mail Gatewaying 3.7. メールゲートウェイ

While the relay function discussed above operates within the Internet SMTP transport service environment, MX records or various forms of explicit routing may require that an intermediate SMTP server perform a translation function between one transport service and another. As discussed in Section 2.3.10, when such a system is at the boundary between two transport service environments, we refer to it as a "gateway" or "gateway SMTP". 先に議論したリレー機能はインターネットの SMTP トランスポートサービス環境内で運用されるが、MX レコードや様々な形式の明示的ルーティングは、あるトランスポートサービスから別のトランスポートサービスへの変換機能を実行する中間 SMTP サーバーを必要とする可能性がある。セクション 2.3.10 での議論の通り、そのようなシステムが二つのトランスポートサービスの間に位置する場合、私たちはそれを、"ゲートウェイ(gateway)" または "ゲートウェイ SMTP(gateway SMTP)" と呼ぶ。

Gatewaying mail between different mail environments, such as different mail formats and protocols, is complex and does not easily yield to standardization. However, some general requirements may be given for a gateway between the Internet and another mail environment. 異なるメール環境(例えば異なるメールフォーマットやプロトコル)の間でのメールのゲートウェイは複雑であり、簡単に標準化できるものではない。しかしながら、インターネットと他のメール環境との間のゲートウェイのために、何らかの一般的な要求事項が定められてもよい。

3.7.1. Header Fields in Gatewaying 3.7.1. ゲートウェイにおけるヘッダフィールド

Header fields MAY be rewritten when necessary as messages are gatewayed across mail environment boundaries. This may involve inspecting the message body or interpreting the local-part of the destination address in spite of the prohibitions in Section 6.4. メッセージがメール環境の境界を通過するとき、ヘッダフィールドが書き換えられてもよい(MAY)。セクション 6.4 の禁止事項を廃して、これにはメッセージボディの検査や宛先アドレスの local-part の解釈が含まれてもよい。

Other mail systems gatewayed to the Internet often use a subset of the RFC 822 header section or provide similar functionality with a different syntax, but some of these mail systems do not have an equivalent to the SMTP envelope. Therefore, when a message leaves the Internet environment, it may be necessary to fold the SMTP envelope information into the message header section. A possible solution would be to create new header fields to carry the envelope information (e.g., "X-SMTP-MAIL:" and "X-SMTP-RCPT:"); however, this would require changes in mail programs in foreign environments and might risk disclosure of private information (see Section 7.2). インターネットへのゲートウェイ処理を行う他のメールシステムは、しばしば RFC 822 のヘッダセクションのサブセットを使用したり、または異なる文法を持つ似たような機能を提供したりするが、メールシステムによっては SMTP エンベロープに相当するものを持たない。そのため、メッセージがインターネット環境から離れるとき、メッセージのヘッダセクションに SMTP エンベロープの情報を組み入れる必要がある可能性がある。可能な解決策は、そのエンベロープ情報を運ぶための新しいヘッダフィールドを作ることである(例えば "X-SMTP-MAIL:" と "X-SMTP-RCPT:")。しかしながらこれは、別環境のメールプログラムの変更を必要とするかもしれず、機密情報を公開する危険を冒す可能性がある。

3.7.2. Received Lines in Gatewaying 3.7.2. ゲートウェイにおける Received 行

When forwarding a message into or out of the Internet environment, a gateway MUST prepend a Received: line, but it MUST NOT alter in any way a Received: line that is already in the header section. メッセージをインターネット環境の内側または外側へ転送するとき、ゲートウェイは Received: 行を追加しなければならない(MUST)が、すでにヘッダセクションに追加されている Received: 行を変更してはならない(MUST NOT)。

"Received:" header fields of messages originating from other environments may not conform exactly to this specification. However, the most important use of Received: lines is for debugging mail faults, and this debugging can be severely hampered by well-meaning gateways that try to "fix" a Received: line. As another consequence of trace header fields arising in non-SMTP environments, receiving systems MUST NOT reject mail based on the format of a trace header field and SHOULD be extremely robust in the light of unexpected information or formats in those header fields. 他の環境から発信されたメッセージの "Received:" フィールドは、本仕様に正確に従わない可能性がある。しかしながら、Received: 行のもっとも重要な使用法はメール障害のデバッグ作業であり、Received: 行を "修正(fix)" しようとする善意のゲートウェイによって、そのデバッグ作業はひどく妨げられる可能性がある。非 SMTP 環境で発生したトレースヘッダフィールドのための別の結論として、受信システムはトレースヘッダフィールドのフォーマットに基づいてメールを拒否してはならず(MUST NOT)、予期せぬ情報やそれらのヘッダフィールドのフォーマットを踏まえて、極めて頑強であるべきである(SHOULD)。

The gateway SHOULD indicate the environment and protocol in the "via" clauses of Received header field(s) that it supplies. ゲートウェイは Received ヘッダフィールドの "via" 節で、その環境とプロトコルとを示すべきである(SHOULD)。

3.7.3. Addresses in Gatewaying 3.7.3. ゲートウェイにおけるアドレス

From the Internet side, the gateway SHOULD accept all valid address formats in SMTP commands and in the RFC 822 header section, and all valid RFC 822 messages. Addresses and header fields generated by gateways MUST conform to applicable standards (including this one and RFC 5322 [4]). Gateways are, of course, subject to the same rules for handling source routes as those described for other SMTP systems in Section 3.3. インターネット側から見るとゲートウェイは、SMTP コマンド内および RFC 822 ヘッダセクション内の有効なすべてのアドレスと有効な RFC 822 メッセージとを、すべて受け入れるべきである(SHOULD)。ゲートウェイによって生成されたアドレスおよびヘッダフィールドは、適用可能な規格(本仕様および RFC 5322 [4]を含む)に従わなければならない(MUST)。当然ながらゲートウェイは、他の SMTP システムのために説明されているセクション 3.3 の規則と同じソースルート処理の規則に従う。

3.7.4. Other Header Fields in Gatewaying 3.7.4. ゲートウェイにおける他のヘッダフィールド

The gateway MUST ensure that all header fields of a message that it forwards into the Internet mail environment meet the requirements for Internet mail. In particular, all addresses in "From:", "To:", "Cc:", etc., header fields MUST be transformed (if necessary) to satisfy the standard header syntax of RFC 5322 [4], MUST reference only fully-qualified domain names, and MUST be effective and useful for sending replies. The translation algorithm used to convert mail from the Internet protocols to another environment's protocol SHOULD ensure that error messages from the foreign mail environment are delivered to the reverse-path from the SMTP envelope, not to an address in the "From:", "Sender:", or similar header fields of the message. ゲートウェイはインターネットのメール環境へと転送するメッセージのすべてのヘッダフィールドがインターネットメールのための要求事項に従うことを保証しなければならない(MUST)。特に、"From:"・ "To:"・"Cc:" などのヘッダフィールド内のすべてのアドレスは、RFC 5322 [4]の標準ヘッダ構文を満たすように(必要なら)変換されなければならず(MUST)、完全限定ドメイン名のみを参照しなければならず(MUST)、返信先として有効でなければならない(MUST)。インターネットプロトコルから別環境のプロトコルへと変換するために使用されるアルゴリズムは、その外部のメール環境からのエラーメッセージが、メッセージの "From:" や "Sender:" や、それらに似たヘッダフィールドにではなく、SMTP エンベロープに由来する reverse-path 配送されることを保証するべきである(SHOULD)。

3.7.5. Envelopes in Gatewaying 3.7.5. ゲートウェイにおけるエンベロープ

Similarly, when forwarding a message from another environment into the Internet, the gateway SHOULD set the envelope return path in accordance with an error message return address, if supplied by the foreign environment. If the foreign environment has no equivalent concept, the gateway must select and use a best approximation, with the message originator's address as the default of last resort. 同じように、別の環境からインターネットへとメッセージを転送するとき、その外部環境がエラーメッセージの返信アドレスを提供しているなら、ゲートウェイはそれに合致するエンベロープリターンパス(envelope return path)をセットするべきである(SHOULD)。外部環境が同等の概念を持たない場合、ゲートウェイは最善の近似値(最終手段のデフォルトとしてメッセージ発信者のアドレス)を選択し、使用するべきである。

3.8. Terminating Sessions and Connections 3.8. セッションと接続の終了

An SMTP connection is terminated when the client sends a QUIT command. The server responds with a positive reply code, after which it closes the connection. クライアントが QUIT コマンドを送信したとき、SMTP 接続は終了する。サーバーは肯定リプライコードで応答した後、接続を閉じる。

An SMTP server MUST NOT intentionally close the connection under normal operational circumstances (see Section 7.8) except: 以下の場合を除き、SMTP サーバーは通常の運用環境において故意に接続を閉じてはならない(セクション 7.8 参照)(MUST NOT):

In particular, a server that closes connections in response to commands that are not understood is in violation of this specification. Servers are expected to be tolerant of unknown commands, issuing a 500 reply and awaiting further instructions from the client. 特に、理解できないコマンドに対して接続を閉じるサーバーは、本仕様に違反することになる。サーバーは未知のコマンドに対して寛容であり、500 リプライを発行してクライアントからのさらなる指示を待つことを期待される。

An SMTP server that is forcibly shut down via external means SHOULD attempt to send a line containing a 421 response code to the SMTP client before exiting. The SMTP client will normally read the 421 response code after sending its next command. 外部の手段によって強制的にシャットダウンされる SMTP サーバーは、終了する前に SMTP クライアントに応答コード 421 を含む行を送信しようと試みるべきである(SHOULD)。通常 SMTP クライアントは、次のコマンドを送信した後にその応答コード 421 を読み取ることになるだろう。

SMTP clients that experience a connection close, reset, or other communications failure due to circumstances not under their control (in violation of the intent of this specification but sometimes unavoidable) SHOULD, to maintain the robustness of the mail system, treat the mail transaction as if a 451 response had been received and act accordingly. 自身のコントロール外の状況により接続の終了、リセット、または他の通信障害(本仕様の目的には違反するが、時として避けられない)に遭遇した SMTP クライアントは、メールシステムの堅牢性を維持するために、451 応答を受け取ったかのようにメールトランザクションを扱い、それに従って動作するべきである(SHOULD)。

3.9. Mailing Lists and Aliases 3.9. メーリングリストとエイリアス

An SMTP-capable host SHOULD support both the alias and the list models of address expansion for multiple delivery. When a message is delivered or forwarded to each address of an expanded list form, the return address in the envelope ("MAIL FROM:") MUST be changed to be the address of a person or other entity who administers the list. However, in this case, the message header section (RFC 5322 [4]) MUST be left unchanged; in particular, the "From" field of the header section is unaffected. SMTP 能力を持つホストは、複数配送のためのエイリアスとリストモデルとによるアドレス展開を両方サポートするべきである(SHOULD)。展開されたリストの各アドレスにメッセージが配送または転送されるとき、エンベロープ内のリターンアドレス("MAIL FROM:")は、そのリストを管理する人物または団体のアドレスに変更されなければならない(MUST)。しかしながらその場合、メッセージのヘッダセクション(RFC 5322 [4])は変更されてはならない(MUST)。特にヘッダの "From" フィールドは影響を受けてはならない。

An important mail facility is a mechanism for multi-destination delivery of a single message, by transforming (or "expanding" or "exploding") a pseudo-mailbox address into a list of destination mailbox addresses. When a message is sent to such a pseudo-mailbox (sometimes called an "exploder"), copies are forwarded or redistributed to each mailbox in the expanded list. Servers SHOULD simply utilize the addresses on the list; application of heuristics or other matching rules to eliminate some addresses, such as that of the originator, is strongly discouraged. We classify such a pseudo- mailbox as an "alias" or a "list", depending upon the expansion rules. 重要なメール機能は、仮想メールボックスアドレスを宛先メールボックスアドレスのリストに変換(または "展開(expanding)" または "拡大(exploding)")することにより、単独のメッセージを複数の宛先に配送するメカニズムである。そのような仮想メールボックス(時に "エクスプローダ(exploder)" と呼ばれる)にメッセージが送られたとき、展開されたリスト内の各メールボックスにそのコピーが転送または再配送される。サーバーはリスト上のアドレスを単純に使用するべきである(SHOULD)。一部のアドレス(例えば発信者のアドレス)を削除するために発見的または他のマッチング規則を適用することは、まったく推奨されない。私たちはそのような仮想メールボックスをその展開規則に基づいて、"エイリアス(alias)" または "リスト(list)" と分類する。

3.9.1. Alias 3.9.1. エイリアス

To expand an alias, the recipient mailer simply replaces the pseudo- mailbox address in the envelope with each of the expanded addresses in turn; the rest of the envelope and the message body are left unchanged. The message is then delivered or forwarded to each expanded address. エイリアスを展開するために、受信メーラーはエンベロープ内の仮想メールボックスアドレスを展開された各アドレスへと順々に単純に置き換える。エンベロープの残りとメッセージボディは変更されない。その後メッセージは、展開された各アドレスに配送または転送される。

3.9.2. List 3.9.2. リスト

A mailing list may be said to operate by "redistribution" rather than by "forwarding". To expand a list, the recipient mailer replaces the pseudo-mailbox address in the envelope with each of the expanded addresses in turn. The return (backward-pointing) address in the envelope is changed so that all error messages generated by the final deliveries will be returned to a list administrator, not to the message originator, who generally has no control over the contents of the list and will typically find error messages annoying. Note that the key difference between handling aliases (Section 3.9.1) and forwarding (this subsection) is the change to the backward-pointing address in this case. When a list constrains its processing to the very limited set of modifications and actions described here, it is attempting to emulate an MTA; such lists can be treated as a continuation in email transit. メーリングリストは、"転送(forwarding)" によってではなく、"再配送(redistribution)" によって動作すると考えられる。リストを展開するために、受信メーラーはエンベロープ内の仮想メールボックスアドレスを展開された各アドレスへと順に置き換える。最終配送者によって生成されるすべてのエラーメッセージが、メッセージ発信者(一般にリストの内容に関する制御権を持たず、通常はエラーメッセージに迷惑するだろう)ではなくリスト管理者に返されるように、エンベロープ内のリターンアドレス(後方指示アドレス(backward-pointing address))が変更される。 エイリアス(セクション 3.9.1)と転送(本サブセクション)との間の重要な違いが後方指示アドレスの変更であることに注意してほしい。リストがここで説明されている変更と動作とのごく限られた集合に処理を制限する場合、それは MTA のエミュレートを試みている。そのようなリストは、メール送信における継続として扱うことができる。

There exist mailing lists that perform additional, sometimes extensive, modifications to a message and its envelope. Such mailing lists need to be viewed as full MUAs, which accept a delivery and post a new message. メッセージとそのエンベロープとに追加の(時に拡張の)修正を行うメーリングリスが存在する。そのようなメーリングリストは、配送を受け入れ新しいメッセージを投稿する完全な MUA と見なす必要がある。

4. The SMTP Specifications 4. SMTP 仕様

4.1. SMTP Commands 4.1. SMTP コマンド

4.1.1. Command Semantics and Syntax 4.1.1. コマンドの動作と構文

The SMTP commands define the mail transfer or the mail system function requested by the user. SMTP commands are character strings terminated by <CRLF>. The commands themselves are alphabetic characters terminated by <SP> if parameters follow and <CRLF> otherwise. (In the interest of improved interoperability, SMTP receivers SHOULD tolerate trailing white space before the terminating <CRLF>.) The syntax of the local part of a mailbox MUST conform to receiver site conventions and the syntax specified in Section 4.1.2. The SMTP commands are discussed below. The SMTP replies are discussed in Section 4.2. SMTP コマンドは、ユーザーによってリクエストされるメールの送信、またはメールシステム機能を決定する。SMTP コマンドは <CRLF> で終了する文字列である。コマンド自体は、パラメータが続く場合は <SP> で終了し、そうでない場合は <CRLF> で終了するアルファベット文字群である(相互運用性の改善のために、SMTP 受信者は終端の <CRLF> の前の空白文字を許容するべきである(SHOULD))。 メールボックスのローカル部の構文は、受信側サイトの慣例と、セクション 4.1.2 で規定されている構文とに従わなければならない(MUST)。SMTP リプライはセクション 4.2 で議論されている。

A mail transaction involves several data objects that are communicated as arguments to different commands. The reverse-path is the argument of the MAIL command, the forward-path is the argument of the RCPT command, and the mail data is the argument of the DATA command. These arguments or data objects must be transmitted and held, pending the confirmation communicated by the end of mail data indication that finalizes the transaction. The model for this is that distinct buffers are provided to hold the types of data objects; that is, there is a reverse-path buffer, a forward-path buffer, and a mail data buffer. Specific commands cause information to be appended to a specific buffer, or cause one or more buffers to be cleared. メールトランザクションは、別のコマンドへの引数として伝えられるいくつかのデータオブジェクトを含む。reverse-path は MAIL コマンドの引数であり、forward-path は RCPT コマンドの引数であり、メールデータは DATA コマンドの引数である。これらの引数またはデータオブジェクトは転送され、トランザクションを終了させるメールデータ終了指示によって伝えられる確認まで保持されなければならない。そのためのモデルは、各種のデータオブジェクトを保持する独立したバッファ、つまり、reverse-path バッファ、forward-path バッファ、メールデータバッファが提供されるというものである。特定のコマンドが特定のバッファへ情報を追加したり、ひとつまたは複数のバッファをクリアしたりする。

Several commands (RSET, DATA, QUIT) are specified as not permitting parameters. In the absence of specific extensions offered by the server and accepted by the client, clients MUST NOT send such parameters and servers SHOULD reject commands containing them as having invalid syntax. 一部のコマンド(RSET、DATA、QUIT)は、パラメータを許されないものとして規定される。サーバーによって提案されクライアントによって受け入れられた特定の拡張がない場合、クライアントはそのようなパラメータを送信してはならず(MUST NOT)、サーバーはそれらを無効な構文として拒否するべきである(SHOULD)。

4.1.1.1. Extended HELLO (EHLO) or HELLO (HELO) 4.1.1.1 拡張 HELLO(EHLO) または HELLO(HELO)

These commands are used to identify the SMTP client to the SMTP server. The argument clause contains the fully-qualified domain name of the SMTP client, if one is available. In situations in which the SMTP client system does not have a meaningful domain name (e.g., when its address is dynamically allocated and no reverse mapping record is available), the client SHOULD send an address literal (see Section 4.1.3). これらのコマンドは、SMTP サーバーに対して SMTP クライアントを特定するために使用される。引数節は、(利用可能であれば)SMTP クライアントの完全限定ドメイン名が含まれる。SMTP クライアントシステムが意味のあるドメイン名を持たない場合(例えばクライアントのアドレスが動的に割り当てられ、逆引きレコードを利用できない場合)、クライアントはアドレスリテラル(セクション 4.1.3 参照)を送信するべきである(SHOULD)。

RFC 2821, and some earlier informal practices, encouraged following the literal by information that would help to identify the client system. That convention was not widely supported, and many SMTP servers considered it an error. In the interest of interoperability, it is probably wise for servers to be prepared for this string to occur, but SMTP clients SHOULD NOT send it. RFC 2821 (およびいくつかの非公式の習慣)は、クライアントシステムを識別する手助けとなる情報のリテラルを続けるよう推奨した。この習慣は広くサポートされているわけではなく、多くの SMTP サーバーはそれをエラーと見なす。相互運用性のためには、サーバーはそのような文字列が現れることに備えるのが懸命だろう。しかし、SMTP クライアントはそれを送信しないべきである(SHOULD NOT)。

The SMTP server identifies itself to the SMTP client in the connection greeting reply and in the response to this command. SMTP サーバーは接続グリーティングリプライとこのコマンドへの応答とにおいて、自身を SMTP クライアントに識別させる。

A client SMTP SHOULD start an SMTP session by issuing the EHLO command. If the SMTP server supports the SMTP service extensions, it will give a successful response, a failure response, or an error response. If the SMTP server, in violation of this specification, does not support any SMTP service extensions, it will generate an error response. Older client SMTP systems MAY, as discussed above, use HELO (as specified in RFC 821) instead of EHLO, and servers MUST support the HELO command and reply properly to it. In any event, a client MUST issue HELO or EHLO before starting a mail transaction. SMTP クライアントは、EHLO コマンドを発行することで SMTP セッションを開始するべきである(SHOULD)。SMTP サーバーが SMTP サービス拡張をサポートしていれば、成功応答、失敗応答、またはエラー応答を返すだろう。SMTP サーバーが(本仕様に違反して)SMTP サービス拡張をサポートしない場合、エラー応答を返すだろう。古いクライアント SMTP システムは(先に議論したように)、EHLO ではなく HELO (RFC 821 において規定されている)を使用してもよい(MAY)。いずれにしてもクライアントは、メールトランザクションを開始する前に HELO または EHLO を発行しなければならない(MUST)。

These commands, and a "250 OK" reply to one of them, confirm that both the SMTP client and the SMTP server are in the initial state, that is, there is no transaction in progress and all state tables and buffers are cleared. これらのコマンド、およびそのどちらかに対する "250 OK" リプライは、SMTP クライアントと SMTP サーバーとが初期状態にあること、つまり進行中のトランザクションがなく、すべての状態テーブルとバッファとがクリアされていることを確認する。

   Syntax:

   ehlo           = "EHLO" SP ( Domain / address-literal ) CRLF

   helo           = "HELO" SP Domain CRLF
   構文:

   ehlo           = "EHLO" SP ( Domain / address-literal ) CRLF

   helo           = "HELO" SP Domain CRLF

Normally, the response to EHLO will be a multiline reply. Each line of the response contains a keyword and, optionally, one or more parameters. Following the normal syntax for multiline replies, these keywords follow the code (250) and a hyphen for all but the last line, and the code and a space for the last line. The syntax for a positive response, using the ABNF notation and terminal symbols of RFC 5234 [7], is: 通常、EHLO に対する応答は複数行のリプライになる。応答の各行はひとつのキーワードと、オプションでひとつ以上のパラメータとを含む。複数行応答のための通常の構文に従い、これらのキーワードは、最終行以外ではコード(250)とハイフン、最終行ではコードと空白 1 文字との後に続く。ABNF 記法と RFC 5234 [7] の終端記号とを使用した肯定応答のための構文は次の通り:

   ehlo-ok-rsp    = ( "250" SP Domain [ SP ehlo-greet ] CRLF )
                    / ( "250-" Domain [ SP ehlo-greet ] CRLF
                    *( "250-" ehlo-line CRLF )
                    "250" SP ehlo-line CRLF )

   ehlo-greet     = 1*(%d0-9 / %d11-12 / %d14-127)
                    ; string of any characters other than CR or LF

   ehlo-line      = ehlo-keyword *( SP ehlo-param )

   ehlo-keyword   = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
                    ; additional syntax of ehlo-params depends on
                    ; ehlo-keyword

   ehlo-param     = 1*(%d33-126)
                    ; any CHAR excluding <SP> and all
                    ; control characters (US-ASCII 0-31 and 127
                    ; inclusive)
   ehlo-ok-rsp    = ( "250" SP Domain [ SP ehlo-greet ] CRLF )
                    / ( "250-" Domain [ SP ehlo-greet ] CRLF
                    *( "250-" ehlo-line CRLF )
                    "250" SP ehlo-line CRLF )

   ehlo-greet     = 1*(%d0-9 / %d11-12 / %d14-127)
                    ; CR または LF 以外の文字から成る文字列

   ehlo-line      = ehlo-keyword *( SP ehlo-param )

   ehlo-keyword   = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")
                    ; ehlo-keyword に依存する ehlo-params の追加構文

   ehlo-param     = 1*(%d33-126)
                    ; <SP> とすべての制御文字(US-ASCII 0-31 および
                    ; 127 を含む)とを除く任意の CHAR

Although EHLO keywords may be specified in upper, lower, or mixed case, they MUST always be recognized and processed in a case- insensitive manner. This is simply an extension of practices specified in RFC 821 and Section 2.4. EHLO キーワードは大文字、小文字、または大文字・小文字の混合で指定されてよいが、それらは常に大文字・小文字を区別しない方法で認識され、処理されなければならない(MUST)。これは、RFC 821 およびセクション 2.4 で規定されている慣例の単純な拡張である。

The EHLO response MUST contain keywords (and associated parameters if required) for all commands not listed as "required" in Section 4.5.1 excepting only private-use commands as described in Section 4.1.5. Private-use commands MAY be listed. EHLO の応答は、セクション 4.1.5 で説明されているプライベート用途のコマンドを除き、セクション 4.5.1 で "必須(required)" としてリストされていないすべてのコマンドのためのキーワード(および必要であれば対応するパラメータ)を含まなければならない(MUST)。プライベート用途のコマンドが含まれてもよい(MAY)。

4.1.1.2. MAIL (MAIL) 4.1.1.2. MAIL (MAIL)

This command is used to initiate a mail transaction in which the mail data is delivered to an SMTP server that may, in turn, deliver it to one or more mailboxes or pass it on to another system (possibly using SMTP). The argument clause contains a reverse-path and may contain optional parameters. In general, the MAIL command may be sent only when no mail transaction is in progress, see Section 4.1.4. このコマンドは、メールデータが SMTP サーバーへと配送されるメールトランザクションを開始するために使用される。次にサーバーはそれをひとつまたは複数のメールボックスに配送するか、(おそらく SMTP を使用して)別のシステムに引き渡す。引数は reverse-path を含み、オプションのパラメータを含んでもよい。一般に MAIL コマンドは、メールトランザクションが進行中でない場合にのみ送信してよい(セクション 4.1.4 参照)。

The reverse-path consists of the sender mailbox. Historically, that mailbox might optionally have been preceded by a list of hosts, but that behavior is now deprecated (see Appendix C). In some types of reporting messages for which a reply is likely to cause a mail loop (for example, mail delivery and non-delivery notifications), the reverse-path may be null (see Section 3.6). reverse-path は送信者のメールボックスを含む。歴史的には、このメールボックスの前にオプションでホストのリストが置かれてもよかったが、現在ではその振る舞いは推奨されない(付録 C 参照)。リプライがメールのループを引き起こす可能性のある一部のレポートメッセージにおいては、reverse-path が空であってもよい(セクション 3.6 参照)。

This command clears the reverse-path buffer, the forward-path buffer, and the mail data buffer, and it inserts the reverse-path information from its argument clause into the reverse-path buffer. このコマンドは、reverse-path バッファ・forward-path バッファ・メールデータバッファをクリアし、引数の reverse-path 情報を reverse-path バッファに挿入する。

If service extensions were negotiated, the MAIL command may also carry parameters associated with a particular service extension. サービス拡張が交渉されている場合、MAIL コマンドは特定のサービス拡張に関連するパラメータを伝えてもよい。

   Syntax:

   mail = "MAIL FROM:" Reverse-path
                                       [SP Mail-parameters] CRLF
   構文:

   mail = "MAIL FROM:" Reverse-path
                                       [SP Mail-parameters] CRLF
4.1.1.3. RECIPIENT (RCPT) 4.1.1.3. RECIPIENT (RCPT)

This command is used to identify an individual recipient of the mail data; multiple recipients are specified by multiple uses of this command. The argument clause contains a forward-path and may contain optional parameters. このコマンドはメールデータの各受信者を特定するために使用される。複数の受信者はこのコマンドを複数使用することで指定される。引数は forward-path を含み、オプションのパラメータを含んでもよい。

The forward-path normally consists of the required destination mailbox. Sending systems SHOULD NOT generate the optional list of hosts known as a source route. Receiving systems MUST recognize source route syntax but SHOULD strip off the source route specification and utilize the domain name associated with the mailbox as if the source route had not been provided. 通常 forward-path は、必須の宛先メールボックスから構成される。送信側システムは、ソースルートとして知られるオプションのホストのリストを生成するべきではない(SHOULD NOT)。受信側システムはソースルートの構文を認識しなければならない(MUST)が、ソースルートの指定を取り除き、ソースルートが与えられていなかったかのように、メールボックスに関連するドメイン名を使用するべきである(SHOULD)。

Similarly, relay hosts SHOULD strip or ignore source routes, and names MUST NOT be copied into the reverse-path. When mail reaches its ultimate destination (the forward-path contains only a destination mailbox), the SMTP server inserts it into the destination mailbox in accordance with its host mail conventions. 同様にリレーホストもソースルートを取り除くか無視するべき(SHOULD)であり、複数の名前が reverse-path にコピーされてはならない(MUST NOT)。メールが最終宛先に到達した(forward-path が宛先メールボックスのみを含む)とき、SMTP サーバーはそのメールを、そのホストのメールの習慣に従って宛先メールボックスに挿入する。

This command appends its forward-path argument to the forward-path buffer; it does not change the reverse-path buffer nor the mail data buffer. このコマンドは forward-path 引数を forward-path バッファに追加する。reverse-path バッファおよびメールデータバッファは変更しない。

For example, mail received at relay host xyz.com with envelope commands 例えば、リレーホスト xyz.com で受信された次のエンベロープコマンドを持つメールコマンドは、

      MAIL FROM:<userx@y.foo.org>
      RCPT TO:<@hosta.int,@jkl.org:userc@d.bar.org>

will normally be sent directly on to host d.bar.org with envelope commands 通常、次のエンベロープコマンドによりホスト d.bar.org に直接送信されるだろう。

      MAIL FROM:<userx@y.foo.org>
      RCPT TO:<userc@d.bar.org>

As provided in Appendix C, xyz.com MAY also choose to relay the message to hosta.int, using the envelope commands 付録 C に示されているように、xyz.com は次のエンベロープコマンドを使用してこのメッセージを hosta.int にリレーすることを選択してもよい(MAY)。

      MAIL FROM:<userx@y.foo.org>
      RCPT TO:<@hosta.int,@jkl.org:userc@d.bar.org>

or to jkl.org, using the envelope commands または次のエンベロープコマンドを使用して kl.org にリレーしてもよい(MAY)。

      MAIL FROM:<userx@y.foo.org>
      RCPT TO:<@jkl.org:userc@d.bar.org>

Attempting to use relaying this way is now strongly discouraged. Since hosts are not required to relay mail at all, xyz.com MAY also reject the message entirely when the RCPT command is received, using a 550 code (since this is a "policy reason"). 現在、このような方法でリレーを試みることは強く推奨されない。ホストはメールをリレーする必要がまったくないため、この RCPT コマンドを受け取ったとき、xyz.com はコード 550 ("ポリシーを理由に(policy reason)" であるため)を使用してメッセージを完全に拒否してもよい(MAY)。

If service extensions were negotiated, the RCPT command may also carry parameters associated with a particular service extension offered by the server. The client MUST NOT transmit parameters other than those associated with a service extension offered by the server in its EHLO response. サービス拡張が交渉されている場合、RCPT コマンドはサーバーによって提供される特定のサービス拡張に関連するパラメータを伝えてもよい。クライアントは、EHLO 応答においてサーバーにより提供されたサービス拡張に関連するもの以外のパラメータを送信してはならない(MUST NOT)。

   Syntax:

      rcpt = "RCPT TO:" ( "<Postmaster@" Domain ">" / "<Postmaster>" /
                  Forward-path ) [SP Rcpt-parameters] CRLF

                  Note that, in a departure from the usual rules for
                  local-parts, the "Postmaster" string shown above is
                  treated as case-insensitive.
   構文:

      rcpt = "RCPT TO:" ( "<Postmaster@" Domain ">" / "<Postmaster>" /
                  Forward-path ) [SP Rcpt-parameters] CRLF

                  local-parts のための規則とは違い、上記の文字列
                  "Postmaster" は大文字・小文字を区別せずに扱われる
                  ことに注意してほしい。 
4.1.1.4. DATA (DATA) 4.1.1.4. DATA (DATA)

The receiver normally sends a 354 response to DATA, and then treats the lines (strings ending in <CRLF> sequences, as described in Section 2.3.7) following the command as mail data from the sender. This command causes the mail data to be appended to the mail data buffer. The mail data may contain any of the 128 ASCII character codes, although experience has indicated that use of control characters other than SP, HT, CR, and LF may cause problems and SHOULD be avoided when possible. 受信側は通常 DATA に対して 354 応答を送信し、コマンドに続く行(セクション 2.3.7 で定義されている <CRLF> のシーケンスで終了する文字列)を、送信者からのメールデータとして扱う。このコマンドによりメールデータはメールデータバッファに追加される。メールデータには 128 の ASCII 文字コードの何れかを含むことが許されるが、経験的に SP・HT・CR・LF 以外の制御文字は問題を起こす場合があることが知られているため、可能であれば避けるべきである(SHOULD)。

The mail data are terminated by a line containing only a period, that is, the character sequence "<CRLF>.<CRLF>", where the first <CRLF> is actually the terminator of the previous line (see Section 4.5.2). This is the end of mail data indication. The first <CRLF> of this terminating sequence is also the <CRLF> that ends the final line of the data (message text) or, if there was no mail data, ends the DATA command itself (the "no mail data" case does not conform to this specification since it would require that neither the trace header fields required by this specification nor the message header section required by RFC 5322 [4] be transmitted). An extra <CRLF> MUST NOT be added, as that would cause an empty line to be added to the message. The only exception to this rule would arise if the message body were passed to the originating SMTP-sender with a final "line" that did not end in <CRLF>; in that case, the originating SMTP system MUST either reject the message as invalid or add <CRLF> in order to have the receiving SMTP server recognize the "end of data" condition. メールデータはピリオドのみを含む行、つまり文字シーケンス "<CRLF>.<CRLF>" (最初の <CRLF> は実際には前の行の終端である)で終了する(セクション 4.5.2 参照)。これはメールデータの終了を表す。この終了シーケンスの最初の <CRLF> は、データ(メッセージテキスト)の最終行を終了させる <CRLF> でもあり、メールデータが存在しない場合には DATA コマンド自体を終了させる <CRLF> でもある(本仕様の要求するトレースフィールドと RFC 5322 [4] の要求するメッセージヘッダセクションとが転送されることは必須であるため、"メールデータなし(no mail data)") というケースは本仕様に適合しない)。メッセージに空行を追加してしまうため、余分な <CRLF> を追加してはならない(MUST NOT)。この規則の唯一の例外は、<CRLF> で終了しない最終行を持つメッセージボディが発信側 SMTP-sender に渡された場合に発生する。その場合、発信側 SMTP システムは、そのメッセージを無効として拒否するか、受信側 SMTP サーバーが "データの終了(end of data)" 条件を認識できるように、<CRLF> を付加しなければならない(MUST)。

The custom of accepting lines ending only in <LF>, as a concession to non-conforming behavior on the part of some UNIX systems, has proven to cause more interoperability problems than it solves, and SMTP server systems MUST NOT do this, even in the name of improved robustness. In particular, the sequence "<LF>.<LF>" (bare line feeds, without carriage returns) MUST NOT be treated as equivalent to <CRLF>.<CRLF> as the end of mail data indication. <LF> のみで終了する行を受け入れる習慣(一部の UNIX システムの非標準の動作に対する特別の譲歩)は、それが解決するよりも多くの相互運用性の問題を引き起こすことが証明されている。SMTP サーバーシステムは、たとえ堅牢性の改善という名目でも、これを行ってはならない(MUST NOT)。具体的に言うと、"<LF>.<LF>" (キャリッジリターンのない、ただのラインフィード)というシーケンスは、メールデータの終了条件としての <CRLF>.<CRLF> と同等に扱われてはならない(MUST NOT)。

Receipt of the end of mail data indication requires the server to process the stored mail transaction information. This processing consumes the information in the reverse-path buffer, the forward-path buffer, and the mail data buffer, and on the completion of this command these buffers are cleared. If the processing is successful, the receiver MUST send an OK reply. If the processing fails, the receiver MUST send a failure reply. The SMTP model does not allow for partial failures at this point: either the message is accepted by the server for delivery and a positive response is returned or it is not accepted and a failure reply is returned. In sending a positive "250 OK" completion reply to the end of data indication, the receiver takes full responsibility for the message (see Section 6.1). Errors that are diagnosed subsequently MUST be reported in a mail message, as discussed in Section 4.4. メールデータ終了指示の受信は、保存されたメールトランザクション情報の処理をサーバーに要求する。この処理は reverse-path バッファ・forward-path バッファ・メールデータバッファ内の情報を消費し、このコマンドの完了時、これらのバッファはクリアされる。処理に成功した場合、受信者は OK リプライを送信しなければならない(MUST)。処理に失敗した場合、受信者は失敗リプライを送信しなければならない(MUST)。SMTP モデルはこの時点での部分的な失敗を許可しない。メッセージがサーバーによって受け入れられ肯定応答が返されるか、受け入れられずに失敗リプライが返されるか、どちらかである。データ終了指示に対して肯定の "250 OK" 完了リプライを送信すると、受信者はそのメッセージに完全な責任を持つ(セクション 6.1 参照)。それ以降に診断されたエラーは、メールメッセージで報告されなければならない(MUST)(セクション 4.4 で議論されている通り)。

When the SMTP server accepts a message either for relaying or for final delivery, it inserts a trace record (also referred to interchangeably as a "time stamp line" or "Received" line) at the top of the mail data. This trace record indicates the identity of the host that sent the message, the identity of the host that received the message (and is inserting this time stamp), and the date and time the message was received. Relayed messages will have multiple time stamp lines. Details for formation of these lines, including their syntax, is specified in Section 4.4. SMTP サーバーがリレーまたは配送のためにメッセージを受け入れたとき、サーバーはそのメールデータの先頭にトレースレコード("タイムスタンプ行(time stamp line)"、あるいは "Received" 行とも言われる)を挿入する。このトレースレコードは、メッセージを送信したホストの身元、メッセージを受信した(そしてこのタイムスタンプを挿入する)ホストの身元、メッセージが受信された日付と時刻とを表す。リレーされたメッセージは複数のタイムスタンプ行を持つことになる。これらの行の情報の詳細(構文を含む)はセクション 4.4 で規定されている。

Additional discussion about the operation of the DATA command appears in Section 3.3. DATA コマンドの動作に関する追加の議論はセクション 3.3 に見られる。

   Syntax:

      data = "DATA" CRLF
   構文:

      data = "DATA" CRLF
4.1.1.5. RESET (RSET) 4.1.1.5. RESET (RSET)

This command specifies that the current mail transaction will be aborted. Any stored sender, recipients, and mail data MUST be discarded, and all buffers and state tables cleared. The receiver MUST send a "250 OK" reply to a RSET command with no arguments. A reset command may be issued by the client at any time. It is effectively equivalent to a NOOP (i.e., it has no effect) if issued immediately after EHLO, before EHLO is issued in the session, after an end of data indicator has been sent and acknowledged, or immediately before a QUIT. An SMTP server MUST NOT close the connection as the result of receiving a RSET; that action is reserved for QUIT (see Section 4.1.1.10). このコマンドは現在のメールトランザクションの中止を指示する。保存されている送信者、受信者、メールデータはすべて破棄され、すべてのバッファと状態テーブルはクリアされなければならない(MUST)。受信者は引数を持たない RSET に対して "250 OK" リプライを送信しなければならない(MUST)。リセットコマンドはクライアントによっていつ発行されてもよい。EHLO の直後やセッション中に EHLO が発行される前、またメールデータ終了指示が送信され承認された後や QUIT の直前では、これは NOOP と同じ効果を持つ(つまり何の効果もない)。SMTP サーバーは RSET を受信した結果として接続を終了してはならない(MUST NOT)。その動作は QUIT (セクション 4.1.1.10 参照)のために予約されている。

Since EHLO implies some additional processing and response by the server, RSET will normally be more efficient than reissuing that command, even though the formal semantics are the same. EHLO はサーバーに追加の処理と応答とを課すため、形式上の動作は同じだとしても、RSET は EHLO コマンドの再発行より効率的である。

There are circumstances, contrary to the intent of this specification, in which an SMTP server may receive an indication that the underlying TCP connection has been closed or reset. To preserve the robustness of the mail system, SMTP servers SHOULD be prepared for this condition and SHOULD treat it as if a QUIT had been received before the connection disappeared. 本仕様の意図に反して、SMTP サーバーが下層の TCP 接続が閉じられたかリセットされた兆候を受け取る状況があり得る。メールシステムの堅牢性を保つために、SMTP サーバーはこのような状況に備えるべきであり(SHOULD)、接続が閉じられる前に QUIT を受信したかのように扱うべきである(SHOULD)。

   Syntax:

      rset = "RSET" CRLF
   構文:

      rset = "RSET" CRLF
4.1.1.6. VERIFY (VRFY) 4.1.1.6. VERIFY (VRFY)

This command asks the receiver to confirm that the argument identifies a user or mailbox. If it is a user name, information is returned as specified in Section 3.5. このコマンドは、引数がユーザーまたはメールボックスを表すかどうかの確認を受信者に求める。ユーザー名の場合、情報はセクション 3.5 で規定されている通りに返される。

This command has no effect on the reverse-path buffer, the forward- path buffer, or the mail data buffer. このコマンドは、reverse-path バッファ・forward-path バッファ・メールデータバッファに影響を与えない。

   Syntax:

      vrfy = "VRFY" SP String CRLF
   構文:

      vrfy = "VRFY" SP String CRLF
4.1.1.7. EXPAND (EXPN) 4.1.1.7. EXPAND (EXPN)

This command asks the receiver to confirm that the argument identifies a mailing list, and if so, to return the membership of that list. If the command is successful, a reply is returned containing information as described in Section 3.5. This reply will have multiple lines except in the trivial case of a one-member list. このコマンドは、引数がメーリングリストを表すかどうかの確認と、もしそうであればそのリストのメンバーを返すよう受信者に求める。このコマンドが成功すると、セクション 3.5 で説明されている情報を含むリプライが返される。メンバーが一人だけのリストというまれな場合を除き、このリプライは複数行を返すだろう。

This command has no effect on the reverse-path buffer, the forward- path buffer, or the mail data buffer, and it may be issued at any time. このコマンドは reverse-path バッファ・forward-path バッファ・メールデータバッファに影響を与えず、またいつ発行されもよい。

   Syntax:

      expn = "EXPN" SP String CRLF
   構文:

      expn = "EXPN" SP String CRLF
4.1.1.8. HELP (HELP) 4.1.1.8. HELP (HELP)

This command causes the server to send helpful information to the client. The command MAY take an argument (e.g., any command name) and return more specific information as a response. このコマンドによりサーバーはクライアントに役立つ情報を送信する。このコマンドは引数(例えばコマンド名)を取り、応答としてより詳細な情報を返してもよい(MAY)。

This command has no effect on the reverse-path buffer, the forward- path buffer, or the mail data buffer, and it may be issued at any time. このコマンドは reverse-path バッファ・forward-path バッファ・メールデータバッファに影響を与えず、またいつ発行されもよい。

SMTP servers SHOULD support HELP without arguments and MAY support it with arguments. SMTP サーバーは引数なしの HELP をサポートするべき(SHOULD)であり、引数ありの HELP をサポートしてもよい(MAY)。

   Syntax:

      help = "HELP" [ SP String ] CRLF
   構文:

      help = "HELP" [ SP String ] CRLF
4.1.1.9. NOOP (NOOP) 4.1.1.9. NOOP (NOOP)

This command does not affect any parameters or previously entered commands. It specifies no action other than that the receiver send a "250 OK" reply. このコマンドはパラメータや以前に入力されたコマンドに何の影響も与えない。受信者が "250 OK" リプライを返す以外の動作は規定されていない。

This command has no effect on the reverse-path buffer, the forward- path buffer, or the mail data buffer, and it may be issued at any time. If a parameter string is specified, servers SHOULD ignore it. このコマンドは reverse-path バッファ・forward-path バッファ・メールデータバッファに影響を与えず、またいつ発行されもよい。パラメータ文字列が指定されている場合、サーバーはそれを無視するべきである(SHOULD)。

   Syntax:

      noop = "NOOP" [ SP String ] CRLF
   構文:

      noop = "NOOP" [ SP String ] CRLF
4.1.1.10. QUIT (QUIT) 4.1.1.10. QUIT (QUIT)

This command specifies that the receiver MUST send a "221 OK" reply, and then close the transmission channel. このコマンドは受信者に、"221 OK" リプライを送信し、その後通信チャネルを閉じなければならない(MUST)ことを指示する。

The receiver MUST NOT intentionally close the transmission channel until it receives and replies to a QUIT command (even if there was an error). The sender MUST NOT intentionally close the transmission channel until it sends a QUIT command, and it SHOULD wait until it receives the reply (even if there was an error response to a previous command). If the connection is closed prematurely due to violations of the above or system or network failure, the server MUST cancel any pending transaction, but not undo any previously completed transaction, and generally MUST act as if the command or transaction in progress had received a temporary error (i.e., a 4yz response). QUIT コマンドを受信し、(たとえエラーがあったとしても)それに応答しない限り、受信者は故意に通信チャネルを閉じてはならない(MUST NOT)。QUIT コマンドを送信しない限り、送信者は故意に通信チャネルを閉じてはならず(MUST NOT)、(たとえ以前のコマンドにエラー応答があったとしても)リプライの受信を待つべきである(SHOULD)。上記の違反、またはシステム障害、ネットワーク障害により途中で接続が閉じられた場合、サーバーは保留中のトランザクションをすべてキャンセルしなければならない(MUST)が、完了したトランザクションを取り消してはならず(MUST)、また一般に、進行中のコマンドまたはトランザクションが一時エラー(つまり 4yz 応答)を受信したかのように振る舞わなければならない(MUST)。

The QUIT command may be issued at any time. Any current uncompleted mail transaction will be aborted. QUIT コマンドはいつ発行されもよい。進行中の未完了のすべてのメールトランザクションは中止される。

   Syntax:

      quit = "QUIT" CRLF
   構文:

      quit = "QUIT" CRLF
4.1.1.11. Mail-Parameter and Rcpt-Parameter Error Responses 4.1.1.11. Mail-Parameter および Rcpt-Parameter エラー応答

If the server SMTP does not recognize or cannot implement one or more of the parameters associated with a particular MAIL FROM or RCPT TO command, it will return code 555. 特定の MAIL FROM コマンドまたは RCPT TO コマンドに関連するひとつ以上のパラメータをサーバー SMTP が認識しないか実装できない場合、コード 555 を返すだろう。

If, for some reason, the server is temporarily unable to accommodate one or more of the parameters associated with a MAIL FROM or RCPT TO command, and if the definition of the specific parameter does not mandate the use of another code, it should return code 455. 何らかの理由で MAIL FROM コマンドまたは RCPT TO コマンドに関連するパラメータのひとつまたは複数にサーバーが一時的に対応できず、かつ特定のパラメータの定義が別のコードの使用を強制しない場合、コード 455 を返すべきである。

Errors specific to particular parameters and their values will be specified in the parameter's defining RFC. 特定のパラメータに固有のエラーとその値とは、そのパラメータを定義する RFC において定義されるだろう。

4.1.2. Command Argument Syntax 4.1.2. コマンド引数の構文

The syntax of the argument clauses of the above commands (using the syntax specified in RFC 5234 [7] where applicable) is given below. Some of the productions given below are used only in conjunction with source routes as described in Appendix C. Terminals not defined in this document, such as ALPHA, DIGIT, SP, CR, LF, CRLF, are as defined in the "core" syntax in Section 6 of RFC 5234 [7] or in the message format syntax in RFC 5322 [4]. 前述のコマンドの引数節の構文を以下に示す(可能な場合には RFC 5234 [7] で規定されている構文を使用している)。以下に示す生成結果の一部は、付録 C で説明されているソースルートに連動してのみ使用される。この文書で定義されない端子、例えば ALPHA、DIGIT、SP、CR、LF、CRLF などは、RFC 5234 [7] のセクション 6 の "コア(core)" 構文、または RFC 5322 [4] のメッセージフォーマット構文において定義されている。

   Reverse-path   = Path / "<>"

   Forward-path   = Path

   Path           = "<" [ A-d-l ":" ] Mailbox ">"

   A-d-l          = At-domain *( "," At-domain )
                  ; Note that this form, the so-called "source
                  ; route", MUST BE accepted, SHOULD NOT be
                  ; generated, and SHOULD be ignored.

   At-domain      = "@" Domain

   Mail-parameters  = esmtp-param *(SP esmtp-param)

   Rcpt-parameters  = esmtp-param *(SP esmtp-param)

   esmtp-param    = esmtp-keyword ["=" esmtp-value]

   esmtp-keyword  = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")

   esmtp-value    = 1*(%d33-60 / %d62-126)
                  ; any CHAR excluding "=", SP, and control
                  ; characters.  If this string is an email address,
                  ; i.e., a Mailbox, then the "xtext" syntax [32]
                  ; SHOULD be used.

   Keyword        = Ldh-str

   Argument       = Atom

   Domain         = sub-domain *("." sub-domain)

   sub-domain     = Let-dig [Ldh-str]

   Let-dig        = ALPHA / DIGIT

   Ldh-str        = *( ALPHA / DIGIT / "-" ) Let-dig

   address-literal  = "[" ( IPv4-address-literal /
                    IPv6-address-literal /
                    General-address-literal ) "]"
                    ; See Section 4.1.3

   Mailbox        = Local-part "@" ( Domain / address-literal )

   Local-part     = Dot-string / Quoted-string
                  ; MAY be case-sensitive


   Dot-string     = Atom *("."  Atom)

   Atom           = 1*atext

   Quoted-string  = DQUOTE *QcontentSMTP DQUOTE

   QcontentSMTP   = qtextSMTP / quoted-pairSMTP

   quoted-pairSMTP  = %d92 %d32-126
                    ; i.e., backslash followed by any ASCII
                    ; graphic (including itself) or SPace

   qtextSMTP      = %d32-33 / %d35-91 / %d93-126
                  ; i.e., within a quoted string, any
                  ; ASCII graphic or space is permitted
                  ; without blackslash-quoting except
                  ; double-quote and the backslash itself.

   String         = Atom / Quoted-string
   Reverse-path   = Path / "<>"

   Forward-path   = Path

   Path           = "<" [ A-d-l ":" ] Mailbox ">"

   A-d-l          = At-domain *( "," At-domain )
                  ; この形式(いわゆる "ソースルート(source route)") は、
                  ; 受け入れられなければならず(MUST)、
                  ; 生成されるべきではなく(SHOULD)、
                  ; 無視されるべきである(SHOULD)。

   At-domain      = "@" Domain

   Mail-parameters  = esmtp-param *(SP esmtp-param)

   Rcpt-parameters  = esmtp-param *(SP esmtp-param)

   esmtp-param    = esmtp-keyword ["=" esmtp-value]

   esmtp-keyword  = (ALPHA / DIGIT) *(ALPHA / DIGIT / "-")

   esmtp-value    = 1*(%d33-60 / %d62-126)
                  ; "="・SP・制御文字を除く任意の CHAR
                  ; この文字列が電子メールアドレス(つまりメールボックス)
                  ; の場合、"xtext" 構文 [32] を使用するべきである
                  ; (SHOULD)。

   Keyword        = Ldh-str

   Argument       = Atom

   Domain         = sub-domain *("." sub-domain)

   sub-domain     = Let-dig [Ldh-str]

   Let-dig        = ALPHA / DIGIT

   Ldh-str        = *( ALPHA / DIGIT / "-" ) Let-dig

   address-literal  = "[" ( IPv4-address-literal /
                    IPv6-address-literal /
                    General-address-literal ) "]"
                    ; セクション 4.1.3 参照

   Mailbox        = Local-part "@" ( Domain / address-literal )

   Local-part     = Dot-string / Quoted-string
                  ; 大文字・小文字を区別しなくてもよい(MAY)


   Dot-string     = Atom *("."  Atom)

   Atom           = 1*atext

   Quoted-string  = DQUOTE *QcontentSMTP DQUOTE

   QcontentSMTP   = qtextSMTP / quoted-pairSMTP

   quoted-pairSMTP  = %d92 %d32-126
                    ; つまり、バックスラッシュに続けて任意の
                    ; ASCII グラフ(それ自身を含む)または空白(SP)

   qtextSMTP      = %d32-33 / %d35-91 / %d93-126
                  ; つまり、引用文字列内において二重引用符と
                  ; バックスラッシュ自体とを除く、バックスラッシュ
                  ; 引用のない任意の ASCII グラフまたは空白

   String         = Atom / Quoted-string

While the above definition for Local-part is relatively permissive, for maximum interoperability, a host that expects to receive mail SHOULD avoid defining mailboxes where the Local-part requires (or uses) the Quoted-string form or where the Local-part is case- sensitive. For any purposes that require generating or comparing Local-parts (e.g., to specific mailbox names), all quoted forms MUST be treated as equivalent, and the sending system SHOULD transmit the form that uses the minimum quoting possible. 上記の Local-part の定義は比較的寛容だが、最大限の相互運用性のために、メールの受信を期待するホストは、Local-part が Quoted-string 形式を必要とする(または使用する)メールボックス、または Local-part が大文字・小文字を区別するようなメールボックスの定義を避けるべきである(SHOULD)。Loca-part を生成または比較する必要のあるすべての目的(例えば具体的なメールボックス名)のためには、すべての引用形式は等価に扱われなければならず(MUST)、送信側システムは出来るだけ引用を最小限にした形式で送信するべきである(SHOULD)。

Systems MUST NOT define mailboxes in such a way as to require the use in SMTP of non-ASCII characters (octets with the high order bit set to one) or ASCII "control characters" (decimal value 0-31 and 127). These characters MUST NOT be used in MAIL or RCPT commands or other commands that require mailbox names. SMTP においてシステムは、非 ASCII 文字(最上位ビットが 1 のオクテット)、または ASCII の "制御文字(control characters)"(10 進数 0~31、および 127)を必要とするような方法でメールボックスを定義してはならない(MUST NOT)。MAIL コマンドや RCPT コマンド、またはメールボックスを必要とする他のコマンドにおいて、これらの文字を使用してはならない(MUST NOT)。

Note that the backslash, "\", is a quote character, which is used to indicate that the next character is to be used literally (instead of its normal interpretation). For example, "Joe\,Smith" indicates a single nine-character user name string with the comma being the fourth character of that string. バックスラッシュ("\")は引用文字であり、次の文字が(通常の解釈ではなく)そのまま使用されるべきであることを表すために使用されることに注意してほしい。例えば "Joe\,Smith" は、全体が 9 文字で 4 文字目にカンマを持つ単独のユーザー名を表す。

To promote interoperability and consistent with long-standing guidance about conservative use of the DNS in naming and applications (e.g., see Section 2.3.1 of the base DNS document, RFC 1035 [2]), characters outside the set of alphabetic characters, digits, and hyphen MUST NOT appear in domain name labels for SMTP clients or servers. In particular, the underscore character is not permitted. SMTP servers that receive a command in which invalid character codes have been employed, and for which there are no other reasons for rejection, MUST reject that command with a 501 response (this rule, like others, could be overridden by appropriate SMTP extensions). 相互運用性の推進と、命名やアプリケーション(例えば DNS 文書 1035 [2] のセクション 2.3.1 参照)における DNS の保守的な使用法に付いての長年の指針と調和するために、SMTP のクライアントまたはサーバーのためのドメイン名ラベルには、アルファベット・数字・ハイフン以外の文字が現れてはならない(MUST NOT)。特にアンダースコアは許可されない。無効な文字コードの含まれるコマンドを受信した SMTP サーバーは、それ以外に拒否する理由がなければ、そのコマンドを 501 応答によって拒否しなければならない(MUST)(他の規則と同様、この規則は適当な SMTP 拡張によって上書きされてもよい。)。

4.1.3. Address Literals 4.1.3. アドレスリテラル

Sometimes a host is not known to the domain name system and communication (and, in particular, communication to report and repair the error) is blocked. To bypass this barrier, a special literal form of the address is allowed as an alternative to a domain name. For IPv4 addresses, this form uses four small decimal integers separated by dots and enclosed by brackets such as [123.255.37.2], which indicates an (IPv4) Internet Address in sequence-of-octets form. For IPv6 and other forms of addressing that might eventually be standardized, the form consists of a standardized "tag" that identifies the address syntax, a colon, and the address itself, in a format specified as part of the relevant standards (i.e., RFC 4291 [8] for IPv6). 時としてホストはドメインネームシステムに知られておらず、通信(特にエラーの報告と修復のための通信)がブロックされている。この問題を回避するために、ドメイン名の代替としてアドレスの特別なリテラル形式が許可されている。IPv4 アドレスの場合のそれは、例えば [123.255.37.2] のような、ドット区切りの 4 つの 10 進整数をブラケットで囲む形式である。これは一連のオクテット形式の(IPv4)インターネットアドレスを表す。IPv6 や、将来標準化される可能性のある他のアドレス形式の場合、アドレス構文・コロン・アドレス自体を識別する標準化された "タグ(tag)" (関連する標準(すなわち IPv6 のための RFC 4291 [8])の一部として規定されている形式)から構成される。

   Specifically:

   IPv4-address-literal  = Snum 3("."  Snum)

   IPv6-address-literal  = "IPv6:" IPv6-addr

   General-address-literal  = Standardized-tag ":" 1*dcontent

   Standardized-tag  = Ldh-str
                     ; Standardized-tag MUST be specified in a
                     ; Standards-Track RFC and registered with IANA

   dcontent       = %d33-90 / ; Printable US-ASCII
                  %d94-126 ; excl. "[", "\", "]"

   Snum           = 1*3DIGIT
                  ; representing a decimal integer
                  ; value in the range 0 through 255

   IPv6-addr      = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp

   IPv6-hex       = 1*4HEXDIG

   IPv6-full      = IPv6-hex 7(":" IPv6-hex)

   IPv6-comp      = [IPv6-hex *5(":" IPv6-hex)] "::"
                  [IPv6-hex *5(":" IPv6-hex)]
                  ; The "::" represents at least 2 16-bit groups of
                  ; zeros.  No more than 6 groups in addition to the
                  ; "::" may be present.

   IPv6v4-full    = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal

   IPv6v4-comp    = [IPv6-hex *3(":" IPv6-hex)] "::"
                  [IPv6-hex *3(":" IPv6-hex) ":"]
                  IPv4-address-literal
                  ; The "::" represents at least 2 16-bit groups of
                  ; zeros.  No more than 4 groups in addition to the
                  ; "::" and IPv4-address-literal may be present.
   厳密には以下の通り:

   IPv4-address-literal  = Snum 3("."  Snum)

   IPv6-address-literal  = "IPv6:" IPv6-addr

   General-address-literal  = Standardized-tag ":" 1*dcontent

   Standardized-tag  = Ldh-str
                     ; Standardized-tag はスタンダードトラック RFC に
                     ; おいて規定され、IANA に登録されなければならない
                     ; (MUST)

   dcontent       = %d33-90 / ; Printable US-ASCII
                  %d94-126 ; excl. "[", "\", "]"

   Snum           = 1*3DIGIT
                  ; 0 ~ 255 までの 10 進整数値を表す

   IPv6-addr      = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp

   IPv6-hex       = 1*4HEXDIG

   IPv6-full      = IPv6-hex 7(":" IPv6-hex)

   IPv6-comp      = [IPv6-hex *5(":" IPv6-hex)] "::"
                  [IPv6-hex *5(":" IPv6-hex)]
                  ; "::" は、値ゼロの 16 ビットグループが少なくとも
                  ; 2 つあることを表す。"::" に加えて高々 6 グループ
                  ; が現れる可能性がある。

   IPv6v4-full    = IPv6-hex 5(":" IPv6-hex) ":" IPv4-address-literal

   IPv6v4-comp    = [IPv6-hex *3(":" IPv6-hex)] "::"
                  [IPv6-hex *3(":" IPv6-hex) ":"]
                  IPv4-address-literal
                  ; "::" は、値ゼロの 16 ビットグループが少なくとも
                  ; 2 つあることを表す。"::" と IPv4-address-literal
                  ; とに加えて高々 4 グループが現れる可能性がある。

4.1.4. Order of Commands 4.1.4. コマンドの順序

There are restrictions on the order in which these commands may be used. これらのコマンドが使用されてよい順序には制限がある。

A session that will contain mail transactions MUST first be initialized by the use of the EHLO command. An SMTP server SHOULD accept commands for non-mail transactions (e.g., VRFY or EXPN) without this initialization. メールトランザクションを含むであろうセッションは、まず最初に EHLO コマンドを使用して初期化されなければならない(MUST)。SMTP サーバーは、この初期化が無くとも、メールトランザクション用ではないコマンド(例えば VRFY または EXPN)を受け入れるべきである(SHOULD)。

An EHLO command MAY be issued by a client later in the session. If it is issued after the session begins and the EHLO command is acceptable to the SMTP server, the SMTP server MUST clear all buffers and reset the state exactly as if a RSET command had been issued. In other words, the sequence of RSET followed immediately by EHLO is redundant, but not harmful other than in the performance cost of executing unnecessary commands. EHLO コマンドは、セッション中に遅れて発行されてもよい(MAY)。セッション開始後に EHLO コマンドが発行され、SMTP サーバーがそれを受け入れた場合、SMTP サーバーはすべてのバッファをクリアし、RSET コマンドが発行されたかのように状態をリセットしなければならない(MUST)。言い換えると、EHLO の直後の RSET は冗長だが、不要なコマンドを実行するパフォーマンスコスト以外の害はないということである。

If the EHLO command is not acceptable to the SMTP server, 501, 500, 502, or 550 failure replies MUST be returned as appropriate. The SMTP server MUST stay in the same state after transmitting these replies that it was in before the EHLO was received. EHLO コマンドが SMTP サーバーに受け入れられない場合、必要に応じて 501・500・502・550 の失敗応答が返されなければならない(MUT)。これらの応答を返した後、SMTP サーバーは EHLO を受信する前と同じ状態に留まらなければならない(MUST)。

The SMTP client MUST, if possible, ensure that the domain parameter to the EHLO command is a primary host name as specified for this command in Section 2.3.5. If this is not possible (e.g., when the client's address is dynamically assigned and the client does not have an obvious name), an address literal SHOULD be substituted for the domain name. セクション 2.3.5 の規定の通り、可能であれば SMTP クライアントは EHLO コマンドへのドメインパラメータが主要なホスト名であることを保証しなければならない(MUST)。それが不可能な場合(例えばクライアントのアドレスが動的に割り当てられており、明確な名前を持たない場合)、アドレスリテラルをドメイン名の代わりとするべきである(SHOULD)。

An SMTP server MAY verify that the domain name argument in the EHLO command actually corresponds to the IP address of the client. However, if the verification fails, the server MUST NOT refuse to accept a message on that basis. Information captured in the verification attempt is for logging and tracing purposes. Note that this prohibition applies to the matching of the parameter to its IP address only; see Section 7.9 for a more extensive discussion of rejecting incoming connections or mail messages. SMTP サーバーは、EHLO コマンドのドメイン名引数が実際にクライアントの IP アドレスに対応することを検証してもよい(MAY)。しかしながらその検証に失敗しても、それに基づいてメッセージの受け取りを拒否してはならない(MUST NOT)。この検証から得られた情報はログとトレースとのために使用される。この禁止事項はパラメータの IP アドレスへのマッチングにのみ適用されることに注意してほしい。接続またはメールメッセージの拒否に関するさらに広範囲の議論に付いては、セクション 7.9 を参照してほしい。

The NOOP, HELP, EXPN, VRFY, and RSET commands can be used at any time during a session, or without previously initializing a session. SMTP servers SHOULD process these normally (that is, not return a 503 code) even if no EHLO command has yet been received; clients SHOULD open a session with EHLO before sending these commands. NOOP・HELP・EXPN・VRFY・RSET の各コマンドは、セッション中にいつでも、またセッションが初期化されていなくても使用することができる。SMTP サーバーは、たとえ EHLO コマンドを受信していなくても、これらのコマンドを通常通りに処理する(つまりコード 503 を返さない)べきである(SHOULD)。クライアントはこれらのコマンドを送信する前に EHLO コマンドによりセッションを開くべきである(SHOULD)。

If these rules are followed, the example in RFC 821 that shows "550 access denied to you" in response to an EXPN command is incorrect unless an EHLO command precedes the EXPN or the denial of access is based on the client's IP address or other authentication or authorization-determining mechanisms. これらの規則にしたがうと、RFC 821 において示されている EXPN コマンドへの "550 access denied to you"(アクセス拒否) は、EXPN に先立って EHLO コマンドが発行されているか、そのアクセス拒否がクライアントの IP アドレス、または他の認証/権限決定メカニズムに基づいたものでない限り、不正ということになる。

The MAIL command (or the obsolete SEND, SOML, or SAML commands) begins a mail transaction. Once started, a mail transaction consists of a transaction beginning command, one or more RCPT commands, and a DATA command, in that order. A mail transaction may be aborted by the RSET, a new EHLO, or the QUIT command. There may be zero or more transactions in a session. MAIL (or SEND, SOML, or SAML) MUST NOT be sent if a mail transaction is already open, i.e., it should be sent only if no mail transaction had been started in the session, or if the previous one successfully concluded with a successful DATA command, or if the previous one was aborted, e.g., with a RSET or new EHLO. MAIL コマンド(または廃止された SEND・SOML・SAML の各コマンド)は、メールトランザクションを開始する。いったん開始されると、メールトランザクションは、トランザクション開始コマンド・ひとつまたは複数の RCPT コマンド・DATA コマンドの順に構成される。メールトランザクションは RSET・新しい EHLO・QUIT コマンドにより中止されてもよい。セッション中にはゼロ個または複数のトランザクションが存在できる。メールトランザクションが既に開始されている場合、MAIL (または SEND、SOML、SAML)が送信されてはならない(MUST)。つまりこのコマンドは、そのセッション中でメールトランザクションが開始されていない場合、または直前のメールトランザクションが DATA コマンドの成功によって終了した場合、または、例えば RSET や新しい EHLO コマンドにより直前のコマンドが中止された場合にのみ送信されるべきである。

If the transaction beginning command argument is not acceptable, a 501 failure reply MUST be returned and the SMTP server MUST stay in the same state. If the commands in a transaction are out of order to the degree that they cannot be processed by the server, a 503 failure reply MUST be returned and the SMTP server MUST stay in the same state. トランザクション開始コマンドの引数が受け入れられない場合、501 失敗リプライが返されなければならず(MSUT)、サーバーは同じ状態に留まらなければならない(MUST)。トランザクション中のコマンドが、サーバーが処理できないほど不適切である場合、503 失敗リプライが返されなければならず(MUST)、SMTP サーバーは同じ状態に留まらなければならない(MUST)。

The last command in a session MUST be the QUIT command. The QUIT command SHOULD be used by the client SMTP to request connection closure, even when no session opening command was sent and accepted. セッションにおける最後のコマンドは QUIT コマンドでなければならない(MUST)。クライアント SMTP は、たとえセッション開始コマンドを送信していない場合でも、接続の終了を要求するために QUIT コマンドを使用するべきである(SHOULD)。

4.1.5. Private-Use Commands 4.1.5. プライベート用途のコマンド

As specified in Section 2.2.2, commands starting in "X" may be used by bilateral agreement between the client (sending) and server (receiving) SMTP agents. An SMTP server that does not recognize such a command is expected to reply with "500 Command not recognized". An extended SMTP server MAY list the feature names associated with these private commands in the response to the EHLO command. セクション 2.2.2 で規定されている通り、"X" で始まるコマンドは、クライアント(送信側)とサーバー(受信側)の SMTP エージェントとの間の相互の合意により使用されてよい。そのようなコマンドを認識しない SMTP サーバーは、"500 Command not recognized"(コマンドは認識されない) の応答を返すことを期待される。拡張された SMTP サーバーは EHLO コマンドに対する応答において、これらのプライベート用途のコマンドに対応する機能名をリストしてもよい(MAY)。

Commands sent or accepted by SMTP systems that do not start with "X" MUST conform to the requirements of Section 2.2.2. SMTP システムによって送信または受け入れられる "X" で始まらないコマンドは、セクション 2.2.2 の要求事項に従わなければならない(MUST)。

4.2. SMTP Replies 4.2. SMTP リプライ

Replies to SMTP commands serve to ensure the synchronization of requests and actions in the process of mail transfer and to guarantee that the SMTP client always knows the state of the SMTP server. Every command MUST generate exactly one reply. SMTP コマンドへの応答は、メール転送の処理におけるリクエストと動作との同期を確実なものにし、SMTP クライアントが常に SMTP サーバーの状態を知ることを保証する。すべてのコマンドは、正確にひとつのリプライを生成しなければならない(MUST)。

The details of the command-reply sequence are described in Section 4.3. コマンド・リプライのシーケンスの詳細はセクション 4.3 で説明されている。

An SMTP reply consists of a three digit number (transmitted as three numeric characters) followed by some text unless specified otherwise in this document. The number is for use by automata to determine what state to enter next; the text is for the human user. The three digits contain enough encoded information that the SMTP client need not examine the text and may either discard it or pass it on to the user, as appropriate. Exceptions are as noted elsewhere in this document. In particular, the 220, 221, 251, 421, and 551 reply codes are associated with message text that must be parsed and interpreted by machines. In the general case, the text may be receiver dependent and context dependent, so there are likely to be varying texts for each reply code. A discussion of the theory of reply codes is given in Section 4.2.1. Formally, a reply is defined to be the sequence: a three-digit code, <SP>, one line of text, and <CRLF>, or a multiline reply (as defined in the same section). Since, in violation of this specification, the text is sometimes not sent, clients that do not receive it SHOULD be prepared to process the code alone (with or without a trailing space character). Only the EHLO, EXPN, and HELP commands are expected to result in multiline replies in normal circumstances; however, multiline replies are allowed for any command. SMTP リプライは、本文書の別の部分で規定されていない限り、後ろに何らかのテキストが続く 3 桁の数値(3 つの数字として転送される)から構成される。数値は次に入る状態を決定するために機械的に使用されるためのものであり、テキストは人間のためのものである。3 桁の数値は十分に符号化された情報を含むため、SMTP クライアントはテキストを調べる必要がなく、必要に応じてそれを破棄するか、ユーザーに渡すかしてよい。例外はこの文書の別の場所で注記されている。具体的に言うと、リプライコード 220・221・251・421・551 は、機械的に解析・解釈されなければならないメッセージテキストに関連する。一般にテキストは受信者依存かつコンテキスト依存であってよいため、各リプライコードに対するテキストはさまざまに異なる可能性がある。リプライコードの原理に付いての議論はセクション 4.2.1 に見られる。形式上リプライは、3 桁の数値コード・<SP>・1 行のテキスト・<CRLF> というシーケンス、または複数行リプライ(同セクションで定義されている)として定義される。本仕様に違反してテキストが送信されない場合もあるため、テキストを受信しないクライアントは、コード(後続の空白文字があっても無くても)のみを処理する準備をしておくべきである(SHOULD)。通常の環境では、EHLO・EXPN・HELP の各コマンドのみが複数行リプライの生成を期待されるが、任意のコマンドに対し複数行リプライが許される。

In ABNF, server responses are: ABNF によるサーバーの応答は以下の通り:

   Greeting       = ( "220 " (Domain / address-literal)
                  [ SP textstring ] CRLF ) /
                  ( "220-" (Domain / address-literal)
                  [ SP textstring ] CRLF
                  *( "220-" [ textstring ] CRLF )
                  "220" [ SP textstring ] CRLF )

   textstring     = 1*(%d09 / %d32-126) ; HT, SP, Printable US-ASCII

   Reply-line     = *( Reply-code "-" [ textstring ] CRLF )
                  Reply-code [ SP textstring ] CRLF

   Reply-code     = %x32-35 %x30-35 %x30-39

where "Greeting" appears only in the 220 response that announces that the server is opening its part of the connection. (Other possible server responses upon connection follow the syntax of Reply-line.) ここで "Greeting" は 220 応答内にのみ現われ、サーバーが接続を開いたことを宣言する。(接続上であり得る他のサーバー応答は、Reply-line の構文に従う。)

An SMTP server SHOULD send only the reply codes listed in this document. An SMTP server SHOULD use the text shown in the examples whenever appropriate. SMTP サーバーは、本文書に示されているリプライコードのみを送信するべきである(SHOULD)。SMTP サーバーは適切な場合には常に、例に示されているテキストを使用するべきである(SHOULD)。

An SMTP client MUST determine its actions only by the reply code, not by the text (except for the "change of address" 251 and 551 and, if necessary, 220, 221, and 421 replies); in the general case, any text, including no text at all (although senders SHOULD NOT send bare codes), MUST be acceptable. The space (blank) following the reply code is considered part of the text. Whenever possible, a receiver- SMTP SHOULD test the first digit (severity indication) of the reply code. SMTP クライアントは、テキストによってではなく、リプライコードのみによって動作を決定しなければならない(MUST)(例外は "アドレスの変更(change of address)" の 251・551、および必要であれば 220・221・421 リプライである)。一般に任意のテキストが受け入れられなければならない(MUST)(送信者はコードのみを送信するべきではない(SHOULD NOT)が、テキストが無い場合も含む)。リプライコードの後の空白(ブランク)は、テキストの一部と見なされる。可能なら常に、受信側 SMTP はリプライコードの 1 桁目(重要度)を検証するべきである(SHOULD)。

The list of codes that appears below MUST NOT be construed as permanent. While the addition of new codes should be a rare and significant activity, with supplemental information in the textual part of the response being preferred, new codes may be added as the result of new Standards or Standards-Track specifications. Consequently, a sender-SMTP MUST be prepared to handle codes not specified in this document and MUST do so by interpreting the first digit only. 以下に示すコードのリストを不変なものと見なしてはならない(MUST NOT)。新しいコードの追加はまれで、かつ重要な活動のはずであり、応答のテキスト部分に補足情報を持つことが望ましいが、標準(Standards)または標準トラック(Standards-Track)の仕様の結果として新しいコードが追加されてもよい。そのため、送信側 SMTP は本文書で規定されていないコードを扱う準備ができていなければならず(MUST)、1 桁目のみを解釈することによってそれを行わなければならない(MUST)。

In the absence of extensions negotiated with the client, SMTP servers MUST NOT send reply codes whose first digits are other than 2, 3, 4, or 5. Clients that receive such out-of-range codes SHOULD normally treat them as fatal errors and terminate the mail transaction. クライアントと交渉済みの拡張がない場合、SMTP サーバーは 1 桁目が 2、3、4、5 以外のリプライコードを送信してはならない(MUST NOT)。通常そのような範囲外のコードを受信したクライアントは、それを致命的なエラーとして扱い、メールトランザクションを終了するべきである(SHOULD)。

4.2.1. Reply Code Severities and Theory 4.2.1. リプライコードの重要度と原理

The three digits of the reply each have a special significance. The first digit denotes whether the response is good, bad, or incomplete. An unsophisticated SMTP client, or one that receives an unexpected code, will be able to determine its next action (proceed as planned, redo, retrench, etc.) by examining this first digit. An SMTP client that wants to know approximately what kind of error occurred (e.g., mail system error, command syntax error) may examine the second digit. The third digit and any supplemental information that may be present is reserved for the finest gradation of information. リプライの 3 桁の数字はそれぞれ特別な意味を持つ。1 桁目は応答が正常か、異常か、不完全かを表す。単純な SMTP クライアント、または予期せぬコードを受信した SMTP クライアントは、この 1 桁目を確認することで次の行動(予定通り進める、やり直す、縮退するなど)を決定することができるだろう。発生したエラーのおおよその種類(例えばメールシステムエラー、コマンド構文エラーなど)を知りたい SMTP クライアントは 2 桁目を確認することができる。3 桁目と提示されるかもしれない任意の補足情報とは、情報の詳細な分類のために予約されている。

There are four values for the first digit of the reply code: リプライコードの 1 桁目には 4 つの値が存在する:

2yz Positive Completion reply 2yz 肯定的完了リプライ
The requested action has been successfully completed. A new request may be initiated. 要求された動作は成功裡に完了した。新しい要求が開始されてよい。
3yz Positive Intermediate reply 3yz 肯定中間リプライ
The command has been accepted, but the requested action is being held in abeyance, pending receipt of further information. The SMTP client should send another command specifying this information. This reply is used in command sequence groups (i.e., in DATA). コマンドは受け入れられたが、要求された動作はさらなる情報の受信まで停止している。SMTP クライアントはその情報を特定する別のコマンドを送信するべきである。このリプライはコマンドシーケンスグループにおいて(つまり DATAにおいて)使用される。
4yz Transient Negative Completion reply 4yz 一時的否定完了リプライ
The command was not accepted, and the requested action did not occur. However, the error condition is temporary, and the action may be requested again. The sender should return to the beginning of the command sequence (if any). It is difficult to assign a meaning to "transient" when two different sites (receiver- and sender-SMTP agents) must agree on the interpretation. Each reply in this category might have a different time value, but the SMTP client SHOULD try again. A rule of thumb to determine whether a reply fits into the 4yz or the 5yz category (see below) is that replies are 4yz if they can be successful if repeated without any change in command form or in properties of the sender or receiver (that is, the command is repeated identically and the receiver does not put up a new implementation). コマンドは受け入れられず、要求された動作は実行されなかった。しかしながらこの状態は一時的なものであり、同じ動作が再度要求されてもよい。送信者は(もしあれば)コマンドシーケンスの開始に戻るべきである。二つの異なるサイト(受信側 SMTP エージェントと送信側 SMTP エージェント)がその解釈に合意しなければならないとき、"一時的(transient)" という用語に意味を割り当てることは困難である。このカテゴリの各リプライは異なる時間値を持つかもしれないが、SMTP クライアントは再試行するべきである(SHOULD)。リプライが 4yz または 5yz (後述)のどちらのカテゴリに当てはまるかを決定するための経験則は、コマンドの形式や送信者・受信者の属性に変化がない状態(つまりコマンドがまったく同じように繰り返され、受信者が新しい実装を提供しない状態)で繰り返したときに成功する可能性があるのが 4yz というものである。
5yz Permanent Negative Completion reply 5yz 永続的否定完了リプライ
The command was not accepted and the requested action did not occur. The SMTP client SHOULD NOT repeat the exact request (in the same sequence). Even some "permanent" error conditions can be corrected, so the human user may want to direct the SMTP client to reinitiate the command sequence by direct action at some point in the future (e.g., after the spelling has been changed, or the user has altered the account status). コマンドは受け入れられず、要求された動作は起こらなかった。SMTP クライアントは(同じシーケンスの)同一リクエストを繰り返すべきではない(SHOULD NOT)。一部の "永続的(permanent)" なエラー状態は改善される可能性がある。そのため人間のユーザーは、将来のある時点(例えば綴りが変更された後や、ユーザーがアカウントの状態を変更した後)で動作を指示することで、SMTP クライアントにコマンドシーケンスを再開させることを望んでもよい。

It is worth noting that the file transfer protocol (FTP) [34] uses a very similar code architecture and that the SMTP codes are based on the FTP model. However, SMTP uses a one-command, one-response model (while FTP is asynchronous) and FTP's 1yz codes are not part of the SMTP model. ファイル転送プロトコル(FTP)[34] は非常によく似たコード体系を使用しており、SMTP のコードが その FTP モデルを基礎にしていることは注目に値する。しかしながら、SMTP は 1 コマンド・1 応答のモデルを使用し(FTP は非同期である)、FTP の 1yz コードは SMTP モデルには含まれない。

The second digit encodes responses in specific categories: 2 桁目は応答の具体的なカテゴリを符号化する:

x0z
Syntax: These replies refer to syntax errors, syntactically correct commands that do not fit any functional category, and unimplemented or superfluous commands. 構文:これらのリプライは、構文エラーや、構文的に正しいがどの機能カテゴリにも当てはまらないコマンド、未実装または不適切なコマンドを表す。
x1z
Information: These are replies to requests for information, such as status or help. 情報:これは情報(状態やヘルプ)を求めるリクエストへのリプライである。
x2z
Connections: These are replies referring to the transmission channel. 接続:これは通信チャネルを参照するリプライである。
x3z
Unspecified. 規定されていない。
x4z
Unspecified. 規定されていない。
x5z
Mail system: These replies indicate the status of the receiver mail system vis-a-vis the requested transfer or other mail system action. メールシステム:これらのリプライは、要求された転送または他のメールシステム動作に対する受信側メールシステムの状態を表す。

The third digit gives a finer gradation of meaning in each category specified by the second digit. The list of replies illustrates this. Each reply text is recommended rather than mandatory, and may even change according to the command with which it is associated. On the other hand, the reply codes must strictly follow the specifications in this section. Receiver implementations should not invent new codes for slightly different situations from the ones described here, but rather adapt codes already defined. 3 桁目は、2 桁目で特定される各カテゴリにおけるより詳細な意味を特定する。リプライのリストはこれを例示している。各リプライテキストは強制ではなく推奨であり、関連するコマンドによって変更することさえ許される。一方でリプライコードは、このセクションの規定に厳密に従わなければならない。受信側実装は、ここで説明されているものとわずかに異なる状況のために新しいコードを作り出すのではなく、すでに定義済みのコードに適応するべきである。

For example, a command such as NOOP, whose successful execution does not offer the SMTP client any new information, will return a 250 reply. The reply is 502 when the command requests an unimplemented non-site-specific action. A refinement of that is the 504 reply for a command that is implemented, but that requests an unimplemented parameter. 例えば成功しても SMTP クライアントに何ら新しい情報を提供しない NOOP などのコマンドは、250 応答を返すだろう。コマンドが、実装されていない非サイト固有の動作を要求したとき、リプライは 502 になる。この改良版は、コマンドは実装されているが実装されていないパラメータを要求した場合の 504 リプライである。

The reply text may be longer than a single line; in these cases the complete text must be marked so the SMTP client knows when it can stop reading the reply. This requires a special format to indicate a multiple line reply. リプライテキストは 1 行より長くなってもよい。その場合、SMTP クライアントがリプライの読み取りを止めるときを分かるように、完結させるテキストに印が付けられなければならない。これには、複数行リプライを表すための特別なフォーマットが必要となる。

The format for multiline replies requires that every line, except the last, begin with the reply code, followed immediately by a hyphen, "-" (also known as minus), followed by text. The last line will begin with the reply code, followed immediately by <SP>, optionally some text, and <CRLF>. As noted above, servers SHOULD send the <SP> if subsequent text is not sent, but clients MUST be prepared for it to be omitted. 複数行リプライのためのフォーマットは、最終行を除くすべての行がリプライコードで始まり、直後にハイフン "-"(マイナスとしても知られる)、その後にテキストが続く必要がある。最終行はリプライコードで始まり、直後に <SP>、オプションでテキストと <CRLF> が続く。前述の通り、サーバーは後続のテキストがなければ <SP> を送信するべき(SHOULD)だが、クライアントはそれが省略された場合にも備えなければならない(MUST)。

For example: 例:

      250-First line
      250-Second line
      250-234 Text beginning with numbers
      250 The last line

In a multiline reply, the reply code on each of the lines MUST be the same. It is reasonable for the client to rely on this, so it can make processing decisions based on the code in any line, assuming that all others will be the same. In a few cases, there is important data for the client in the reply "text". The client will be able to identify these cases from the current context. 複数行リプライにおいて各行のリプラコードは同じでなければならない(MUST)。クライアントがこれに依存することは合理的であり、他の行のコードがすべて同じであることを前提に、任意の行のコードに基づいて処理を決定することができる。少数だが、リプライの "テキスト(text)" 内にクライアントにとって重要な情報が存在する場合がある。クライアントはそのような場合を現在のコンテキストから判断することができるだろう。

4.2.2. Reply Codes by Function Groups 4.2.2. 機能グループごとのリプライコード

   500  Syntax error, command unrecognized (This may include errors such
      as command line too long)

   501  Syntax error in parameters or arguments

   502  Command not implemented (see Section 4.2.4)

   503  Bad sequence of commands

   504  Command parameter not implemented


   211  System status, or system help reply

   214  Help message (Information on how to use the receiver or the
      meaning of a particular non-standard command; this reply is useful
      only to the human user)

   220  <domain> Service ready

   221  <domain> Service closing transmission channel

   421  <domain> Service not available, closing transmission channel
      (This may be a reply to any command if the service knows it must
      shut down)

   250  Requested mail action okay, completed

   251  User not local; will forward to <forward-path> (See Section 3.4)

   252  Cannot VRFY user, but will accept message and attempt delivery
      (See Section 3.5.3)

   455  Server unable to accommodate parameters

   555  MAIL FROM/RCPT TO parameters not recognized or not implemented

   450  Requested mail action not taken: mailbox unavailable (e.g.,
      mailbox busy or temporarily blocked for policy reasons)

   550  Requested action not taken: mailbox unavailable (e.g., mailbox
      not found, no access, or command rejected for policy reasons)

   451  Requested action aborted: error in processing

   551  User not local; please try <forward-path> (See Section 3.4)

   452  Requested action not taken: insufficient system storage

   552  Requested mail action aborted: exceeded storage allocation

   553  Requested action not taken: mailbox name not allowed (e.g.,
      mailbox syntax incorrect)

   354  Start mail input; end with <CRLF>.<CRLF>

   554  Transaction failed (Or, in the case of a connection-opening
      response, "No SMTP service here")
   500  Syntax error, command unrecognized (This may include errors such
      as command line too long)
        構文エラー。コマンドは認識されない
        (コマンド行が長すぎるといったエラーも含まれてよい)

   501  Syntax error in parameters or arguments
        パラメータまたは引数の構文エラー

   502  Command not implemented (see Section 4.2.4)
        コマンドは実装されていない(セクション 4.2.4 参照)

   503  Bad sequence of commands
        コマンドの順序が間違っている

   504  Command parameter not implemented
        コマンドパラメータは実装されていない

   211  System status, or system help reply
        システム状態、またはシステムヘルプリプライ

   214  Help message (Information on how to use the receiver or the
      meaning of a particular non-standard command; this reply is useful
      only to the human user)
        ヘルプメッセージ
        (受信者の使い方や特定の非標準コマンドの意味に関する情報。
        このリプライは人間のユーザーのためにのみ役に立つ。)

   220  <domain> Service ready
        <domain> サービス準備完了

   221  <domain> Service closing transmission channel
        <domain> は通信チャネルを閉じようとしている

   421  <domain> Service not available, closing transmission channel
      (This may be a reply to any command if the service knows it must
      shut down)
        <domain> サービスは使用不能であり、通信チャネルは閉じられる
        (サービスがシャットダウンしなければならないことを知っている場合、
        これは任意のコマンドのリプライになり得る)

   250  Requested mail action okay, completed
        要求されたメールアクションは正常に終了した

   251  User not local; will forward to <forward-path> (See Section 3.4)
        ユーザーはローカルではく、<forward-path> に転送される
        (セクション 3.4 参照)

   252  Cannot VRFY user, but will accept message and attempt delivery
      (See Section 3.5.3)
        ユーザーを確認(VRFY)できないが、メッセージを受け入れ、
        配送を試みるだろう
        (セクション 3.5.3 参照)

   455  Server unable to accommodate parameters
        サーバーはパラメータに対応できない

   555  MAIL FROM/RCPT TO parameters not recognized or not implemented
        MAIL FROM/RCPT TO のパラメータが認識されないか、実装されていない

   450  Requested mail action not taken: mailbox unavailable (e.g.,
      mailbox busy or temporarily blocked for policy reasons)
        要求されたメールアクションは実行されない:メールボックス利用不可
        (例えばメールボックスが使用中、またはポリシーにより一時的に
        ブロックされている)

   550  Requested action not taken: mailbox unavailable (e.g., mailbox
      not found, no access, or command rejected for policy reasons)
        要求されたメールアクションは実行されない:メールボックス利用不可
        (例えばメールボックスが見つからない、アクセスできない、ポリシー
        によりコマンドが拒否された)

   451  Requested action aborted: error in processing
        要求されたアクションは中止された:処理中のエラー

   551  User not local; please try <forward-path> (See Section 3.4)
        ユーザーはローカルではないため、<forward-path> を試して
        ほしい
        (セクション 3.4 参照)

   452  Requested action not taken: insufficient system storage
        要求されたアクションは実行されない:システム容量不足

   552  Requested mail action aborted: exceeded storage allocation
        要求されたアクションは実行されない:記憶装置の割り当てを超過

   553  Requested action not taken: mailbox name not allowed (e.g.,
      mailbox syntax incorrect)
        要求されたアクションは実行されない:許可されないメールボックス名
        (例えばメールボックスの構文誤り)

   354  Start mail input; end with <CRLF>.<CRLF>
        メールの入力を開始されたい。終了は <CRLF>.<CRLF>

   554  Transaction failed (Or, in the case of a connection-opening
      response, "No SMTP service here")
        トランザクション失敗
        (または接続開始時の応答の場合は "No SMTP service here(SMTP 
        サービスは提供されてい)")

4.2.3. Reply Codes in Numeric Order 4.2.3. 番号順のリプライコード

   211  System status, or system help reply

   214  Help message (Information on how to use the receiver or the
      meaning of a particular non-standard command; this reply is useful
      only to the human user)

   220  <domain> Service ready

   221  <domain> Service closing transmission channel

   250  Requested mail action okay, completed

   251  User not local; will forward to <forward-path> (See Section 3.4)

   252  Cannot VRFY user, but will accept message and attempt delivery
      (See Section 3.5.3)

   354  Start mail input; end with <CRLF>.<CRLF>

   421  <domain> Service not available, closing transmission channel
      (This may be a reply to any command if the service knows it must
      shut down)

   450  Requested mail action not taken: mailbox unavailable (e.g.,
      mailbox busy or temporarily blocked for policy reasons)

   451  Requested action aborted: local error in processing

   452  Requested action not taken: insufficient system storage

   455  Server unable to accommodate parameters

   500  Syntax error, command unrecognized (This may include errors such
      as command line too long)

   501  Syntax error in parameters or arguments

   502  Command not implemented (see Section 4.2.4)

   503  Bad sequence of commands

   504  Command parameter not implemented

   550  Requested action not taken: mailbox unavailable (e.g., mailbox
      not found, no access, or command rejected for policy reasons)

   551  User not local; please try <forward-path> (See Section 3.4)

   552  Requested mail action aborted: exceeded storage allocation

   553  Requested action not taken: mailbox name not allowed (e.g.,
      mailbox syntax incorrect)

   554  Transaction failed (Or, in the case of a connection-opening
      response, "No SMTP service here")

   555  MAIL FROM/RCPT TO parameters not recognized or not implemented

4.2.4. Reply Code 502 4.2.4. リプライコード 502

Questions have been raised as to when reply code 502 (Command not implemented) SHOULD be returned in preference to other codes. 502 SHOULD be used when the command is actually recognized by the SMTP server, but not implemented. If the command is not recognized, code 500 SHOULD be returned. Extended SMTP systems MUST NOT list capabilities in response to EHLO for which they will return 502 (or 500) replies. 他のコードに優先してリプライコード 502(コマンドは実装されていない(Command not implemented))を返すべき(SHOULD)場合に付いて疑問があがっている。502 は、コマンドが SMTP サーバーによって実際に認識されたが、実装されていない場合に使用されるべきである(SHOULD)。コマンドが認識されない場合、コード 500 が返されるべきである(SHOULD)。拡張された SMTP システムは EHLO に対し、502(または 500)を返すであろう能力をリストしてはならない(MUST NOT)。

4.2.5. Reply Codes after DATA and the Subsequent <CRLF>.<CRLF> 4.2.5. DATA と後続の <CRLF>.<CRLF> との後のリプライコード

When an SMTP server returns a positive completion status (2yz code) after the DATA command is completed with <CRLF>.<CRLF>, it accepts responsibility for: DATA コマンドが <CRLF>.<CRLF> によって完了した後に SMTP サーバーが肯定完了状態(コード 2yz)を返す場合、SMTP サーバーは次の責任を負う:

When an SMTP server returns a temporary error status (4yz) code after the DATA command is completed with <CRLF>.<CRLF>, it MUST NOT make a subsequent attempt to deliver that message. The SMTP client retains responsibility for the delivery of that message and may either return it to the user or requeue it for a subsequent attempt (see Section 4.5.4.1). DATA コマンドが <CRLF>.<CRLF> により完了した後に、SMTP サーバーが一時的エラー状態(4yz)コードを返した場合、SMTP サーバーはそのメッセージを配送しようと試みてはならない(MUST NOT)。SMTP クライアントはそのメッセージの配送に責任を持ち続け、それをユーザーに返すか、後の試みのために待ち行列に入れることができる(セクション 4.5.4.1 参照)。

The user who originated the message SHOULD be able to interpret the return of a transient failure status (by mail message or otherwise) as a non-delivery indication, just as a permanent failure would be interpreted. If the client SMTP successfully handles these conditions, the user will not receive such a reply. メッセージを発信したユーザーは一時的な障害状態による返信を、永続的な障害を解釈するのと同じように配送不能通知として(メールメッセージまたは他の手段で)解釈できるべきである(SHOULD)。クライアント SMTP がこれらの状態をうまく処理した場合、ユーザーはそのようなリプライを受信しないだろう。

When an SMTP server returns a permanent error status (5yz) code after the DATA command is completed with <CRLF>.<CRLF>, it MUST NOT make any subsequent attempt to deliver the message. As with temporary error status codes, the SMTP client retains responsibility for the message, but SHOULD not again attempt delivery to the same server without user review of the message and response and appropriate intervention. DATA コマンドが <CRLF>.<CRLF> により完了した後に、SMTP サーバーが永続的エラー状態(5yz)コードを返した場合、SMTP サーバーはそのメッセージを配送しようと試みてはならない(MUST NOT)。一時的エラー状態コードの場合と同様、SMTP クライアントはそのメッセージの配送に責任を持ち続けるが、ユーザーによるメッセージと応答とのレビューおよび適切な介入なしには、同じサーバーに配送を試みないべきである(SHOULD)。

4.3. Sequencing of Commands and Replies 4.3. コマンドとリプライとのシーケンシング

4.3.1. Sequencing Overview 4.3.1. シーケンシング概観

The communication between the sender and receiver is an alternating dialogue, controlled by the sender. As such, the sender issues a command and the receiver responds with a reply. Unless other arrangements are negotiated through service extensions, the sender MUST wait for this response before sending further commands. One important reply is the connection greeting. Normally, a receiver will send a 220 "Service ready" reply when the connection is completed. The sender SHOULD wait for this greeting message before sending any commands. 送信者と受信者との間の対話は、送信者によりコントロールされる交互の会話である。そのため、送信者はコマンドを発行し、受信者はリプライで応答する。サービス拡張による他の取り決めが交渉されていない限り、送信者は次のコマンドを送信する前にその応答を待たなければならない(MUST)。ひとつの重要なリプライは最初の挨拶(connection greeting)である。接続が完了したとき、通常、受信者は 220 "Service ready" リプライを送信する。送信者は何らかのコマンドを送信する前に、このグリーティングメッセージを待つべきである(SHOULD)。

Note: all the greeting-type replies have the official name (the fully-qualified primary domain name) of the server host as the first word following the reply code. Sometimes the host will have no meaningful name. See Section 4.1.3 for a discussion of alternatives in these situations. 注意:すべてのグリーティングリプライは、リプライコードに続く最初の単語としてサーバーホストの公式名(完全限定の主要ドメイン名)を持つ。時としてホストは意味のある名前を持たない。そのような状況における代替に付いての議論は、セクション 4.1.3 を参照してほしい。

For example,

      220 ISIF.USC.EDU Service ready

or または

      220 mail.example.com SuperSMTP v 6.1.2 Service ready

or または

      220 [10.0.0.1] Clueless host service ready

The table below lists alternative success and failure replies for each command. These SHOULD be strictly adhered to. A receiver MAY substitute text in the replies, but the meanings and actions implied by the code numbers and by the specific command reply sequence MUST be preserved. 以下の表は各コマンドに対する成功・失敗リプライの選択肢の一覧である。これらは厳密に守られるべきである(SHOULD)。受信者はリプライ中のテキストを置き換えてもよい(MAY)が、コード番号と特定のコマンド・リプライシーケンスとにより暗示される意味と動作は維持しなければならない(MUST)。

4.3.2. Command-Reply Sequences 4.3.2. コマンド-リプライ シーケンス

Each command is listed with its usual possible replies. The prefixes used before the possible replies are "I" for intermediate, "S" for success, and "E" for error. Since some servers may generate other replies under special circumstances, and to allow for future extension, SMTP clients SHOULD, when possible, interpret only the first digit of the reply and MUST be prepared to deal with unrecognized reply codes by interpreting the first digit only. Unless extended using the mechanisms described in Section 2.2, SMTP servers MUST NOT transmit reply codes to an SMTP client that are other than three digits or that do not start in a digit between 2 and 5 inclusive. 各コマンドは通常あり得るリプライと共にリストされている。あり得るリプライの前の接頭辞は、"I" が中間(intermediate)、"S" が成功(success)、"E" がエラー(error)を表す。一部のサーバーは特別な状況において別のリプライを生成し、また将来の拡張にもそれが許されているため、SMTP クライアントは可能であればリプライの 1 桁目だけを解釈するべき(SHOULD)であり、1 桁目だけを解釈することで認識できないリプライコードを扱う準備ができていなければならない(MUST)。セクション 2.2 で説明されているメカニズムを使用して拡張されていない限り、SMTP サーバーは 3 桁以外のリプライコードや 2 ~ 5 以外で始まるリプライコードを SMTP クライアントに送信してはならない(MUST NOT)。

These sequencing rules and, in principle, the codes themselves, can be extended or modified by SMTP extensions offered by the server and accepted (requested) by the client. However, if the target is more precise granularity in the codes, rather than codes for completely new purposes, the system described in RFC 3463 [25] SHOULD be used in preference to the invention of new codes. これらのシーケンシング規則と(原理的に)コード自体とは、サーバーによって提示され、クライアントによって受け入れられた(要求された) SMTP 拡張によって拡張、または修正されてよい。しかしながら、目的がまったく新しい用途のためのコードではなく、そのコードにおけるより正確な粒度である場合、新しいコードを作り出すよりも、RFC 3463 [25] で説明されている手順を使用するべきである(SHOULD)。

In addition to the codes listed below, any SMTP command can return any of the following codes if the corresponding unusual circumstances are encountered: 以下にリストされているコードに加え、対応する異常な状況に遭遇した場合には、すべての SMTP コマンドは以下のコードの何れかを返すことができる:

500
For the "command line too long" case or if the command name was not recognized. Note that producing a "command not recognized" error in response to the required subset of these commands is a violation of this specification. Similarly, producing a "command too long" message for a command line shorter than 512 characters would violate the provisions of Section 4.5.3.1.4. "コマンドラインが長すぎる(command line too long)" 場合、またはコマンド名が認識されなかった場合。これらのコマンドの必須のサブセットに対して "コマンドが認識されない(command not recognized)" のエラーを生成することは、本仕様の違反であることに注意してほしい。同じように、512 文字より短いコマンドラインに対して "コマンドラインが長すぎる(command line too long)" のメッセージを生成することは、セクション 4.5.3.1.4 の規約に違反することになるだろう。
501
Syntax error in command or arguments. In order to provide for future extensions, commands that are specified in this document as not accepting arguments (DATA, RSET, QUIT) SHOULD return a 501 message if arguments are supplied in the absence of EHLO- advertised extensions. コマンドまたは引数における構文エラー。将来の拡張に備えるために、本文書で引数を受け取らないと規定されているコマンド(DATA、RSET、QUIT)は、EHLO で提示された拡張がない場合には 501 メッセージを返すべきである(SHOULD)。
421
Service shutting down and closing transmission channel サービスはシャットダウン中であり、通信チャネルは閉じられる。

Specific sequences are: 詳細なシーケンスは以下の通り:

      CONNECTION ESTABLISHMENT

         S: 220
         E: 554

      EHLO or HELO

         S: 250
         E: 504 (a conforming implementation could return this code only
         in fairly obscure cases), 550, 502 (permitted only with an old-
         style server that does not support EHLO)

      MAIL

         S: 250
         E: 552, 451, 452, 550, 553, 503, 455, 555

      RCPT

         S: 250, 251 (but see Section 3.4 for discussion of 251 and 551)
         E: 550, 551, 552, 553, 450, 451, 452, 503, 455, 555

      DATA

         I: 354 -> data -> S: 250

                           E: 552, 554, 451, 452

                           E: 450, 550 (rejections for policy reasons)

         E: 503, 554

      RSET

         S: 250

      VRFY

         S: 250, 251, 252
         E: 550, 551, 553, 502, 504

      EXPN

         S: 250, 252
         E: 550, 500, 502, 504

      HELP

         S: 211, 214
         E: 502, 504

      NOOP

         S: 250

      QUIT

         S: 221
      接続確立

         S: 220
         E: 554

      EHLO または HELO

         S: 250
         E: 504 (準拠する実装は、極めてあいまいな場合にのみこのコードを
         返すことができる), 550, 502 (EHLO をサポートしない古いサーバー
         にのみ許される)

      MAIL

         S: 250
         E: 552, 451, 452, 550, 553, 503, 455, 555

      RCPT

         S: 250, 251 (ただし 251・551 に関するセクション 3.4 の議論を
                      参照)
         E: 550, 551, 552, 553, 450, 451, 452, 503, 455, 555

      DATA

         I: 354 -> data -> S: 250

                           E: 552, 554, 451, 452

                           E: 450, 550 (ポリシーを理由に拒否)

         E: 503, 554

      RSET

         S: 250

      VRFY

         S: 250, 251, 252
         E: 550, 551, 553, 502, 504

      EXPN

         S: 250, 252
         E: 550, 500, 502, 504

      HELP

         S: 211, 214
         E: 502, 504

      NOOP

         S: 250

      QUIT

         S: 221

4.4. Trace Information 4.4. トレース情報

When an SMTP server receives a message for delivery or further processing, it MUST insert trace ("time stamp" or "Received") information at the beginning of the message content, as discussed in Section 4.1.1.4. SMTP サーバーが配送またはさらなる処理のためにメッセージを受信したとき、セクション 4.1.1.4 で議論されている通り、メッセージ内容の先頭にトレース("タイムスタンプ(time stamp)" または "Received")情報を追加しなければならない(MUST)。

This line MUST be structured as follows: この行は以下のように構造化されなければならない(MUST):

An Internet mail program MUST NOT change or delete a Received: line that was previously added to the message header section. SMTP servers MUST prepend Received lines to messages; they MUST NOT change the order of existing lines or insert Received lines in any other location. インターネットメールプログラムは、メッセージのヘッダセクションにすでに追加されている Received: 行を変更したり削除したりしてはならない(MUST NOT)。SMTP サーバーはメッセージの先頭に Received 行を追加しなければならない(MUST)。既存の行の順序を変更したり、別の位置に Received 行を挿入したりしてはならない(MUST NOT)。

As the Internet grows, comparability of Received header fields is important for detecting problems, especially slow relays. SMTP servers that create Received header fields SHOULD use explicit offsets in the dates (e.g., -0800), rather than time zone names of any type. Local time (with an offset) SHOULD be used rather than UT when feasible. This formulation allows slightly more information about local circumstances to be specified. If UT is needed, the receiver need merely do some simple arithmetic to convert the values. Use of UT loses information about the time zone-location of the server. If it is desired to supply a time zone name, it SHOULD be included in a comment. インターネットの成長に伴ない、問題(特に低速リレー)を検出するために、Received ヘッダフィールドの比較可能性が重要となっている。Received ヘッダフィールドを生成する SMTP サーバーは、日付において如何なる種類のタイムゾーン名でもなく、明示的なオフセット(例えば -0800)を使用するべきである(SHOULD)。適切であれば、UT ではなく、(オフセットを持つ)ローカル時刻を使用するべきである(SHOULD)。この定式化により、ローカル環境に関して少しだけ多くの情報を特定することが可能となる。UT が必要な場合、受信者は値を変換するために単純な計算を行うだけでよい。UT の使用はサーバーのタイムゾーン位置に関する情報を失う。タイムゾーン名を提供したい場合、コメント内に含めるべきである(SHOULD)。

When the delivery SMTP server makes the "final delivery" of a message, it inserts a return-path line at the beginning of the mail data. This use of return-path is required; mail systems MUST support it. The return-path line preserves the information in the <reverse- path> from the MAIL command. Here, final delivery means the message has left the SMTP environment. Normally, this would mean it had been delivered to the destination user or an associated mail drop, but in some cases it may be further processed and transmitted by another mail system. 配送 SMTP サーバーがメッセージの "最終配送(final delivery)" を行う場合、メールデータの先頭に return-path 行を挿入する。この return-path の使用は必須であり、メールシステムはこれをサポートしなければならない(MUST)。return-path 行は、MAIL コマンドの <reverse-path> の情報を保持する。ここで最終配送は、メッセージが SMTP 環境から出て行くことを意味する。通常これは、宛先ユーザーまたは対応するメールドロップにメッセージが配送されたことを意味するが、場合によっては別のメールシステムによってさらに処理され、転送されてもよい。

It is possible for the mailbox in the return path to be different from the actual sender's mailbox, for example, if error responses are to be delivered to a special error handling mailbox rather than to the message sender. When mailing lists are involved, this arrangement is common and useful as a means of directing errors to the list maintainer rather than the message originator. return path 内のメールボックスが実際の送信者のメールボックスと異なることも可能である。例えばエラー応答がメッセージ送信者にではなく特別なエラー処理用メールボックスに配送されるべき場合である。メーリングリストが関係する場合、エラーをメッセージ発信者ではなくリスト管理者に向ける方法として、この処置は一般的かつ便利である。

The text above implies that the final mail data will begin with a return path line, followed by one or more time stamp lines. These lines will be followed by the rest of the mail data: first the balance of the mail header section and then the body (RFC 5322 [4]). 上記の文章は、最終的なメールデータが return path 行で始まり、次にひとつまたは複数のタイムスタンプ行が続くことを意味する。これらの行の次に残りのメールデータが続く。最初にメールヘッダセクションの残り、次にボディである(RFC 5322 [4])。

It is sometimes difficult for an SMTP server to determine whether or not it is making final delivery since forwarding or other operations may occur after the message is accepted for delivery. Consequently, any further (forwarding, gateway, or relay) systems MAY remove the return path and rebuild the MAIL command as needed to ensure that exactly one such line appears in a delivered message. 配送のためにメッセージが受け入れられた後に転送または他の操作が発生する可能性があるため、SMTP サーバーが最終配送を行っているかどうかを判断するのは時に困難である。したがって追加の(転送・ゲートウェイ・リレー)システムは、配送されたメッセージ内にそのような行が正確に 1 行だけ現れることを保証するために、必要に応じて return path を削除し、MAIL コマンドを再構築してよい(MAY)。

A message-originating SMTP system SHOULD NOT send a message that already contains a Return-path header field. SMTP servers performing a relay function MUST NOT inspect the message data, and especially not to the extent needed to determine if Return-path header fields are present. SMTP servers making final delivery MAY remove Return- path header fields before adding their own. メッセージを発信する SMTP システムは、すでに Return-path ヘッダフィールドを含むメッセージを送信しないべきである(SHOULD NOT)。リレー機能を実行する SMTP サーバーは、メッセージデータの検査、特に Return-path フィールドが現れるかどうかを判断するのに必要となる範囲外の検査を行ってはならない(MUST NOT)。最終配送を行う SMTP サーバーは、自身で Return-path ヘッダを追加する前にそれを削除してもよい(MAY)。

The primary purpose of the Return-path is to designate the address to which messages indicating non-delivery or other mail system failures are to be sent. For this to be unambiguous, exactly one return path SHOULD be present when the message is delivered. Systems using RFC 822 syntax with non-SMTP transports SHOULD designate an unambiguous address, associated with the transport envelope, to which error reports (e.g., non-delivery messages) should be sent. Return-path の主な目的は、配送不能通知や他のメールシステム障害の通知を表すメッセージが送られるべきアドレスを指定することである。これを一義的なものにするために、メッセージが配送されたとき、正確にひとつの return path が提供されるべきである(SHOULD)。非 SMTP トランスポートと共に RFC 822 の構文を使用するシステムは、エラー報告(例えば配送不能メッセージ)が送信されるべき一義的な(そのトランスポートのエンベロープに対応する)アドレスを指定するべきである(SHOULD)。

Historical note: Text in RFC 822 that appears to contradict the use of the Return-path header field (or the envelope reverse-path address from the MAIL command) as the destination for error messages is not applicable on the Internet. The reverse-path address (as copied into the Return-path) MUST be used as the target of any mail containing delivery error messages. 歴史的注記:エラーメッセージの宛先として Return-path ヘッダフィールド(または MAIL コマンドからのエンベロープ reverse-path アドレス)を使用することと矛盾するように思える RFC 822 の文章は、インターネットには当てはまらない。(Return-path にコピーされる) reverse-path アドレスは配送エラーメッセージを含むあらゆるメッセージの宛先として使用されなければならない(MUST)。

In particular: 具体的に言うと:

The server must give special treatment to cases in which the processing following the end of mail data indication is only partially successful. This could happen if, after accepting several recipients and the mail data, the SMTP server finds that the mail data could be successfully delivered to some, but not all, of the recipients. In such cases, the response to the DATA command MUST be an OK reply. However, the SMTP server MUST compose and send an "undeliverable mail" notification message to the originator of the message. サーバーは、メールデータの終了指示に続く処理が部分的にのみ成功した場合に特別な扱いをしなければならない。これは SMTP サーバーが複数の受信者とメールデータとを受け入れた後、メールデータが受信者の一部に配送され、その他には配送されないことを知った場合に起こり得る。そのような場合、DATA コマンドへの応答は OK リプライでなければならない(MUST)。しかしながら SMTP サーバーは "配送不能メール(undeliverable mail)" 通知メッセージを構築し、それをメッセージの発信者に送信しなければならない(MUST)。

A single notification listing all of the failed recipients or separate notification messages MUST be sent for each failed recipient. For economy of processing by the sender, the former SHOULD be used when possible. Note that the key difference between handling aliases (Section 3.9.1) and forwarding (this subsection) is the change to the backward-pointing address in this case. All notification messages about undeliverable mail MUST be sent using the MAIL command (even if they result from processing the obsolete SEND, SOML, or SAML commands) and MUST use a null return path as discussed in Section 3.6. 失敗した各受信者に対し、失敗した受信者のすべてをリストする単一の通知、または個別の通知メッセージが送信されなければならない(MUST)。送信者による処理の節約のために、可能であれば前者を使用するべきである(SHOULD)。エイリアス(セクション 3.9.1)と転送(本サブセクション)との間の重要な違いは、この場合、後方指示アドレス(backward-pointing address)の変更である。配送不能メールに関するすべての通知メッセージは、(たとえそれが廃止された SEND・SOML・SAML の各コマンドを処理した結果であったとしても) MAIL コマンドを使用して送信されなければならず(MUST)、セクション 3.6 で議論した通り、空の return path を使用しなければならない(MUST)。

The time stamp line and the return path line are formally defined as follows (the definitions for "FWS" and "CFWS" appear in RFC 5322 [4]): タイムスタンプ行と return path 行とは、公式には以下のように定義される("FWS" および "CFWS" の定義は RFC 5322 [4] に見られる):

   Return-path-line  = "Return-Path:" FWS Reverse-path <CRLF>

   Time-stamp-line  = "Received:" FWS Stamp <CRLF>

   Stamp          = From-domain By-domain Opt-info [CFWS] ";"
                  FWS date-time
                  ; where "date-time" is as defined in RFC 5322 [4]
                  ; but the "obs-" forms, especially two-digit
                  ; years, are prohibited in SMTP and MUST NOT be used.

   From-domain    = "FROM" FWS Extended-Domain

   By-domain      = CFWS "BY" FWS Extended-Domain

   Extended-Domain  = Domain /
                    ( Domain FWS "(" TCP-info ")" ) /
                    ( address-literal FWS "(" TCP-info ")" )

   TCP-info       = address-literal / ( Domain FWS address-literal )
                  ; Information derived by server from TCP connection
                  ; not client EHLO.

   Opt-info       = [Via] [With] [ID] [For]
                  [Additional-Registered-Clauses]

   Via            = CFWS "VIA" FWS Link

   With           = CFWS "WITH" FWS Protocol

   ID             = CFWS "ID" FWS ( Atom / msg-id )
                  ; msg-id is defined in RFC 5322 [4]

   For            = CFWS "FOR" FWS ( Path / Mailbox )

   Additional-Registered-Clauses  = CFWS Atom FWS String
                                  ; Additional standard clauses may be
                                  added in this
                                  ; location by future standards and
                                  registration with
                                  ; IANA.  SMTP servers SHOULD NOT use
                                  unregistered
                                  ; names.  See Section 8.

   Link           = "TCP" / Addtl-Link

   Addtl-Link     = Atom
                  ; Additional standard names for links are
                  ; registered with the Internet Assigned Numbers
                  ; Authority (IANA).  "Via" is primarily of value
                  ; with non-Internet transports.  SMTP servers
                  ; SHOULD NOT use unregistered names.

   Protocol       = "ESMTP" / "SMTP" / Attdl-Protocol

   Attdl-Protocol = Atom
                  ; Additional standard names for protocols are
                  ; registered with the Internet Assigned Numbers
                  ; Authority (IANA) in the "mail parameters"
                  ; registry [9].  SMTP servers SHOULD NOT
                  ; use unregistered names.
   Return-path-line  = "Return-Path:" FWS Reverse-path <CRLF>

   Time-stamp-line  = "Received:" FWS Stamp <CRLF>

   Stamp          = From-domain By-domain Opt-info [CFWS] ";"
                  FWS date-time
                  ; "date-time" は RFC 5322 [4] で定義されている通り
                  ; だが、"obs-" 形式、特に 2 桁の年は、SMTP において
                  ; 禁止されており、使用してはならない(MUST NOT)。

   From-domain    = "FROM" FWS Extended-Domain

   By-domain      = CFWS "BY" FWS Extended-Domain

   Extended-Domain  = Domain /
                    ( Domain FWS "(" TCP-info ")" ) /
                    ( address-literal FWS "(" TCP-info ")" )

   TCP-info       = address-literal / ( Domain FWS address-literal )
                  ; サーバーによってクライアントの EHLO からではなく
                  ; TCP 接続から抽出される情報

   Opt-info       = [Via] [With] [ID] [For]
                  [Additional-Registered-Clauses]

   Via            = CFWS "VIA" FWS Link

   With           = CFWS "WITH" FWS Protocol

   ID             = CFWS "ID" FWS ( Atom / msg-id )
                  ; msg-id is defined in RFC 5322 [4]

   For            = CFWS "FOR" FWS ( Path / Mailbox )

   Additional-Registered-Clauses  = CFWS Atom FWS String
                                  ; この位置に将来の標準と IANA による
                                  ; 登録とによる追加の標準節が追加されて
                                  ; よい。SMTP サーバーは 未登録の名前を
                                  ; 使用しないべきである(SHOULD)。
                                  ; セクション 8 参照。

   Link           = "TCP" / Addtl-Link

   Addtl-Link     = Atom
                  ; リンクのための追加の標準名は Internet Assigned
                  ; Numbers Authority (IANA) によって登録される。
                  ; "Via" は主に非インターネットトランスポート
                  ; において使用される値である。SMTP サーバーは未登録の
                  ; 名前を使用しないべきである(SHOULD NOT)。

   Protocol       = "ESMTP" / "SMTP" / Attdl-Protocol

   Attdl-Protocol = Atom
                  ; プロトコルのための追加の標準名は Internet Assigned
                  ; Numbers Authority (IANA) によって "mail
                  ; parameters" [9] に登録される。SMTP サーバーは未登録の
                  ; 名前を使用しないべきである(SHOULD NOT)。

4.5. Additional Implementation Issues 4.5. 追加の実装問題

4.5.1. Minimum Implementation 4.5.1. 最小限の実装

In order to make SMTP workable, the following minimum implementation MUST be provided by all receivers. The following commands MUST be supported to conform to this specification: SMTP を実行可能にするためには、すべての受信者が以下の最小限の実装を提供しなければならない(MUST)。本仕様に適合するためには、以下のコマンドがサポートされなければならない(MUST):

      EHLO
      HELO
      MAIL
      RCPT
      DATA
      RSET
      NOOP
      QUIT
      VRFY

Any system that includes an SMTP server supporting mail relaying or delivery MUST support the reserved mailbox "postmaster" as a case- insensitive local name. This postmaster address is not strictly necessary if the server always returns 554 on connection opening (as described in Section 3.1). The requirement to accept mail for postmaster implies that RCPT commands that specify a mailbox for postmaster at any of the domains for which the SMTP server provides mail service, as well as the special case of "RCPT TO:<Postmaster>" (with no domain specification), MUST be supported. メールのリレーまたは配送をサポートする SMTP サーバーを含むすべてのシステムは、大文字・小文字を区別しないローカル名として、予約済みのメールボックス "postmaster" をサポートしなければならない(MUST)。厳密には、接続開始時(セクション 3.1 で説明されている)にサーバーが常に 554 を返すサーバーの場合、この postmaster アドレスは必要ない。postmaster のためのメールを受け入れるこの要求事項は、メールサービスを提供する SMTP サーバーのための任意のドメインにおいて、postmaster のためのメールボックスを指定する RCPT コマンドだけでなく、"RCPT TO:<Postmaster>"(ドメイン指定なし)という特別なケースがサポートされなければならない(MUST)ことを意味する。

SMTP systems are expected to make every reasonable effort to accept mail directed to Postmaster from any other system on the Internet. In extreme cases -- such as to contain a denial of service attack or other breach of security -- an SMTP server may block mail directed to Postmaster. However, such arrangements SHOULD be narrowly tailored so as to avoid blocking messages that are not part of such attacks. SMTP システムはインターネット上の他の任意のシステムから Postmaster に向けられたメールを受け入れるために、あらゆる合理的な努力をすることを期待される。極端な場合、例えばサービス不能攻撃または他の秘密保持違反を含むために、SMTP サーバーは Postmaster 宛てのメールをブロックしてもよい。しかしながらそのような処置は、そのような攻撃の一部ではないメッセージのブロックを避けるために、注意深く調整されるべきである(SHOULD)。

4.5.2. Transparency 4.5.2. 透過性

Without some provision for data transparency, the character sequence "<CRLF>.<CRLF>" ends the mail text and cannot be sent by the user. In general, users are not aware of such "forbidden" sequences. To allow all user composed text to be transmitted transparently, the following procedures are used: 文字シーケンス "<CRLF>.<CRLF>" はメールテキストを終了するため、データ透過性のための何らかの規定がないとユーザーがそれを送信できない。一般にユーザーは、そのような "禁止された(forbidden)" シーケンスを知らない。ユーザーの組み立てたすべてのテキストが透過的に転送されるように、以下の手続きが使用される:

The mail data may contain any of the 128 ASCII characters. All characters are to be delivered to the recipient's mailbox, including spaces, vertical and horizontal tabs, and other control characters. If the transmission channel provides an 8-bit byte (octet) data stream, the 7-bit ASCII codes are transmitted, right justified, in the octets, with the high-order bits cleared to zero. See Section 3.6 for special treatment of these conditions in SMTP systems serving a relay function. メールデータは 128 の ASCII 文字すべてを含むことができる。空白・垂直タブ・水平タブ・他の制御文字を含め、すべての文字が受信者のメールボックスに配送されるべきである。通信チャネルが 8 ビットバイト(オクテット)のデータストリームを提供する場合、7 ビット ASCII コードは右詰めで上位ビットがゼロにクリアされたオクテット内を転送される。リレー機能を提供する SMTP システムにおけるこれらの状況の特別な扱いに付いては、セクション 3.6 を参照してほしい。

In some systems, it may be necessary to transform the data as it is received and stored. This may be necessary for hosts that use a different character set than ASCII as their local character set, that store data in records rather than strings, or which use special character sequences as delimiters inside mailboxes. If such transformations are necessary, they MUST be reversible, especially if they are applied to mail being relayed. 一部のシステムでは、受信と保存とのためにデータを変換する必要がある。これは、ローカルの文字セットとして ASCII 以外を使用しているホストや、文字列ではなくレコードにデータを保存するホスト、メールボックス内の区切りとして特別な文字シーケンスを使用するホストなどの場合に必要だろう。そのような変換が必要な場合、特にそれがリレーされるメールに適用される場合、それは可逆でなければならない(MUST)。

4.5.3. Sizes and Timeouts 4.5.3. サイズとタイムアウト

4.5.3.1. Size Limits and Minimums 4.5.3.1. サイズの上限と下限

There are several objects that have required minimum/maximum sizes. Every implementation MUST be able to receive objects of at least these sizes. Objects larger than these sizes SHOULD be avoided when possible. However, some Internet mail constructs such as encoded X.400 addresses (RFC 2156 [35]) will often require larger objects. Clients MAY attempt to transmit these, but MUST be prepared for a server to reject them if they cannot be handled by it. To the maximum extent possible, implementation techniques that impose no limits on the length of these objects should be used. いくつかのオブジェクトは必須の最小/最大サイズを持つ。すべての実装は、すくなくともこれらのサイズのオブジェクトを受信できなければならない(MUST)。これらのサイズより大きいオブジェクトは、可能であれば避けるべきである(SHOULD)。しかしながら一部のインターネットメール構造(例えば符号化された X.400 アドレス(RFC 2156 [35]))は、しばしばより大きいオブジェクトを要求する。クライアントはこれらを送信しようとしてもよい(MAY)が、サーバーが処理できない場合にはそれが拒否されることへの準備ができていなければならない(MUST)。可能な最大の範囲まで、これらのオブジェクトの長さに制限を課さない実装技術が使用されるべきである。

Extensions to SMTP may involve the use of characters that occupy more than a single octet each. This section therefore specifies lengths in octets where absolute lengths, rather than character counts, are intended. SMTP 拡張は単一オクテット以上を占める文字の使用を必要としてもよい。そのためこのセクションでは、絶対的な長さを意図する場合、文字数ではなくオクテット長を規定する。

4.5.3.1.1. Local-part 4.5.3.1.1. Local-part

The maximum total length of a user name or other local-part is 64 octets. ユーザー名または他の local-part の最大長は 64 オクテットである。

4.5.3.1.2. Domain 4.5.3.1.2. ドメイン

The maximum total length of a domain name or number is 255 octets. ドメインの名前または数値の最大長は 255 オクテットである。

4.5.3.1.3. Path 4.5.3.1.3. パス

The maximum total length of a reverse-path or forward-path is 256 octets (including the punctuation and element separators). reverse-path または forward-path の最大長は 256 オクテットである(句読点や要素区切りを含む)。

4.5.3.1.4. Command Line 4.5.3.1.4. コマンドライン

The maximum total length of a command line including the command word and the <CRLF> is 512 octets. SMTP extensions may be used to increase this limit. コマンドの単語と <CRLF> とを含むコマンド行の最大長は 512 オクテットである。SMTP 拡張はこの制限を増やしてもよい。

4.5.3.1.5. Reply Line 4.5.3.1.5. リプライ行

The maximum total length of a reply line including the reply code and the <CRLF> is 512 octets. More information may be conveyed through multiple-line replies. リプライコードと <CRLF> とを含むリプライ行の最大長は 512 オクテットである。それ以上の情報は複数行リプライによって伝えることができる。

4.5.3.1.6. Text Line 4.5.3.1.6. テキスト行

The maximum total length of a text line including the <CRLF> is 1000 octets (not counting the leading dot duplicated for transparency). This number may be increased by the use of SMTP Service Extensions. <CRLF> を含むテキスト行の最大長は 1000 オクテットである(透過性のための先行ドットを含まない)。この値は SMTP サービス拡張を使用することで増やされてもよい。

4.5.3.1.7. Message Content 4.5.3.1.7. メッセージ内容

The maximum total length of a message content (including any message header section as well as the message body) MUST BE at least 64K octets. Since the introduction of Internet Standards for multimedia mail (RFC 2045 [21]), message lengths on the Internet have grown dramatically, and message size restrictions should be avoided if at all possible. SMTP server systems that must impose restrictions SHOULD implement the "SIZE" service extension of RFC 1870 [10], and SMTP client systems that will send large messages SHOULD utilize it when possible. メッセージ内容(メッセージ本文だけでなく、すべてのメッセージヘッダセクションを含む)の最大長は、少なくとも 64K オクテットでなければならない(MUST)。マルチメディアメールのためのインターネット標準(RFC 2045 [21])の導入以来、インターネット上のメッセージ長は著しく増加したため、メッセージサイズの制限は可能な限り避けるべきである。制限を課す SMTP サーバーシステムは RFC 1870 [10] の "SIZE" サービス拡張を実装するべきであり(SHOULD)、大きいメッセージを送信する SMTP クライアントシステムは可能であればそれを使用するべきである(SHOULD)。

4.5.3.1.8. Recipients Buffer 4.5.3.1.8. 受信者バッファ

The minimum total number of recipients that MUST be buffered is 100 recipients. Rejection of messages (for excessive recipients) with fewer than 100 RCPT commands is a violation of this specification. The general principle that relaying SMTP server MUST NOT, and delivery SMTP servers SHOULD NOT, perform validation tests on message header fields suggests that messages SHOULD NOT be rejected based on the total number of recipients shown in header fields. A server that imposes a limit on the number of recipients MUST behave in an orderly fashion, such as rejecting additional addresses over its limit rather than silently discarding addresses previously accepted. A client that needs to deliver a message containing over 100 RCPT commands SHOULD be prepared to transmit in 100-recipient "chunks" if the server declines to accept more than 100 recipients in a single message. 最低 100 の受信者がバッファされなければならない(MUST)。100 の RCPT コマンドより少ないメッセージ受信者の拒否(受信者数が多すぎるため)は、本仕様に違反する。メッセージヘッダフィールドの妥当性確認をリレー SMTP サーバーが行ってはならず(MUST NOT)、配送 SMTP サーバーが行わないべき(SHOULD NOT)であるという一般原則は、ヘッダフィールド内に現れる総受信者数に基づいてメッセージを拒否しないべき(SHOULD NOT)であることを示唆する。受信者数に制限を課すサーバーは、一度受け入れたアドレスを暗黙的に破棄するのではなく、制限を超えた追加のアドレスを拒否するなど、規則正しく振る舞わなければならない(MUST)。サーバーが単独メッセージにおいて 100 以上の受信者の受け入れを拒否する場合、100 以上の RCPT コマンドを含むメッセージを配送する必要のあるクライアントは、100 受信者ごとの "かたまり(chunks)" で送信する準備をしておくべきである(SHOULD)。

4.5.3.1.9. Treatment When Limits Exceeded 4.5.3.1.9. 制限を超えた場合の扱い

Errors due to exceeding these limits may be reported by using the reply codes. Some examples of reply codes are: これらの制限を越えたことによるエラーは、リプライコードを使用して報告されてよい。一部のリプライコードの例を示す:

      500 Line too long.

or または

      501 Path too long

or または

      452 Too many recipients (see below)

or または

      552 Too much mail data.
4.5.3.1.10. Too Many Recipients Code 4.5.3.1.10. 受信者が多すぎる場合のコード

RFC 821 [1] incorrectly listed the error where an SMTP server exhausts its implementation limit on the number of RCPT commands ("too many recipients") as having reply code 552. The correct reply code for this condition is 452. Clients SHOULD treat a 552 code in this case as a temporary, rather than permanent, failure so the logic below works. RFC 821 [1] は、SMTP サーバーが RCPT コマンドの数の実装上限まで使い果たした場合にリプライコード 552 を持つと、誤ってリストしていた。この状況における正しいリプライコードは 452 である。以下のロジックが正しく動作するように、クライアントはこの場合のコード 552 を永続的な障害ではなく一時的な障害として扱うべきである(SHOULD)。

When a conforming SMTP server encounters this condition, it has at least 100 successful RCPT commands in its recipients buffer. If the server is able to accept the message, then at least these 100 addresses will be removed from the SMTP client's queue. When the client attempts retransmission of those addresses that received 452 responses, at least 100 of these will be able to fit in the SMTP server's recipients buffer. Each retransmission attempt that is able to deliver anything will be able to dispose of at least 100 of these recipients. 準拠する SMTP サーバーがこの状況に遭遇した場合、自身の受信者バッファに少なくとも 100 の成功した RCPT コマンドを持つ。サーバーがメッセージを受け入れられる場合、少なくともそれら 100 のアドレスが SMTP クライアントのキューから削除されるだろう。そのクライアントが 452 応答を受信したアドレスの再送信を試みるとき、少なくともその内の 100 のアドレスが SMTP サーバーの受信者バッファに入ることができるだろう。何らかを配送する再送信の試みごとに、それらの受信者の少なくとも 100 個が捨てられてもよいことになる。

If an SMTP server has an implementation limit on the number of RCPT commands and this limit is exhausted, it MUST use a response code of 452 (but the client SHOULD also be prepared for a 552, as noted above). If the server has a configured site-policy limitation on the number of RCPT commands, it MAY instead use a 5yz response code. In particular, if the intent is to prohibit messages with more than a site-specified number of recipients, rather than merely limit the number of recipients in a given mail transaction, it would be reasonable to return a 503 response to any DATA command received subsequent to the 452 (or 552) code or to simply return the 503 after DATA without returning any previous negative response. SMTP サーバーが RCPT コマンドの数に実装上の上限を持ち、その上限まで使い果たした場合、応答コード 452 を使用しなければならない(MUST)(ただし前述の通り、クライアントは 552 にも備えるべきである(SHOULD))。サーバーが RCPT コマンドの数に設定可能なサイトポリシーによる上限を持つ場合、代わりに応答コード 5yz を使用してもよい(MAY)。特にその目的が、ある特定のメールトランザクションにおける受信者数の単なる上限ではなく、サイト固有の受信者数上限を超えるメッセージを禁止することである場合、コード 452(または 552)の後で受信したすべての DATA コマンドに対して 503 応答を返すか、あるいは以前の否定応答を何も返さずに、DATA コマンドの後に単純に 503 を返すかするのが合理的だろう。

4.5.3.2. Timeouts 4.5.3.2. タイムアウト

An SMTP client MUST provide a timeout mechanism. It MUST use per- command timeouts rather than somehow trying to time the entire mail transaction. Timeouts SHOULD be easily reconfigurable, preferably without recompiling the SMTP code. To implement this, a timer is set for each SMTP command and for each buffer of the data transfer. The latter means that the overall timeout is inherently proportional to the size of the message. SMTP クライアントはタイムアウトのメカニズムを提供しなければならない(MUST)。これは、時間までに何とかしてメールトランザクション全体を試みるのではなく、コマンドごとのタイムアウトを使用しなければならない(MUST)。タイムアウトは簡単に再設定が可能であるべき(SHOULD)であり、SMTP コードのリコンパイルを必要としないことが望ましい。これを実装するために、各 SMTP コマンドと各データ転送のバッファとのためにタイマーがセットされる。後者は全体のタイムアウトが本質的にメッセージのサイズに比例することを意味する。

Based on extensive experience with busy mail-relay hosts, the minimum per-command timeout values SHOULD be as follows: 活動的なメールリレーホストの多くの経験に基づき、最小限のコマンドごとのタイムアウト値は以下の通りであるべきである(SHOULD):

4.5.3.2.1. Initial 220 Message: 5 Minutes 4.5.3.2.1. 初期 220 メッセージ: 5 分

An SMTP client process needs to distinguish between a failed TCP connection and a delay in receiving the initial 220 greeting message. Many SMTP servers accept a TCP connection but delay delivery of the 220 message until their system load permits more mail to be processed. SMTP クライアントプロセスは TCP 接続の失敗と最初の 220 グリーティングメッセージの受信の遅延とを区別する必要がある。多くの SMTP サーバーは TCP 接続を受け入れるが、システム負荷が下がって次のメールの処理をできるようになるまで 220 メッセージの配送は遅延する。

4.5.3.2.2. MAIL Command: 5 Minutes 4.5.3.2.2. MAIL コマンド:5 分
4.5.3.2.3. RCPT Command: 5 Minutes 4.5.3.2.3. RCPT コマンド:5 分

A longer timeout is required if processing of mailing lists and aliases is not deferred until after the message was accepted. メーリングリストとエイリアスとの処理がメッセージの受け入れ後まで保留される場合、さらに長いタイムアウトが必要とされる。

4.5.3.2.4. DATA Initiation: 2 Minutes 4.5.3.2.4. DATA 開始:2 分

This is while awaiting the "354 Start Input" reply to a DATA command. これは DATA コマンドに対する "354 Start Input" を待つ時間である。

4.5.3.2.5. Data Block: 3 Minutes 4.5.3.2.5. Data ブロック:3 分

This is while awaiting the completion of each TCP SEND call transmitting a chunk of data. これはデータのかたまりを送信する各 TCP SEND 呼び出しの完了を待つ時間である。

4.5.3.2.6. DATA Termination: 10 Minutes. 4.5.3.2.6. DATA 終了:10 分

This is while awaiting the "250 OK" reply. When the receiver gets the final period terminating the message data, it typically performs processing to deliver the message to a user mailbox. A spurious timeout at this point would be very wasteful and would typically result in delivery of multiple copies of the message, since it has been successfully sent and the server has accepted responsibility for delivery. See Section 6.1 for additional discussion. これは "250 OK" リプライを待つ時間である。受信者がメッセージデータを終了する最後のピリオドを受信したとき、典型的にはユーザーのメールボックスにそのメッセージを配送する処理を実行する。この時点での偽のタイムアウトは、メッセージが正常に送信されておりサーバーが配送の責任を引き受けているため完全に時間の無駄であり、一般にメッセージの複数のコピーの配送を引き起こす。追加の議論に付いてはセクション 6.1 を参照してほしい。

4.5.3.2.7. Server Timeout: 5 Minutes. 4.5.3.2.7. サーバータイムアウト:5 分

An SMTP server SHOULD have a timeout of at least 5 minutes while it is awaiting the next command from the sender. SMTP サーバーは送信者からの次のコマンドを待つ間に、少なくとも 5 分のタイムアウトを持つべきである(SHOULD)。

4.5.4. Retry Strategies 4.5.4. リトライ戦略

The common structure of a host SMTP implementation includes user mailboxes, one or more areas for queuing messages in transit, and one or more daemon processes for sending and receiving mail. The exact structure will vary depending on the needs of the users on the host and the number and size of mailing lists supported by the host. We describe several optimizations that have proved helpful, particularly for mailers supporting high traffic levels. ホスト SMTP 実装の一般的な構造は、ユーザーメールボックス、送信中のメッセージをキューイングするひとつまたは複数の領域、メールを送受信するためのひとつまたは複数のデーモンプロセスが含まれる。正確な構造はそのホスト上のユーザーの要求とそのホストがサポートするメーリングリストの数とサイズとに依存して異なるだろう。私たちは、特に高いトラフィックレベルをサポートするメーラのために有益なことが明かになっているいくつかの最適化を説明する。

Any queuing strategy MUST include timeouts on all activities on a per-command basis. A queuing strategy MUST NOT send error messages in response to error messages under any circumstances. すべてのキューイング戦略は、コマンドごとの原則ですべての動作にタイムアウトを含まなければならない(MUST)。キューイング戦略は、どのような状況下であってもエラーメッセージに対してエラーメッセージを送信してはならない(MUST NOT)。

4.5.4.1. Sending Strategy 4.5.4.1. 送信戦略

The general model for an SMTP client is one or more processes that periodically attempt to transmit outgoing mail. In a typical system, the program that composes a message has some method for requesting immediate attention for a new piece of outgoing mail, while mail that cannot be transmitted immediately MUST be queued and periodically retried by the sender. A mail queue entry will include not only the message itself but also the envelope information. SMTP クライアントの一般的なモデルは、送信メールの転送を定期的に試みるひとつまたは複数のプロセスである。典型的なシステムでは、メッセージを組み立てるプログラムは新しい送信メールを即座に送信するリクエストを行うための何らかの手段を持ち、一方で、即時に送信できなかったメールはキューに入れられ、送信者によって定期的に再試行されなければならない(MUST)。メールキューエントリは、メッセージ自体だけでなく、エンベロープ情報も含むことになるだろう。

The sender MUST delay retrying a particular destination after one attempt has failed. In general, the retry interval SHOULD be at least 30 minutes; however, more sophisticated and variable strategies will be beneficial when the SMTP client can determine the reason for non-delivery. 送信者は一度送信に失敗した特定の宛先への再試行を遅延させなければならない(MUST)。一般に再送信の間隔は少なくとも 30 分であるべき(SHOULD)だが、SMTP クライアントが配送不能の理由を判断できる場合には、より柔軟な戦略が有益だろう。

Retries continue until the message is transmitted or the sender gives up; the give-up time generally needs to be at least 4-5 days. It MAY be appropriate to set a shorter maximum number of retries for non- delivery notifications and equivalent error messages than for standard messages. The parameters to the retry algorithm MUST be configurable. 再試行は、メッセージが送信されるか、送信者があきらめるまで続けられる。あきらめるまでの時間は一般に少なくとも 4・5 日である必要がある。配送不能通知や同等のエラーメッセージには、標準的なメッセージよりも少ない最大リトライ数を設定してもよい(MAY)。再試行アルゴリズムへのパラメータは設定可能でなければならない(MUST)。

A client SHOULD keep a list of hosts it cannot reach and corresponding connection timeouts, rather than just retrying queued mail items. クライアントはキューイングされたメールを単純に再試行するのではなく、到達できないホストとそれに対応する接続タイムアウトとのリストを保持するべきである(SHOULD)。

Experience suggests that failures are typically transient (the target system or its connection has crashed), favoring a policy of two connection attempts in the first hour the message is in the queue, and then backing off to one every two or three hours. 一般に失敗は一時的なもの(相手側のシステムまたは通信の障害)であることが経験的に示されている。メッセージがキューに入った最初の 1 時間の内に 2 回の接続を試み、その後は 2 時間または 3 時間に一度に頻度を落とすというポリシーが望ましい。

The SMTP client can shorten the queuing delay in cooperation with the SMTP server. For example, if mail is received from a particular address, it is likely that mail queued for that host can now be sent. Application of this principle may, in many cases, eliminate the requirement for an explicit "send queues now" function such as ETRN, RFC 1985 [36]. SMTP クライアントは SMTP サーバーと協力してキューイングの遅延を短縮することができる。例えばある特定のアドレスからメールを受信した場合、そのホスト宛てのキューイングされたメールはその時点で送信できるだろう。多くの場合この原理の適用は、例えば ETRN(RFC 1985 [36])のような明示的な "キューの即時送信(send queues now)" 機能の必要性を削減するだろう。

The strategy may be further modified as a result of multiple addresses per host (see below) to optimize delivery time versus resource usage. この戦略は配送時間とリソース使用量とを最適化するために、ホストごとの複数アドレス(後述)の結果としてさらに変更されてもよい。

An SMTP client may have a large queue of messages for each unavailable destination host. If all of these messages were retried in every retry cycle, there would be excessive Internet overhead and the sending system would be blocked for a long period. Note that an SMTP client can generally determine that a delivery attempt has failed only after a timeout of several minutes, and even a one-minute timeout per connection will result in a very large delay if retries are repeated for dozens, or even hundreds, of queued messages to the same host. SMTP クライアントは利用できない宛先ホストごとの巨大なメッセージキューを持つ可能性がある。それらのメッセージのすべてが各再試行サイクルで再試行されると、過度のインターネットのオーバーヘッドが発生したり、送信システムが長時間にわたってブロックされたりするだろう。一般に SMTP クライアントは、数分のタイムアウトの後にのみ配送が失敗したと判断できることに注意してほしい。たとえ接続ごとのタイムアウトが 1 分であっても、同じホストへの何十(あるいは何百)ものキューイングされたメッセージのために再試行が繰り返されれば、非常に大きな遅延が発生することになるだろう。

At the same time, SMTP clients SHOULD use great care in caching negative responses from servers. In an extreme case, if EHLO is issued multiple times during the same SMTP connection, different answers may be returned by the server. More significantly, 5yz responses to the MAIL command MUST NOT be cached. 同時に SMTP クライアントは、サーバーからの否定応答のキャッシュに際し細心の注意を払うべきである(SHOULD)。極端な場合には、同じ SMTP 接続中に EHLO が複数回発行されたとき、サーバーから異なる回答が返される可能性もある。さらに重要なのは、MAIL コマンドに対する 5yz 応答をキャッシュしてはならない(MUST NOT)ことである。

When a mail message is to be delivered to multiple recipients, and the SMTP server to which a copy of the message is to be sent is the same for multiple recipients, then only one copy of the message SHOULD be transmitted. That is, the SMTP client SHOULD use the command sequence: MAIL, RCPT, RCPT, ..., RCPT, DATA instead of the sequence: MAIL, RCPT, DATA, ..., MAIL, RCPT, DATA. However, if there are very many addresses, a limit on the number of RCPT commands per MAIL command MAY be imposed. This efficiency feature SHOULD be implemented. メールメッセージが複数の宛先に配送され、メッセージのコピーの送信先 SMTP サーバーが複数の受信者に対して同じ場合、メッセージのコピーがひとつだけ送信されるべきである(SHOULD)。つまり SMTP クライアントは、MAIL・RCPT・DATA …… MAIL・RCPT・DATA という順序ではなく、MAIL・RCPT・RCPT …… RCPT・DATA という順序でコマンドを使用するべきである(SHOULD)。しかしながら非常に多くのアドレスがある場合、MAIL コマンドごとの RCPT コマンドの数に制限が課されてもよい(MAY)。この効率的な機能は実装されるべきである(SHOULD)。

Similarly, to achieve timely delivery, the SMTP client MAY support multiple concurrent outgoing mail transactions. However, some limit may be appropriate to protect the host from devoting all its resources to mail. 同じように、タイムリーな配送を行うために、SMTP クライアントは複数同時の送信メールトランザクションをサポートしてもよい(MAY)。しかしながらホストがすべてのリソースをメールに投入するのを避けるために、何らかの制限が適切だろう。

4.5.4.2. Receiving Strategy 4.5.4.2. 受信戦略

The SMTP server SHOULD attempt to keep a pending listen on the SMTP port (specified by IANA as port 25) at all times. This requires the support of multiple incoming TCP connections for SMTP. Some limit MAY be imposed, but servers that cannot handle more than one SMTP transaction at a time are not in conformance with the intent of this specification. SMTP サーバーは SMTP ポート(IANA によりポート 25 と規定されている)上での未解決のリッスン状態を維持するよう試みるべきである(SHOULD)。これは SMTP のための複数の入力 TCP 接続のサポートを必要とする。何らかの制限が課されてもよい(MAY)が、同時に 2 つ以上の SMTP トランザクションを処理することのできないサーバーは、本仕様の目的に合致しない。

As discussed above, when the SMTP server receives mail from a particular host address, it could activate its own SMTP queuing mechanisms to retry any mail pending for that host address. 先に議論した通り、SMTP サーバーがある特定のホストアドレスからメールを受信したとき、サーバーはそのホストアドレス向けに保留中のすべてのメールを再試行するための、独自の SMTP キューイングメカニズムを起動することができるだろう。

4.5.5. Messages with a Null Reverse-Path 4.5.5. 空の Reverse-Path を持つメッセージ

There are several types of notification messages that are required by existing and proposed Standards to be sent with a null reverse-path, namely non-delivery notifications as discussed in Section 3.7, other kinds of Delivery Status Notifications (DSNs, RFC 3461 [32]), and Message Disposition Notifications (MDNs, RFC 3798 [37]). All of these kinds of messages are notifications about a previous message, and they are sent to the reverse-path of the previous mail message. (If the delivery of such a notification message fails, that usually indicates a problem with the mail system of the host to which the notification message is addressed. For this reason, at some hosts the MTA is set up to forward such failed notification messages to someone who is able to fix problems with the mail system, e.g., via the postmaster alias.) 既存または提案中の標準によって空の reverse-path と共に送信されることを要求される通知メッセージがいくつか存在する。それらは、セクション 3.7 で議論されている配送不能通知、他の種類の配送状態通知(Delivery Status Notification:DSN、RFC 3461 [37])、メッセージ配送通知(Message Disposition Notification:MDN、RFC 3798 [47])である。これらの種類のメッセージはすべて以前のメッセージに関する通知であり、以前のメッセージの reverse-path へと送信される。(通常このような通知メッセージの配送に失敗した場合、それは通知メッセージを向けられたホストのメールシステムの問題を示している。そのため一部のホストの MTA は、そのような失敗した通知メッセージがメールシステムの問題を修復できる人物へと(例えば postmaster エイリアスを通して)転送されるように設定される。)

All other types of messages (i.e., any message which is not required by a Standards-Track RFC to have a null reverse-path) SHOULD be sent with a valid, non-null reverse-path. 他の種類のすべてのメッセージ(つまりスタンダートトラック RFC によって空の reverse-path を持つことを要求されていないすべてのメッセージ)は、有効かつ空ではない reverse-path と共に送信されるべきである(SHOULD)。

Implementers of automated email processors should be careful to make sure that the various kinds of messages with a null reverse-path are handled correctly. In particular, such systems SHOULD NOT reply to messages with a null reverse-path, and they SHOULD NOT add a non-null reverse-path, or change a null reverse-path to a non-null one, to such messages when forwarding. 自動電子メールプロセッサの実装は、空の reverse-path を持つ様々な種類のメッセージが正しく処理されるように注意を払うべきである。特にそのようなシステムは、空の reverse-path を持つメッセージに返信するべきではなく(SHOULD NOT)、またそのようなメッセージを転送するとき、空ではない reverse-path を追加したり、空の reverse-path を空でないものに変更したりしないべきである(SHOULD NOT)。

5. Address Resolution and Mail Handling 5. アドレス解決のメール処理

5.1. Locating the Target Host 5.1. 宛先ホストの検索

Once an SMTP client lexically identifies a domain to which mail will be delivered for processing (as described in Sections 2.3.5 and 3.6), a DNS lookup MUST be performed to resolve the domain name (RFC 1035 [2]). The names are expected to be fully-qualified domain names (FQDNs): mechanisms for inferring FQDNs from partial names or local aliases are outside of this specification. Due to a history of problems, SMTP servers used for initial submission of messages SHOULD NOT make such inferences (Message Submission Servers [18] have somewhat more flexibility) and intermediate (relay) SMTP servers MUST NOT make them. SMTP クライアントが処理のために配送されるドメインを文字列として特定する(セクション 2.3.5 および 3.6 で議論されている通り)と、そのドメイン名(RFC 1035 [2])を解決するために DNS ルックアップが実行されなければならない(MUST)。この名前は完全限定ドメイン名(FQDN)であることを期待される。部分名またはローカル名から FQDN を推測するためのメカニズムは本仕様の範囲外である。問題の歴史から、メッセージの最初の投入に使用される SMTP サーバーはそのような推測を行わないべき(SHOULD NOT)であり(メッセージサブミッションサーバー [18] はもう少し柔軟である)、中間(リレー) SMTP サーバーはそれを行ってはならない(MUST NOT)。

The lookup first attempts to locate an MX record associated with the name. If a CNAME record is found, the resulting name is processed as if it were the initial name. If a non-existent domain error is returned, this situation MUST be reported as an error. If a temporary error is returned, the message MUST be queued and retried later (see Section 4.5.4.1). If an empty list of MXs is returned, the address is treated as if it was associated with an implicit MX RR, with a preference of 0, pointing to that host. If MX records are present, but none of them are usable, or the implicit MX is unusable, this situation MUST be reported as an error. ルックアップはまず最初に、名前に対応する MX レコードの検索を試みる。CNAME レコードが見つかった場合、その結果として得られた名前が最初の名前であったかのように処理する。ドメインが存在しない旨のエラーが返された場合、その状況はエラーとして報告されなければならない(MUST)。一時的エラーが返された場合、メッセージはキューに入れられ、後にリトライ(セクション 4.5.4.1 参照)されなければならない(MUST)。空の MX リストが返された場合、そのアドレスはそのホストを指す優先度 0 の暗黙的 MX RR に対応するものとして扱われる。提示された MX レコードがどれも使用不可能な場合、または暗黙的な MX が利用不可能な場合、その状況はエラーとして報告されなければならない(MUST)。

If one or more MX RRs are found for a given name, SMTP systems MUST NOT utilize any address RRs associated with that name unless they are located using the MX RRs; the "implicit MX" rule above applies only if there are no MX records present. If MX records are present, but none of them are usable, this situation MUST be reported as an error. ある特定の名前に対しひとつまたは複数の MX RR が見つかった場合、それが MX RR を使用して位置付けられたのではない限り、その名前に対応するアドレス RR を使用してはならない(MUS NOT)。"暗黙的 MX(implicit MX)" の規則は、MX レコードがまったくない場合にのみ適用される。MX レコードはあるが、その何れもが使用できない場合、その状況はエラーとして報告されなければならない(MUST)。

When a domain name associated with an MX RR is looked up and the associated data field obtained, the data field of that response MUST contain a domain name. That domain name, when queried, MUST return at least one address record (e.g., A or AAAA RR) that gives the IP address of the SMTP server to which the message should be directed. Any other response, specifically including a value that will return a CNAME record when queried, lies outside the scope of this Standard. The prohibition on labels in the data that resolve to CNAMEs is discussed in more detail in RFC 2181, Section 10.3 [38]. MX RR に対応するドメイン名が見つかり、対応するデータフィールドが取得されたとき、その応答のデータフィールドはドメイン名を含まなければならない(MUST)。そのドメイン名は(問い合わせられたとき)メッセージが向けられるべき SMTP サーバーの IP アドレスを与えるアドレスレコード(例えば A RR、または AAAA RR)を、少なくともひとつ返さなければならない(MUST)。それ以外の応答、特に問い合わせられたときに CNAME レコードを返す値を含む応答は、本仕様の範囲外である。CNAME へと解決されるデータ内のラベルに関する禁止事項は、RFC 2181 のセクション 10.3 [38] でより詳細に議論されている。

When the lookup succeeds, the mapping can result in a list of alternative delivery addresses rather than a single address, because of multiple MX records, multihoming, or both. To provide reliable mail transmission, the SMTP client MUST be able to try (and retry) each of the relevant addresses in this list in order, until a delivery attempt succeeds. However, there MAY also be a configurable limit on the number of alternate addresses that can be tried. In any case, the SMTP client SHOULD try at least two addresses. 検索に成功したとき、複数の MX レコードやマルチホーム、またはその両方のために、単一アドレスではなく選択可能な配送アドレスのリストが得られる可能性がある。SMTP クライアントは信頼できるメール転送を提供するために、配送に成功するまでそのリスト内の対応するアドレスをそれぞれ順に試みる(そして再試行する)ことができなければならない(MUST)。しかしながら、試みることのできる選択可能なアドレスの数に設定可能な上限があってもよい(MAY)。何れにしても、SMTP クライアントは少なくとも 2 つのアドレスを試みるべきである(SHOULD)。

Two types of information are used to rank the host addresses: multiple MX records, and multihomed hosts. ホストアドレスを順位付けるために、2 種類の情報が使用される:複数の MX レコードと、マルチホームホストである。

MX records contain a preference indication that MUST be used in sorting if more than one such record appears (see below). Lower numbers are more preferred than higher ones. If there are multiple destinations with the same preference and there is no clear reason to favor one (e.g., by recognition of an easily reached address), then the sender-SMTP MUST randomize them to spread the load across multiple mail exchangers for a specific organization. MX レコードは優先順位を持ち、2 つ以上のレコードが現れた場合(後述)のソートにそれを使用しなければならない(MUST)。小さい数値は大きい数値より優先順位が高い。同じ優先順位の複数の宛先が存在し、そのどちらかを優先する明確な理由(例えば容易に到達できるアドレスを認識するなど)がない場合、送信側 SMTP は特定の組織のための複数のメールエクスチェンジャ間で負荷を分散するために、それらをランダムに選択しなければならない(MUST)。

The destination host (perhaps taken from the preferred MX record) may be multihomed, in which case the domain name resolver will return a list of alternative IP addresses. It is the responsibility of the domain name resolver interface to have ordered this list by decreasing preference if necessary, and the SMTP sender MUST try them in the order presented. (おそらく優先 MX レコードから取られた)宛先ホストはマルチホーム化されている可能性があり、その場合ドメイン名リゾルバは選択可能な IP アドレスのリストを返すだろう。そのリストを必要なら優先順位の降順に並べるのはドメインネームリゾルバの責任であり、SMTP 送信者はそれらを提示された順番通りに試みなければならない(MUST)。

Although the capability to try multiple alternative addresses is required, specific installations may want to limit or disable the use of alternative addresses. The question of whether a sender should attempt retries using the different addresses of a multihomed host has been controversial. The main argument for using the multiple addresses is that it maximizes the probability of timely delivery, and indeed sometimes the probability of any delivery; the counter- argument is that it may result in unnecessary resource use. Note that resource use is also strongly determined by the sending strategy discussed in Section 4.5.4.1. 複数の代替アドレスを試みる能力は必須だが、特別な装置は代替アドレスの使用を制限、または無効にしたいかもしれない。送信者がマルチホーム化されたホストの別のアドレスを使用して再試行を試みるべきかどうかという質問には意見が分かれる。複数アドレスを使用することに賛成する主な根拠は、それがタイムリーな配送の可能性を最大化し、場合によってはすべての配送の可能性を最大化するというものであり、反論意見は、それがリソースの浪費を招く可能性があるというものである。リソース使用は、セクション 4.5.4.1 で議論されている送信戦略に大きく左右されることに注意してほしい。

If an SMTP server receives a message with a destination for which it is a designated Mail eXchanger, it MAY relay the message (potentially after having rewritten the MAIL FROM and/or RCPT TO addresses), make final delivery of the message, or hand it off using some mechanism outside the SMTP-provided transport environment. Of course, neither of the latter require that the list of MX records be examined further. SMTP サーバーが、それが指定されたメールエクスチェンジャである宛先を持つメッセージを受信した場合、そのメッセージを(潜在的に MAIL FROM や RCPT TO のアドレスを書き換えた後に)リレーするか、メッセージの最終配送を行うか、SMTP の提供するトランスポート環境の範囲外のメカニズムを使用してそれを引き渡すかしてよい(MAY)。当然ながら後者の 2 つでは MX レコードのリストをさらに調べる必要はない。

If it determines that it should relay the message without rewriting the address, it MUST sort the MX records to determine candidates for delivery. The records are first ordered by preference, with the lowest-numbered records being most preferred. The relay host MUST then inspect the list for any of the names or addresses by which it might be known in mail transactions. If a matching record is found, all records at that preference level and higher-numbered ones MUST be discarded from consideration. If there are no records left at that point, it is an error condition, and the message MUST be returned as undeliverable. If records do remain, they SHOULD be tried, best preference first, as described above. アドレスを書き換えずにメッセージをリレーするべきであると判断した場合、配送のための候補を決定するために MX レコードを並び替えなければならない(MUST)。レコードはまず優先順位によって、もっとも値の小さいレコードがもっとも優先順位が高いものとして並べられる。次にリレーホストは、メールトランザクションにおいて知られているかもしれない自身の名前またはアドレスがそのリストに存在するかどうかを調べなければならない(MUST)。一致するレコードが見つかった場合、その優先順位とそれより大きい数値のレコードは考慮から外されなければならない(MUST)。この時点でレコードが残っていない場合、それはエラー状態であり、そのメッセージは配送不能として返されなければならない(MUST)。レコードが残っている場合、前述の通り優先順位の高いものから順にそれらを試みるべきである(SHOULD)。

5.2. IPv6 and MX Records 5.2. IPv6 と MX レコード

In the contemporary Internet, SMTP clients and servers may be hosted on IPv4 systems, IPv6 systems, or dual-stack systems that are compatible with either version of the Internet Protocol. The host domains to which MX records point may, consequently, contain "A RR"s (IPv4), "AAAA RR"s (IPv6), or any combination of them. While RFC 3974 [39] discusses some operational experience in mixed environments, it was not comprehensive enough to justify standardization, and some of its recommendations appear to be inconsistent with this specification. The appropriate actions to be taken either will depend on local circumstances, such as performance of the relevant networks and any conversions that might be necessary, or will be obvious (e.g., an IPv6-only client need not attempt to look up A RRs or attempt to reach IPv4-only servers). Designers of SMTP implementations that might run in IPv6 or dual-stack environments should study the procedures above, especially the comments about multihomed hosts, and, preferably, provide mechanisms to facilitate operational tuning and mail interoperability between IPv4 and IPv6 systems while considering local circumstances. 現在のインターネットにおいて SMTP のクライアントとサーバーは、IPv4 システム、IPv6 システム、またはどちらのバージョンのインターネットプロトコルとも互換性を持つデュアルスタックシステム上にホスティングされる可能性がある。その結果として MX レコードが指し示すホストドメインは、"A RR"(IPv4)、"AAAA RR"(IPv6)、またはそれらの任意の組み合わせを含む可能性がある。RFC 3974 [39] は混在環境における運用上のいくつかの経験に付いて議論しているが、標準化を正当化するのに十分なほど包括的ではなく、その推奨事項のいくつかは本仕様と一貫性がないように思われる。取られるべき適切な動作は、関連するネットワークのパフォーマンスや必要とされるであろう何らかの変換などのローカル環境に依存するか、明らか(例えば IPv6 のみのクライアントは A RR の検索や IPv4 のみのサーバーへの到達を試みる必要がない)か、どちらかになるだろう。IPv6 またはデュアルスタック環境内で実行される可能性のある SMTP 実装の設計者は、上記の手続き、特にマルチホームホストに付いての解説を詳しく調べるべきであり、望ましくは、ローカル環境を考慮しつつも、運用上のチューニングと IPv4・IPv6 間のメールの相互運用とを機能させるメカニズムを提供するべきである。

6. Problem Detection and Handling 6. 問題の検出と対応

6.1. Reliable Delivery and Replies by Email 6.1. 電子メールによる信頼できる配送と応答

When the receiver-SMTP accepts a piece of mail (by sending a "250 OK" message in response to DATA), it is accepting responsibility for delivering or relaying the message. It must take this responsibility seriously. It MUST NOT lose the message for frivolous reasons, such as because the host later crashes or because of a predictable resource shortage. Some reasons that are not considered frivolous are discussed in the next subsection and in Section 7.8. 受信側 SMTP は(DATA に対して "250 OK" を送信することで)メールを受け入れたとき、そのメッセージの配送またはリレーを行う責任を引き受ける。この責任は重く受け取らなければならない。後にホストの故障や予測可能なリソース不足など、軽率な理由でそのメッセージを失ってはならない(MUST NOT)。軽率とは見なされない理由のいくつかは、次のサブセクションとセクション 7.8 とで議論されている。

If there is a delivery failure after acceptance of a message, the receiver-SMTP MUST formulate and mail a notification message. This notification MUST be sent using a null ("<>") reverse-path in the envelope. The recipient of this notification MUST be the address from the envelope return path (or the Return-Path: line). However, if this address is null ("<>"), the receiver-SMTP MUST NOT send a notification. Obviously, nothing in this section can or should prohibit local decisions (i.e., as part of the same system environment as the receiver-SMTP) to log or otherwise transmit information about null address events locally if that is desired. If the address is an explicit source route, it MUST be stripped down to its final hop. メッセージを受け入れた後に配送に失敗した場合、受信側 SMTP は通知メッセージを組み立て、それをメールしなければならない(MUST)。この通知はエンベロープ内の reverse-path に空("<>")を使用して送信されなければならない(MUST)。この通知の受信者は、エンベロープの return path (または Return-Path: 行)から提供されたアドレスでなければならない(MUST)。しかしながら、もしそのアドレスが空("<>")の場合、受信側 SMTP は通知を送信してはならない(MUST)。明らかに本セクションは、必要なら空のアドレスのイベントについての情報をローカルに記録または送信するというローカルの判断(つまり受信側 SMTP と同じシステム環境の一部としての判断)を禁止できないし、禁止するべきではない。そのアドレスが明示的なソースルートの場合、その最終ホップまで経路情報を取り去られなければならない(MUST)。

For example, suppose that an error notification must be sent for a message that arrived with: 例えば、以下のエンベロープで届いたメッセージのためのエラー通知を送信しなければならないと仮定する:

      MAIL FROM:<@a,@b:user@d>

The notification message MUST be sent using: この場合の通知メッセージは以下の要領で送信されなければならない(MUST):

      RCPT TO:<user@d>

Some delivery failures after the message is accepted by SMTP will be unavoidable. For example, it may be impossible for the receiving SMTP server to validate all the delivery addresses in RCPT command(s) due to a "soft" domain system error, because the target is a mailing list (see earlier discussion of RCPT), or because the server is acting as a relay and has no immediate access to the delivering system. SMTP がメッセージを受け入れた後の配送の失敗には避けられないものもある。例えば、宛先がメーリングリスト(前述の RCPT の議論参照)の場合や、リレーとして振る舞うサーバーが配送システムへの即時アクセスを持たない場合、"重要でない(soft)"ドメインシステムエラーにより RCPT コマンド内のすべてのアドレスを検証することが不可能かもしれない。

To avoid receiving duplicate messages as the result of timeouts, a receiver-SMTP MUST seek to minimize the time required to respond to the final <CRLF>.<CRLF> end of data indicator. See RFC 1047 [40] for a discussion of this problem. タイムアウトの結果としてメッセージを重複して受信するのを避けるために、受信側 SMTP はデータの終了指示 <CRLF>.<CRLF> への応答に必要となる時間を最小化しようとしなければならない(MUST)。この問題の議論に付いては RFC 1047 [40] を参照してほしい。

6.2. Unwanted, Unsolicited, and "Attack" Messages 6.2. 望まない、未承諾の、"攻撃" のメッセージ

Utility and predictability of the Internet mail system requires that messages that can be delivered should be delivered, regardless of any syntax or other faults associated with those messages and regardless of their content. If they cannot be delivered, and cannot be rejected by the SMTP server during the SMTP transaction, they should be "bounced" (returned with non-delivery notification messages) as described above. In today's world, in which many SMTP server operators have discovered that the quantity of undesirable bulk email vastly exceeds the quantity of desired mail and in which accepting a message may trigger additional undesirable traffic by providing verification of the address, those principles may not be practical. インターネットメールシステムの実用性と予測可能性は、それらのメッセージに関連する構文または他の誤りに関係なく、またその内容に関係なく、配送できるメッセージが配送されるべきであることを必要とする。それらが配送できず、かつ SMTP トランザクション中に SMTP サーバーによって拒否できない場合、前述の通り "バウンスされる(bounced)"(配送不能メッセージと共に返される)べきである。現在 SMTP サーバーの運用者の多くは、望ましくないバルク電子メールが望ましいメールの量を大きく超えていること、また、メッセージを受け入れることがそのアドレスの確認を提供することになるためさらなる望ましくないトラフィックの誘引となっている可能性があることを知っており、これらの原則は実用的ではないかもしれない。

As discussed in Section 7.8 and Section 7.9 below, dropping mail without notification of the sender is permitted in practice. However, it is extremely dangerous and violates a long tradition and community expectations that mail is either delivered or returned. If silent message-dropping is misused, it could easily undermine confidence in the reliability of the Internet's mail systems. So silent dropping of messages should be considered only in those cases where there is very high confidence that the messages are seriously fraudulent or otherwise inappropriate. 以下のセクション 7.8 および 7.9 で議論されている通り、送信者への通知なしにメールを捨てることは実際問題として許される。しかしながらこれは極めて危険であり、長い伝統と、メールは配送または返送されるというコミュニティの期待とに反する。暗黙的なメールの破棄が誤って使用されると、インターネットのメールシステムの信頼性における信用を簡単に損なう。したがってメッセージの暗黙的な破棄は、そのメッセージが著しく詐欺的または不適切であるという非常に高い確信がある場合にのみ検討されるべきである。

To stretch the principle of delivery if possible even further, it may be a rational policy to not deliver mail that has an invalid return address, although the history of the network is that users are typically better served by delivering any message that can be delivered. Reliably determining that a return address is invalid can be a difficult and time-consuming process, especially if the putative sending system is not directly accessible or does not fully and accurately support VRFY and, even if a "drop messages with invalid return addresses" policy is adopted, it SHOULD be applied only when there is near-certainty that the return addresses are, in fact, invalid. ネットワークの歴史は一般に配送可能なすべてのメールが配送されることでより利用者の役に立つというものだが、可能なら配送の原則をさらに拡大するために、無効な返信アドレスを持つメールを配送しないというのは合理的なポリシーかもしれない。返信アドレスが無効であることを確実に判断することは困難かつ時間を要する作業になり得る。特に想定する送信システムが直接アクセスできない場合や、VRFY を完全かつ正しくサポートしない場合には、たとえ "無効なアドレスを持つメッセージは捨てる(drop messages with invalid return addresses)" というポリシーが採用されても、返信アドレスが本当に無効であることがほぼ確実な場合にのみ適用されるべきである。

Conversely, if a message is rejected because it is found to contain hostile content (a decision that is outside the scope of an SMTP server as defined in this document), rejection ("bounce") messages SHOULD NOT be sent unless the receiving site is confident that those messages will be usefully delivered. The preference and default in these cases is to avoid sending non-delivery messages when the incoming message is determined to contain hostile content. 反対に、攻撃的内容(その判断は本文書で定義される SMTP サーバーの範囲外である)を含むことが分かったためにメッセージを拒否する場合の拒否("バウンス(bounce)")メッセージは、受信側サイトがそれらのメッセージを有意義に配送すると確信できない限り、送信しないべきである(SHOULD NOT)。この場合の優先的かつデフォルトの選択は、メッセージが攻撃的内容を含むと判断された場合には配送不能通知の送信を避けることである。

6.3. Loop Detection 6.3. ループ検出

Simple counting of the number of "Received:" header fields in a message has proven to be an effective, although rarely optimal, method of detecting loops in mail systems. SMTP servers using this technique SHOULD use a large rejection threshold, normally at least 100 Received entries. Whatever mechanisms are used, servers MUST contain provisions for detecting and stopping trivial loops. メッセージ内の "Received:" ヘッダフィールドの数を単純に数えることが、メールシステムにおけるループを検出する(最適であることはまれだが)効果的な方法であると証明されている。この手法を使用する SMTP サーバーは、大きい閾値(通常は少なくとも 100 の Received エントリ)を使用するべきである(SHOULD)。どのような仕組みを使うにせよ、サーバーはループを検出し停止するための対策を持たなければならない(MUST)。

6.4. Compensating for Irregularities 6.4. 不正行為を補正する

Unfortunately, variations, creative interpretations, and outright violations of Internet mail protocols do occur; some would suggest that they occur quite frequently. The debate as to whether a well- behaved SMTP receiver or relay should reject a malformed message, attempt to pass it on unchanged, or attempt to repair it to increase the odds of successful delivery (or subsequent reply) began almost with the dawn of structured network mail and shows no signs of abating. Advocates of rejection claim that attempted repairs are rarely completely adequate and that rejection of bad messages is the only way to get the offending software repaired. Advocates of "repair" or "deliver no matter what" argue that users prefer that mail go through it if at all possible and that there are significant market pressures in that direction. In practice, these market pressures may be more important to particular vendors than strict conformance to the standards, regardless of the preference of the actual developers. 残念ながら、インターネットメールプロトコルの変種・独創的な解釈・明らかな違反は、やはり発生する。その一部は非常に頻繁に発生することが示唆されている。仕様に従う SMTP の受信者またはリレーは不正な形式のメッセージを拒否するべきなのか、変更することなく引き渡そうと試みるべきなのか、あるいは配送(またはその後に続くリプライ)の成功率を上げるためにそれを修正しようと試みるべきなのかという議論は、構造化されたネットワークメールの幕開けの頃から始まり、収束する兆しがない。拒否の支持者は、修正の試みが完全に適切であることはまれであり、不正なメッセージの拒否が間違ったソフトウェアを修正させる唯一の手段であると主張する。"修復(repair)" または "何であれ配送する(deliver no matter what)" の支持者は、ユーザーは可能な限りメールが届くことを望み、またその方向への大きな市場圧力があると主張する。実際のところそのような市場圧力は、現場の開発者の好みにかかわらず、特定のベンダーにとっては標準に厳密に従うことよりも重要かもしれない。

The problems associated with ill-formed messages were exacerbated by the introduction of the split-UA mail reading protocols (Post Office Protocol (POP) version 2 [15], Post Office Protocol (POP) version 3 [16], IMAP version 2 [41], and PCMAIL [42]). These protocols encouraged the use of SMTP as a posting (message submission) protocol, and SMTP servers as relay systems for these client hosts (which are often only intermittently connected to the Internet). Historically, many of those client machines lacked some of the mechanisms and information assumed by SMTP (and indeed, by the mail format protocol, RFC 822 [28]). Some could not keep adequate track of time; others had no concept of time zones; still others could not identify their own names or addresses; and, of course, none could satisfy the assumptions that underlay RFC 822's conception of authenticated addresses. 不正な形式のメッセージに関連する問題は、スプリット UA(split-UA)(Post Office Protocol (POP) version 2 [15]、Post Office Protocol (POP) version 3 [16]、IMAP version 2 [41]、PCMAIL [42])の導入によって深刻になった。これらのプロトコルは投稿(メッセージ投入)としての SMTP の使用を促進し、それらのクライアントホスト(これらはしばしばインターネットへの断続的な接続しか持たない)のためのリレーシステムとしての SMTP サーバーの使用を促進した。歴史的にそのようなクライアントマシンの多くは、SMTP (実際にはメールフォーマットプロトコル、RFC 822 [28])の想定するメカニズムと情報との一部を欠いている。時間の経過を追うことができないものもあれば、タイムゾーンの概念を持たないものもあり、自身の名前またアドレスを特定できないものさえある。そしてもちろん、RFC 822 の認証されたアドレスの概念を基にした前提を満たすものはない。

In response to these weak SMTP clients, many SMTP systems now complete messages that are delivered to them in incomplete or incorrect form. This strategy is generally considered appropriate when the server can identify or authenticate the client, and there are prior agreements between them. By contrast, there is at best great concern about fixes applied by a relay or delivery SMTP server that has little or no knowledge of the user or client machine. Many of these issues are addressed by using a separate protocol, such as that defined in RFC 4409 [18], for message submission, rather than using originating SMTP servers for that purpose. これらの貧弱な SMTP クライアントに応えて、現在では多くの SMTP システムが不完全または誤った形式で配送されたメッセージを完成させる。一般にこの戦略は、サーバーがそのクライアントを識別または認証でき、それらの間に事前の合意がある場合には適切であると見なされる。一方で、ユーザーまたはクライアントマシンの知識に乏しい、またはまったく知識のないリレーまたは配送 SMTP サーバーにより適用される修正に関しては、大きな心配がある。それらの問題の多くは、この目的のための発信用 SMTP サーバーを使用するのではなく、メッセージサブミッションのため個別のプロトコル(例えば RFC 4409 [18] で定義されている)を使用することで解決される。

The following changes to a message being processed MAY be applied when necessary by an originating SMTP server, or one used as the target of SMTP as an initial posting (message submission) protocol: 発信 SMTP サーバー、または初期投入(メッセージサブミッション)プロトコルとしての SMTP の接続先として使用される SMTP サーバーが必要とするのであれば、処理されるメッセージに以下の変更が適用されてもよい(MAY):

The less information the server has about the client, the less likely these changes are to be correct and the more caution and conservatism should be applied when considering whether or not to perform fixes and how. These changes MUST NOT be applied by an SMTP server that provides an intermediate relay function. 修正を行うべきかどうかやその方法を考慮するとき、クライアントに付いてサーバーが持つ情報が少なければ少ないほど、これらの変更は正しくなりそうになく、より警戒と保守主義とが適用されるべきである。これらの変更は中間リレー機能を提供する SMTP サーバーによって適用されてはならない(MUST NOT)。

In all cases, properly operating clients supplying correct information are preferred to corrections by the SMTP server. In all cases, documentation SHOULD be provided in trace header fields and/or header field comments for actions performed by the servers. いずれにしても SMTP サーバーによる訂正には、正しい情報を提供する適切に動作するクライアントが好ましい。いかなる場合でも、サーバーによって実行された動作の説明をトレースヘッダフィールドやヘッダフィールドコメント内に提供するべきである(SHOULD)。

7. Security Considerations 7. セキュリティ考察

7.1. Mail Security and Spoofing 7.1. メールセキュリティとなりすまし

SMTP mail is inherently insecure in that it is feasible for even fairly casual users to negotiate directly with receiving and relaying SMTP servers and create messages that will trick a naive recipient into believing that they came from somewhere else. Constructing such a message so that the "spoofed" behavior cannot be detected by an expert is somewhat more difficult, but not sufficiently so as to be a deterrent to someone who is determined and knowledgeable. Consequently, as knowledge of Internet mail increases, so does the knowledge that SMTP mail inherently cannot be authenticated, or integrity checks provided, at the transport level. Real mail security lies only in end-to-end methods involving the message bodies, such as those that use digital signatures (see RFC 1847 [43] and, e.g., Pretty Good Privacy (PGP) in RFC 4880 [44] or Secure/ Multipurpose Internet Mail Extensions (S/MIME) in RFC 3851 [45]). SMTP メールは本質的に安全ではなく、ごく普通のユーザーでさえ受信・リレーの SMTP サーバーと直接交渉を行い、経験の浅い受信者にそれが別のところから来たメールであると信じさせるメッセージを生成することが可能である。専門家でも検出できないほどの "なりすまし(spoofed)" メッセージを組み立てるのはやや困難だが、やる気のある博識な人物を静止するのに十分なほどではない。その結果、インターネットメールの知識が増加するにしたがって、SMTP メールが本質的にトランスポートレベルで認証できないこと、または完全性確認が提供されないことの知識も増加する。真のメールセキュリティは、例えばデジタル署名を使用するメッセージ本文に関するエンドツーエンドにのみある(RFC 1847 [43]、および、例えば RFC 4880 [44] の Pretty Good Privacy (PGP)、または RFC 3851 [45] の Secure/Multipurpose Internet Mail Extensions (S/MIME) を参照)。

Various protocol extensions and configuration options that provide authentication at the transport level (e.g., from an SMTP client to an SMTP server) improve somewhat on the traditional situation described above. However, in general, they only authenticate one server to another rather than a chain of relays and servers, much less authenticating users or user machines. Consequently, unless they are accompanied by careful handoffs of responsibility in a carefully designed trust environment, they remain inherently weaker than end-to-end mechanisms that use digitally signed messages rather than depending on the integrity of the transport system. トランスポートレベル(例えば SMTP クライアントから SMTP サーバーへ)の認証を提供する様々なプロトコル拡張と設定オプションとが、上記の従来の状況をいくらか改善する。しかしながら一般にそれらは、リレー群およびサーバー群の連鎖ではなく、ましてユーザーまたはユーザーマシンの認証でもなく、あるサーバーから別のサーバーへの認証のみを行う。結果として、注意深く設計された信頼できる環境において責任の慎重なハンドオフが伴なわない限り、トランスポートシステムの完全性に依存せずにデジタル署名されたメッセージを使用するエンドツーエンドのメカニズムに比べ、それらは本質的に脆弱なままである。

Efforts to make it more difficult for users to set envelope return path and header "From" fields to point to valid addresses other than their own are largely misguided: they frustrate legitimate applications in which mail is sent by one user on behalf of another, in which error (or normal) replies should be directed to a special address, or in which a single message is sent to multiple recipients on different hosts. (Systems that provide convenient ways for users to alter these header fields on a per-message basis should attempt to establish a primary and permanent mailbox address for the user so that Sender header fields within the message data can be generated sensibly.) エンベロープのリターンパスとヘッダの "From" フィールドとがユーザー自身のアドレスではない無効なドレスを指し示すことをより困難にさせようとする努力は、まったくの見当違いである。それは、別の人の代理でメールが送られたり、エラー(または通常)リプライが特殊なアドレスに送られたり、または単独メッセージが異なるホスト上の複数の受信者に送られるような、正当なアプリケーションを阻害する。(ユーザーがこれらのヘッダフィールドをメッセージごとの原則で変更する有用な方法を提供するシステムは、メッセージデータ内の Sender フィールドが無理なく生成されるように、そのユーザーの主要かつ永続的なメールボックスアドレスを設置するよう試みるべきである。)

This specification does not further address the authentication issues associated with SMTP other than to advocate that useful functionality not be disabled in the hope of providing some small margin of protection against a user who is trying to fake mail. 本仕様は、偽のメールを送ろうとするユーザーに対する防御という小さな利益を提供するつもりで有益な機能を無効にしないことを推奨する以外、SMTP に関連する認証問題をこれ以上扱わない。

7.2. "Blind" Copies 7.2. "ブラインド(Blind)" コピー

Addresses that do not appear in the message header section may appear in the RCPT commands to an SMTP server for a number of reasons. The two most common involve the use of a mailing address as a "list exploder" (a single address that resolves into multiple addresses) and the appearance of "blind copies". Especially when more than one RCPT command is present, and in order to avoid defeating some of the purpose of these mechanisms, SMTP clients and servers SHOULD NOT copy the full set of RCPT command arguments into the header section, either as part of trace header fields or as informational or private- extension header fields. Since this rule is often violated in practice, and cannot be enforced, sending SMTP systems that are aware of "bcc" use MAY find it helpful to send each blind copy as a separate message transaction containing only a single RCPT command. 数多くの理由のために、メッセージのヘッダセクション内に現れないアドレスが SMTP サーバーへの RCPT コマンド内に現れる可能性がある。もっとも一般的な二つのケースは、"リストエクスプローダ(list exploder)"(複数アドレスに解決される単独アドレス)としてのメーリングアドレスの使用と、"ブラインドコピー(blind copies)" である。特に二つ以上の RCPT コマンドが現れたとき、およびこれらのメカニズムの目的を無駄にするのを避けるために、SMTP クライアントとサーバーは、トレースヘッダフィールドか非公開の拡張ヘッダフィールドかのどちらかの一部として、ヘッダセクション内に RCPT コマンドの引数のすべてをコピーするべきではない(SHOULD NOT)。実際にはこの規則はしばしば破られるため強制されないが、"bcc" が使用されていることに気付いた送信側 SMTP システムは、各ブラインドコピーを単独の RCPT コマンドを含む個別のメッセージトランザクションとして送信することが有益であると考えてもよい(MAY)。

There is no inherent relationship between either "reverse" (from MAIL, SAML, etc., commands) or "forward" (RCPT) addresses in the SMTP transaction ("envelope") and the addresses in the header section. Receiving systems SHOULD NOT attempt to deduce such relationships and use them to alter the header section of the message for delivery. The popular "Apparently-to" header field is a violation of this principle as well as a common source of unintended information disclosure and SHOULD NOT be used. SMTP トランザクション("エンベロープ(envelope)")内の "reverse"(MAIL、SAML などのコマンドが提供する)アドレスまたは "forward"(RCPT)アドレスのどちらかと、ヘッダセクション内のアドレスとの間に固有の関係はない。受信側システムはそのような関係を推測しようと試みたり、配送のためにそれを使用してメッセージのヘッダセクションを変更しようと試みたりするべきではない(SHOULD NOT)。よく知られている "Apparently-to" ヘッダフィールドは本仕様に違反すると同時に、意図しない情報公開のよくある原因であるため、使用するべきではない(SHOULD NOT)。

7.3. VRFY, EXPN, and Security 7.3. VRFY・EXPN とセキュリティ

As discussed in Section 3.5, individual sites may want to disable either or both of VRFY or EXPN for security reasons (see below). As a corollary to the above, implementations that permit this MUST NOT appear to have verified addresses that are not, in fact, verified. If a site disables these commands for security reasons, the SMTP server MUST return a 252 response, rather than a code that could be confused with successful or unsuccessful verification. セクション 3.5 で議論した通り、個々のサイトはセキュリティを理由に VRFY または EXPN のどちらかまたは両方を無効にしたいと考えてもよい。その当然の帰結として、これを許可する実装は、実際には確認されていないアドレスが確認されたかのように見えてはならない(MUST NOT)。サイトがセキュリティを理由にこれらのコマンドを無効にする場合、その SMTP サーバーは、確認が成功または失敗したという混乱を引き起こす可能性のあるコードではなく、252 応答を返さなければならない(MUST)。

Returning a 250 reply code with the address listed in the VRFY command after having checked it only for syntax violates this rule. Of course, an implementation that "supports" VRFY by always returning 550 whether or not the address is valid is equally not in conformance. VRFY コマンドにリストされているアドレスに対して構文を確認しただけでリプライコード 250 を返すことは、この規則に違反する。当然ながら、アドレスが有効かどうかにかかわらず常に 550 を返すことで VRFY を "サポートする(supports)" 実装も、同様に適合しない。

On the public Internet, the contents of mailing lists have become popular as an address information source for so-called "spammers." 公共のインターネット上においてメーリングリストの内容は、いわゆる "スパマー(spammers)" のためのアドレス情報源としてよく知られるようになった。

The use of EXPN to "harvest" addresses has increased as list administrators have installed protections against inappropriate uses of the lists themselves. However, VRFY and EXPN are still useful for authenticated users and within an administrative domain. For example, VRFY and EXPN are useful for performing internal audits of how email gets routed to check and to make sure no one is automatically forwarding sensitive mail outside the organization. Sites implementing SMTP authentication may choose to make VRFY and EXPN available only to authenticated requestors. Implementations SHOULD still provide support for EXPN, but sites SHOULD carefully evaluate the tradeoffs. リスト管理者がリスト自体の不正使用に対する保護を導入するつれて、アドレスを "収穫する(harvest)" ための EXPN の使用が増加している。しかしながら VRFY および EXPN は、認証されたユーザーにとって、また管理ドメイン内において、いまだ有益である。例えば VRFY および EXPN は、電子メールがどのようにルーティングされるかに関する内部監査を実行したり、誰も重要なメールを組織外に自動転送していないことを確認するために実用的である。SMTP 認証を実装するサイトは、VRFY と EXPN とを認証されたリクエスタに対してのみ使用可能にすることを選択してもよい。それでも実装は EXPN のサポートを提供するべき(SHOULD)だが、サイトはそのトレードオフを慎重に評価するべきである(SHOULD)。

Whether disabling VRFY provides any real marginal security depends on a series of other conditions. In many cases, RCPT commands can be used to obtain the same information about address validity. On the other hand, especially in situations where determination of address validity for RCPT commands is deferred until after the DATA command is received, RCPT may return no information at all, while VRFY is expected to make a serious attempt to determine validity before generating a response code (see discussion above). VRFY を無効にすることが実際に最低限のセキュリティを提供するかどうかは、他の一連の条件に依存する。多くの場合、RCPT コマンドはアドレスの有効性に関して同等の情報を取得するために使用され得る。一方で、特に DATA コマンドが受信される後まで RCPT コマンドのアドレス有効性の判断が遅延するような状況では、RCPT は何の情報も返さないだろうが、VRFY は応答コード(下記参照)を生成する前に有効性を真剣に判断する試みを行うことを期待される。

7.4. Mail Rerouting Based on the 251 and 551 Response Codes 7.4. 応答コード 251 および 551 に基づくメールルーティング

Before a client uses the 251 or 551 reply codes from a RCPT command to automatically update its future behavior (e.g., updating the user's address book), it should be certain of the server's authenticity. If it does not, it may be subject to a man in the middle attack. クライアントは将来の振る舞いを自動的に変更する(例えばアドレス帳を更新する)ために RCPT コマンドに対するリプライコード 251 または 551 を使用する前に、サーバーの信頼性を確認するべきである。さもなければ介入者攻撃にさらされるだろう。

7.5. Information Disclosure in Announcements 7.5. アナウンスにおける情報公開

There has been an ongoing debate about the tradeoffs between the debugging advantages of announcing server type and version (and, sometimes, even server domain name) in the greeting response or in response to the HELP command and the disadvantages of exposing information that might be useful in a potential hostile attack. The utility of the debugging information is beyond doubt. Those who argue for making it available point out that it is far better to actually secure an SMTP server rather than hope that trying to conceal known vulnerabilities by hiding the server's precise identity will provide more protection. Sites are encouraged to evaluate the tradeoff with that issue in mind; implementations SHOULD minimally provide for making type and version information available in some way to other network hosts. グリーティング応答または HELP コマンドの応答においてサーバーの種類およびバージョン(そして時にサーバーのドメイン名さえも)を告知することのデバッグ上の長所と、潜在的な悪意ある攻撃に使われる可能性のある情報を公開するという短所との間のトレードオフに付いて、継続中の議論がある。デバッグ情報の実用性は疑いない。これを有効にすることを主張する人々は、サーバーの正確な身元を隠蔽することで既知の脆弱性を隠そうと試みるより、現実に SMTP サーバーを安全にする方がはるかに優れていると指摘する。サイトはこのトレードオフを念頭に置いて評価することを推奨される。実装は最低限、何らかの方法で他のネットワークのホストにその種類およびバージョン情報を提供するべきである(SHOULD)。

7.6. Information Disclosure in Trace Fields 7.6. トレースフィールドにおける情報公開

In some circumstances, such as when mail originates from within a LAN whose hosts are not directly on the public Internet, trace ("Received") header fields produced in conformance with this specification may disclose host names and similar information that would not normally be available. This ordinarily does not pose a problem, but sites with special concerns about name disclosure should be aware of it. Also, the optional FOR clause should be supplied with caution or not at all when multiple recipients are involved lest it inadvertently disclose the identities of "blind copy" recipients to others. ある種の状況、例えば公共のインターネット上に直接接続していないホストを持つ LAN 内からメールを発信する場合、本仕様にしたがって生成されるトレース("Received")ヘッダフィールドは、通常なら入手できないであろうホスト名や、それに類似した情報を公開する可能性がある。通常これは問題を起こさないが、名前の公開に特別な懸念を持つサイトはこれを認識するべきである。またオプションの FOR 節は、"ブラインドコピー(blind copy)" の受信者の身元を不注意に他者に公開しないように慎重に提供されるか、複数の受信者が含まれる場合にはまったく提供されないべきである。

7.7. Information Disclosure in Message Forwarding 7.7. メッセージ転送における情報公開

As discussed in Section 3.4, use of the 251 or 551 reply codes to identify the replacement address associated with a mailbox may inadvertently disclose sensitive information. Sites that are concerned about those issues should ensure that they select and configure servers appropriately. セクション 3.4 で議論されている通り、メールボックスに対応する置き換えアドレスを特定するリプライコード 251 または 551 の使用は、慎重に扱うべき情報を思いがけず公開する可能性がある。このような問題を懸念するサイトは、サーバーを適切に選択・設定していることを確認するべきである。

7.8. Resistance to Attacks 7.8. 攻撃に対する抵抗

In recent years, there has been an increase of attacks on SMTP servers, either in conjunction with attempts to discover addresses for sending unsolicited messages or simply to make the servers inaccessible to others (i.e., as an application-level denial of service attack). While the means of doing so are beyond the scope of this Standard, rational operational behavior requires that servers be permitted to detect such attacks and take action to defend themselves. For example, if a server determines that a large number of RCPT TO commands are being sent, most or all with invalid addresses, as part of such an attack, it would be reasonable for the server to close the connection after generating an appropriate number of 5yz (normally 550) replies. ここ数年、未承諾メッセージを送信するためのアドレスを見つけだす試みと共に、または単純にサーバーを他者からアクセス不能にする(つまりアプリケーションレベルのサービス不能攻撃)ための、SMTP サーバーへの攻撃が増加している。それを実行する手段は本仕様の範囲外である一方、合理的な運用上の振る舞いは、サーバーがそのような攻撃を検出し、自身を守る行動を取ることを可能にすることを必要とする。例えばそのような攻撃の一部として、すべてまたはほとんどが無効なアドレスである多数の RCPT コマンドが送信されたことを検出した場合、サーバーは適切な数の 5yz(通常は 550)リプライを生成した後、その接続を閉じるのが合理的だろう。

7.9. Scope of Operation of SMTP Servers 7.9. SMTP サーバーの運用範囲

It is a well-established principle that an SMTP server may refuse to accept mail for any operational or technical reason that makes sense to the site providing the server. However, cooperation among sites and installations makes the Internet possible. If sites take excessive advantage of the right to reject traffic, the ubiquity of email availability (one of the strengths of the Internet) will be threatened; considerable care should be taken and balance maintained if a site decides to be selective about the traffic it will accept and process. SMTP サーバーがそのサーバーを提供するサイトにとって意味のある任意の運用上または技術上の理由によりメールの受け入れを拒否してもよいというのは、揺ぎない原則である。しかしながら、サイトと設定との間の協同がインターネットを可能にしている。サイトがトラフィックを拒否する権利の利点を過度に得ようとすると、電子メールの可用性の偏在性(インターネットの強みのひとつである)が脅かされる。受け入れて処理するトラフィックに関して選択的であることを決定したサイトは、相当な注意を払い、バランスを維持するべきである。

In recent years, use of the relay function through arbitrary sites has been used as part of hostile efforts to hide the actual origins of mail. Some sites have decided to limit the use of the relay function to known or identifiable sources, and implementations SHOULD provide the capability to perform this type of filtering. When mail is rejected for these or other policy reasons, a 550 code SHOULD be used in response to EHLO (or HELO), MAIL, or RCPT as appropriate. ここ数年、実際のメール発信者を隠す悪意を持った努力の一部として、任意のサイトを経由するリレー機能が使用されている。一部のサイトはリレー機能を既知または特定可能な送信元に制限することを決定しており、実装はこの種のフィルタリングを実行する能力を提供するべきである(SHOULD)。これらまたは他のポリシーを理由にメールが拒否される場合、必要に応じて EHLO(または HELO)、MAIL、RCPT に対してコード 550 が使用されるべきである(SHOULD)。

8. IANA Considerations 8. IANA 考察

IANA maintains three registries in support of this specification, all of which were created for RFC 2821 or earlier. This document expands the third one as specified below. The registry references listed are as of the time of publication; IANA does not guarantee the locations associated with the URLs. The registries are as follows: IANA は本仕様をサポートする三つのレジストリを保持しており、そのすべては RFC 2821 またはそれ以前のために作られたものである。以下に示すように、この文書は第三のリストを拡張する。リストされているレジストリリファレンスは公表時点で公開されたものである。IANA はその URL に対応する場所を保証しない。レジストリは以下の通り:

In addition, if additional trace header fields (i.e., in addition to Return-path and Received) are ever created, those trace fields MUST be added to the IANA registry established by BCP 90 (RFC 3864) [11] for use with RFC 5322 [4]. 加えて、追加のトレースヘッダフィールド(つまり Return-path および Received に加えて)が生成された場合、それらのトレースフィールドは、RFC 5322 [4] と共に使用されるための BCP 90 (RFC 3864) [11] によって確立された IANA レジストリに追加されなければならない(MUST)。

9. Acknowledgments 9. 謝辞

Many people contributed to the development of RFC 2821. That document should be consulted for those acknowledgments. For the present document, the editor and the community owe thanks to Dawn Mann and Tony Hansen who assisted in the very painful process of editing and converting the internal format of the document from one system to another. 多くの人々が RFC 2821 の開発に貢献した。それらの謝辞のために RFC 2821 を参照するべきである。現在の文書の場合、編集者とコミュニティは、あるシステムから別のシステムへのドキュメントの内部フォーマットの変換と編集という非常に手間のかかるプロセスを支援してくれた Dawn Mann、および Tony Hansen に感謝すべきである。

Neither this document nor RFC 2821 would have been possible without the many contribution and insights of the late Jon Postel. Those contributions of course include the original specification of SMTP in RFC 821. A considerable quantity of text from RFC 821 still appears in this document as do several of Jon's original examples that have been updated only as needed to reflect other changes in the specification. 本文書も RFC 2821 も、多くの貢献者と亡くなった Jon Postel の見識とが無ければ不可能であった。もちろんそれらの貢献には RFC 821 におけるオリジナルの SMTP 仕様も含まれる。本仕様の別の変更を反映させるために必要とされる更新のみを行われた Jon によるオリジナルの例のいくつかのように、本文書には RFC 821 に由来する相当量の文章がいまだ残されている。

Many people made comments or suggestions on the mailing list or in notes to the author. Important corrections or clarifications were suggested by several people, including Matti Aarnio, Glenn Anderson, Derek J. Balling, Alex van den Bogaerdt, Stephane Bortzmeyer, Vint Cerf, Jutta Degener, Steve Dorner, Lisa Dusseault, Frank Ellerman, Ned Freed, Randy Gellens, Sabahattin Gucukoglu, Philip Guenther, Arnt Gulbrandsen, Eric Hall, Richard O. Hammer, Tony Hansen, Peter J. Holzer, Kari Hurtta, Bryon Roche Kain, Valdis Kletnieks, Mathias Koerber, John Leslie, Bruce Lilly, Jeff Macdonald, Mark E. Mallett, Mark Martinec, S. Moonesamy, Lyndon Nerenberg, Chris Newman, Douglas Otis, Pete Resnick, Robert A. Rosenberg, Vince Sabio, Hector Santos, David F. Skoll, Paul Smith, and Brett Watson. メーリングリスト上や著者へのノートにおいて、多くの人々がコメントまたは提案を行った。重要な訂正と明確化がさまざまな人々によって提案された。それには次の人々が含まれる:Matti Aarnio, Glenn Anderson, Derek J. Balling, Alex van den Bogaerdt, Stephane Bortzmeyer, Vint Cerf, Jutta Degener, Steve Dorner, Lisa Dusseault, Frank Ellerman, Ned Freed, Randy Gellens, Sabahattin Gucukoglu, Philip Guenther, Arnt Gulbrandsen, Eric Hall, Richard O. Hammer, Tony Hansen, Peter J. Holzer, Kari Hurtta, Bryon Roche Kain, Valdis Kletnieks, Mathias Koerber, John Leslie, Bruce Lilly, Jeff Macdonald, Mark E. Mallett, Mark Martinec, S. Moonesamy, Lyndon Nerenberg, Chris Newman, Douglas Otis, Pete Resnick, Robert A. Rosenberg, Vince Sabio, Hector Santos, David F. Skoll, Paul Smith, Brett Watson。

The efforts of the Area Directors -- Lisa Dusseault, Ted Hardie, and Chris Newman -- to get this effort restarted and keep it moving, and of an ad hoc committee with the same purpose, are gratefully acknowledged. The members of that committee were (in alphabetical order) Dave Crocker, Cyrus Daboo, Tony Finch, Ned Freed, Randall Gellens, Tony Hansen, the author, and Alexey Melnikov. Tony Hansen also acted as ad hoc chair on the mailing list reviewing this document; without his efforts, sense of balance and fairness, and patience, it clearly would not have been possible. この努力を再始動させ、前進を続けさせるためのエリアディレクター(Lisa Dusseault, Ted Hardie, Chris Newman)の努力と、同じ目的の臨時委員会の努力とに、深く感謝する。委員会のメンバーは Dave Crocker, Cyrus Daboo, Tony Finch, Ned Freed, Randall Gellens, Tony Hansen, 著者, そして Alexey Melnikov であった(アルファベット順)。Tony Hansen は本文書をレビューするメーリングリストの臨時議長としても活動した。彼の努力とバランス感覚、公正さ、そして忍耐なくして、それは明らかに不可能であった。

10. References 10. 参照

10.1. Normative References 10.1. 引用資料

[1] Postel, J., "Simple Mail Transfer Protocol", STD 10, RFC 821, August 1982.

[2] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, November 1987.

[3] Braden, R., "Requirements for Internet Hosts - Application and Support", STD 3, RFC 1123, October 1989.

[4] Resnick, P., "Internet Message Format", RFC 5322, October 2008.

[5] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[6] American National Standards Institute (formerly United States of America Standards Institute), "USA Code for Information Interchange", ANSI X3.4-1968, 1968.

ANSI X3.4-1968 has been replaced by newer versions with slight modifications, but the 1968 version remains definitive for the Internet. ANSI X3.4-1967 はわずかに変更されたより新しいバージョンに置き換えられたが、インターネットのためにはこの 1968 年のバージョンがもっとも信頼のおけるものであり続けている。

[7] Crocker, D. and P. Overell, "Augmented BNF for Syntax Specifications: ABNF", STD 68, RFC 5234, January 2008.

[8] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 4291, February 2006.

[9] Newman, C., "ESMTP and LMTP Transmission Types Registration", RFC 3848, July 2004.

[10] Klensin, J., Freed, N., and K. Moore, "SMTP Service Extension for Message Size Declaration", STD 10, RFC 1870, November 1995.

[11] Klyne, G., Nottingham, M., and J. Mogul, "Registration Procedures for Message Header Fields", BCP 90, RFC 3864, September 2004.

10.2. Informative References 10.2. 参考資料

[12] Partridge, C., "Mail routing and the domain system", RFC 974, January 1986.

[13] Klensin, J., Freed, N., Rose, M., Stefferud, E., and D. Crocker, "SMTP Service Extensions", STD 10, RFC 1869, November 1995.

[14] Klensin, J., "Simple Mail Transfer Protocol", RFC 2821, April 2001.

[15] Butler, M., Postel, J., Chase, D., Goldberger, J., and J. Reynolds, "Post Office Protocol: Version 2", RFC 937, February 1985.

[16] Myers, J. and M. Rose, "Post Office Protocol - Version 3", STD 53, RFC 1939, May 1996.

[17] Crispin, M., "INTERNET MESSAGE ACCESS PROTOCOL - VERSION 4rev1", RFC 3501, March 2003.

[18] Gellens, R. and J. Klensin, "Message Submission for Mail", RFC 4409, April 2006.

[19] Freed, N., "SMTP Service Extension for Command Pipelining", STD 60, RFC 2920, September 2000.

[20] Vaudreuil, G., "SMTP Service Extensions for Transmission of Large and Binary MIME Messages", RFC 3030, December 2000.

[21] Freed, N. and N. Borenstein, "Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies", RFC 2045, November 1996.

[22] Klensin, J., Freed, N., Rose, M., Stefferud, E., and D. Crocker, "SMTP Service Extension for 8bit-MIMEtransport", RFC 1652, July 1994.

[23] Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part Three: Message Header Extensions for Non-ASCII Text", RFC 2047, November 1996.

[24] Freed, N. and K. Moore, "MIME Parameter Value and Encoded Word Extensions: Character Sets, Languages, and Continuations", RFC 2231, November 1997.

[25] Vaudreuil, G., "Enhanced Mail System Status Codes", RFC 3463, January 2003.

[26] Hansen, T. and J. Klensin, "A Registry for SMTP Enhanced Mail System Status Codes", BCP 138, RFC 5248, June 2008.

[27] Freed, N., "Behavior of and Requirements for Internet Firewalls", RFC 2979, October 2000.

[28] Crocker, D., "Standard for the format of ARPA Internet text messages", STD 11, RFC 822, August 1982.

[29] Wong, M. and W. Schlitt, "Sender Policy Framework (SPF) for Authorizing Use of Domains in E-Mail, Version 1", RFC 4408, April 2006.

[30] Fenton, J., "Analysis of Threats Motivating DomainKeys Identified Mail (DKIM)", RFC 4686, September 2006.

[31] Allman, E., Callas, J., Delany, M., Libbey, M., Fenton, J., and M. Thomas, "DomainKeys Identified Mail (DKIM) Signatures", RFC 4871, May 2007.

[32] Moore, K., "Simple Mail Transfer Protocol (SMTP) Service Extension for Delivery Status Notifications (DSNs)", RFC 3461, January 2003.

[33] Moore, K. and G. Vaudreuil, "An Extensible Message Format for Delivery Status Notifications", RFC 3464, January 2003.

[34] Postel, J. and J. Reynolds, "File Transfer Protocol", STD 9, RFC 959, October 1985.

[35] Kille, S., "MIXER (Mime Internet X.400 Enhanced Relay): Mapping between X.400 and RFC 822/MIME", RFC 2156, January 1998.

[36] De Winter, J., "SMTP Service Extension for Remote Message Queue Starting", RFC 1985, August 1996.

[37] Hansen, T. and G. Vaudreuil, "Message Disposition Notification", RFC 3798, May 2004.

[38] Elz, R. and R. Bush, "Clarifications to the DNS Specification", RFC 2181, July 1997.

[39] Nakamura, M. and J. Hagino, "SMTP Operational Experience in Mixed IPv4/v6 Environments", RFC 3974, January 2005.

[40] Partridge, C., "Duplicate messages and SMTP", RFC 1047, February 1988.

[41] Crispin, M., "Interactive Mail Access Protocol: Version 2", RFC 1176, August 1990.

[42] Lambert, M., "PCMAIL: A distributed mail system for personal computers", RFC 1056, June 1988.

[43] Galvin, J., Murphy, S., Crocker, S., and N. Freed, "Security Multiparts for MIME: Multipart/Signed and Multipart/Encrypted", RFC 1847, October 1995.

[44] Callas, J., Donnerhacke, L., Finney, H., Shaw, D., and R. Thayer, "OpenPGP Message Format", RFC 4880, November 2007.

[45] Ramsdell, B., "Secure/Multipurpose Internet Mail Extensions (S/MIME) Version 3.1 Message Specification", RFC 3851, July 2004.

[46] Internet Assigned Number Authority (IANA), "IANA Mail Parameters", 2007, <http://www.iana.org/assignments/mail-parameters>.

[47] Internet Assigned Number Authority (IANA), "Address Literal Tags", 2007, <http://www.iana.org/assignments/address-literal-tags>.

Appendix A. TCP Transport Service 付録 A. TCP トランスポートサービス

The TCP connection supports the transmission of 8-bit bytes. The SMTP data is 7-bit ASCII characters. Each character is transmitted as an 8-bit byte with the high-order bit cleared to zero. Service extensions may modify this rule to permit transmission of full 8-bit data bytes as part of the message body, or, if specifically designed to do so, in SMTP commands or responses. TCP 接続は 8 ビットバイトの通信をサポートする。SMTP のデータは 7 ビット ASCII 文字である。各文字は上位ビットがゼロにクリアされた 8 ビットバイトとして転送される。サービス拡張はこの規則を変更し、メッセージ本文の一部として、または(もし具体的にそうするよう設計されていれば)SMTP コマンドまたはレスポンスにおいて、完全な 8 ビットデータバイトの通信を許可してもよい。

Appendix B. Generating SMTP Commands from RFC 822 Header Fields 付録 B. RFC 822 ヘッダフィールドに由来する SMTP コマンドを生成する

Some systems use an RFC 822 header section (only) in a mail submission protocol, or otherwise generate SMTP commands from RFC 822 header fields when such a message is handed to an MTA from a UA. While the MTA-UA protocol is a private matter, not covered by any Internet Standard, there are problems with this approach. For example, there have been repeated problems with proper handling of "bcc" copies and redistribution lists when information that conceptually belongs to the mail envelope is not separated early in processing from header field information (and kept separate). 一部のシステムは、メールサブミッションプロトコルにおいて RFC 822 ヘッダセクション(のみ)を使用するか、またはそのようなメッセージが UA から MTA へと渡された場合には RFC 822 ヘッダフィールドに由来する SMTP コマンドを生成する。MTA-UA のプロトコルはプライベートの問題であり、インターネットスタンダードにより網羅されないが、このアプローチには問題がある。例えば、概念的にはメールエンベロープに属する情報が、処理の初期段階でヘッダフィールドの情報から分離される(そして分離され続ける)ことがない場合の、"bcc" コピーおよび再配送リストの適切な扱いに関して繰り返されてきた問題がある。

It is recommended that the UA provide its initial ("submission client") MTA with an envelope separate from the message itself. However, if the envelope is not supplied, SMTP commands SHOULD be generated as follows: UA は最初の("サブミッションクライアント(submission client)") MTA に対し、メッセージ自体からエンベロープを分離して提供することが推奨される。しかしながらエンベロープが提供されなかった場合、SMTP コマンドは以下の通り生成されるべきである(SHOULD):

When an MTA is being used in this way, it bears responsibility for ensuring that the message being transmitted is valid. The mechanisms for checking that validity, and for handling (or returning) messages that are not valid at the time of arrival, are part of the MUA-MTA interface and not covered by this specification. MTA がこのようにして使用される場合、MTA は転送されるメッセージが妥当であることの保証に責任を負う。この妥当性確認と到着時点で有効でないメッセージの扱い(または返信)とのメカニズムは MUA-MTA インターフェイスの一部であり、本仕様では網羅されない。

A submission protocol based on Standard RFC 822 information alone MUST NOT be used to gateway a message from a foreign (non-SMTP) mail system into an SMTP environment. Additional information to construct an envelope must come from some source in the other environment, whether supplemental header fields or the foreign system's envelope. 標準の RFC 822 情報のみに基づくサブミッションプロトコルは、他の(非 SMTP)メールシステムから SMTP 環境へとメッセージをゲートウェイするために使用されてはならない(MUST NOT)。エンベロープを組み立てるための追加情報は、その別環境の何らかの情報(追加のヘッダフィールドであろうと、その外部システムのエンベロープであろうと)に由来しなければならない。

Attempts to gateway messages using only their header "To" and "Cc" fields have repeatedly caused mail loops and other behavior adverse to the proper functioning of the Internet mail environment. These problems have been especially common when the message originates from an Internet mailing list and is distributed into the foreign environment using envelope information. When these messages are then processed by a header-section-only remailer, loops back to the Internet environment (and the mailing list) are almost inevitable. ヘッダの "To" および "Cc" のみを使用してメッセージをゲートウェイする試みは、メールのループや、インターネットメール環境の適切な働きに反するその他の振る舞いを繰り返し引き起こしてきた。これらの問題は、メッセージがインターネットのメーリングリストから発信され、エンベロープ情報を使用して外部環境に配送される場合に特によく発生する。それらのメッセージが次にヘッダセクションのみを使用するリメーラーによって処理された場合、インターネット環境(そしてそのメーリングリスト)へのループバックはほとんど不可避である。

Appendix C. Source Routes 付録 C. ソースルート

Historically, the <reverse-path> was a reverse source routing list of hosts and a source mailbox. The first host in the <reverse-path> was historically the host sending the MAIL command; today, source routes SHOULD NOT appear in the reverse-path. Similarly, the <forward-path> may be a source routing lists of hosts and a destination mailbox. However, in general, the <forward-path> SHOULD contain only a mailbox and domain name, relying on the domain name system to supply routing information if required. The use of source routes is deprecated (see Appendix F.2); while servers MUST be prepared to receive and handle them as discussed in Section 3.3 and Appendix F.2, clients SHOULD NOT transmit them and this section is included in the current specification only to provide context. It has been modified somewhat from the material in RFC 821 to prevent server actions that might confuse clients or subsequent servers that do not expect a full source route implementation. 歴史的に <reverse-path> は、ホストの逆ソースルーティングリストと送信元メールボックスであった。<reverse-path> 内の最初のホストは、歴史的には MAIL コマンドを送信したホストであった。現在では、reverse-path 内にソースルートが現れるべきではない(SHOULD NOT)。同じように <forward-path> は、ホストのソースルーティングリストと宛先メールボックスであってもよい。しかしながら一般に <forward-path> は、必要に応じてルーティング情報を提供するドメインネームシステムを当てにして、メールボックスとドメイン名とだけを含むべきである(SHOULD)。ソースルートの使用は非推奨である(付録 F.2 参照)。セクション 3.3 および 付録 F.2 で議論されている通り、サーバーはそれを受け取り処理する準備ができていなければならない(MUST)が、一方でクライアントはそれらを送信するべきではなく(SHOULD NOT)、本セクションはその背景を提供するためだけに現仕様に含まれている。完全なソースルート実装を期待しないクライアントや後続サーバーを混乱させるかもしれないサーバーの動作を避けるために、これは RFC 821 での内容から少し修正されている。

For relay purposes, the forward-path may be a source route of the form "@ONE,@TWO:JOE@THREE", where ONE, TWO, and THREE MUST be fully- qualified domain names. This form is used to emphasize the distinction between an address and a route. The mailbox (here, JOE@ THREE) is an absolute address, and the route is information about how to get there. The two concepts should not be confused. リレーのためには、forward-path は "@ONE,@TWO:JOE@THREE" の形式のソースルートであってもよい(ここで ONE、TWO、THREE は完全限定ドメイン名でなければならない(MUST))。この形式はアドレスとルートとの間の区切りを強調するために使用される。メールボックス(ここでは JOE@THREE)は絶対アドレスであり、ルートはそこに到達する方法に関する情報である。この二つの概念を混同してはならない。

If source routes are used, RFC 821 and the text below should be consulted for the mechanisms for constructing and updating the forward-path. A server that is reached by means of a source route (e.g., its domain name appears first in the list in the forward-path) MUST remove its domain name from any forward-paths in which that domain name appears before forwarding the message and MAY remove all other source routing information. The reverse-path SHOULD NOT be updated by servers conforming to this specification. ソースルートを使用する場合、forward-path の組み立てと更新とのためのメカニズムのために、RFC 821 と下記の文章を参考にするべきである。ソースルートを用いて到達したサーバー(つまりそのドメイン名が forward-path 内のリストの先頭に現れるサーバー)は、そのメッセージを転送する前に自身のドメイン名の現れるすべての forward-path からそのドメイン名を削除しなければならず(MUST)、他のすべてのソースルーティング情報を削除してもよい(MAY)。本仕様に準拠するサーバーは reverse-path を更新するべきではない(SHOULD NOT)。

Notice that the forward-path and reverse-path appear in the SMTP commands and replies, but not necessarily in the message. That is, there is no need for these paths and especially this syntax to appear in the "To:" , "From:", "CC:", etc. fields of the message header section. Conversely, SMTP servers MUST NOT derive final message routing information from message header fields. forward-path と reverse-path とは SMTP のコマンドとリプライとに現れるが、メッセージには必要がないことに注意してほしい。つまりそれらのパス、特にその構文が、メッセージのヘッダセクションの "To:"・"From:"・"CC:" に現れる必要はないということである。逆に SMTP サーバーは、メッセージのヘッダフィールドから最終メッセージのルーティング情報を抽出してはならない(MUST NOT)。

When the list of hosts is present despite the recommendations above, it is a "reverse" source route and indicates that the mail was relayed through each host on the list (the first host in the list was the most recent relay). This list is used as a source route to return non-delivery notices to the sender. If, contrary to the recommendations here, a relay host adds itself to the beginning of the list, it MUST use its name as known in the transport environment to which it is relaying the mail rather than that of the transport environment from which the mail came (if they are different). Note that a situation could easily arise in which some relay hosts add their names to the reverse source route and others do not, generating discontinuities in the routing list. This is another reason why servers needing to return a message SHOULD ignore the source route entirely and simply use the domain as specified in the Mailbox. 上記の推奨事項にもかかわらずホストのリストが提示された場合、それは "逆(reverse)" ソースルートであり、そのメールがリスト上の各ホストを経由してリレーされたことを表している(最初のホストがもっとも最近のリレーである)。このリストは送信者に配送不能通知を返すためのソースルートとして使用される。ここでの推奨事項に反してリレーホストがそのリストに自身を追加する場合、そのメールが来たトランスポート環境における名前ではなく、そのメールのリレー先のトランスポート環境において知られている名前を(もしそれらが異なるなら)使用しなければならない(MUST)。一部のリレーホストが自身の名前を逆ソースルートに追加し他がそれを行わないことで、不連続なルーティングのリストを生成する状況は容易に起こり得る。これは、メッセージを返送する必要のあるサーバーがソースルート全体を無視し、メールボックスに指定されたドメインを単純に使用するべき(SHOULD)であることの、もうひとつの理由である。

Appendix D. Scenarios 付録 D. シナリオ

This section presents complete scenarios of several types of SMTP sessions. In the examples, "C:" indicates what is said by the SMTP client, and "S:" indicates what is said by the SMTP server. 本セクションは数種類の SMTP セッションの完結したシナリオを提供する。例の中の "C:" は SMTP クライアントの送信内容を表し、"S:" は SMTP サーバーの送信内容を表している。

D.1. A Typical SMTP Transaction Scenario D.1. 典型的な SMTP トランザクションシナリオ

This SMTP example shows mail sent by Smith at host bar.com, and to Jones, Green, and Brown at host foo.com. Here we assume that host bar.com contacts host foo.com directly. The mail is accepted for Jones and Brown. Green does not have a mailbox at host foo.com. 以下の SMTP の例は、ホスト bar.com 上の Smith から送信され、ホスト foo.com 上の Jones・Green・Brown に送信されたメールを示している。ここでは bar.com が foo.com に直接接続していると仮定している。このメールは Jones と Brown には受け入れられたが、Green は foo.com 上にメールボックスを持っていない。

      S: 220 foo.com Simple Mail Transfer Service Ready
      C: EHLO bar.com
      S: 250-foo.com greets bar.com
      S: 250-8BITMIME
      S: 250-SIZE
      S: 250-DSN
      S: 250 HELP
      C: MAIL FROM:<Smith@bar.com>
      S: 250 OK
      C: RCPT TO:<Jones@foo.com>
      S: 250 OK
      C: RCPT TO:<Green@foo.com>
      S: 550 No such user here
      C: RCPT TO:<Brown@foo.com>
      S: 250 OK
      C: DATA
      S: 354 Start mail input; end with <CRLF>.<CRLF>
      C: Blah blah blah...
      C: ...etc. etc. etc.
      C: .
      S: 250 OK
      C: QUIT
      S: 221 foo.com Service closing transmission channel

D.2. Aborted SMTP Transaction Scenario D.2. 中断された SMTP トランザクションシナリオ

      S: 220 foo.com Simple Mail Transfer Service Ready
      C: EHLO bar.com
      S: 250-foo.com greets bar.com
      S: 250-8BITMIME
      S: 250-SIZE
      S: 250-DSN
      S: 250 HELP
      C: MAIL FROM:<Smith@bar.com>
      S: 250 OK
      C: RCPT TO:<Jones@foo.com>
      S: 250 OK
      C: RCPT TO:<Green@foo.com>
      S: 550 No such user here
      C: RSET
      S: 250 OK
      C: QUIT
      S: 221 foo.com Service closing transmission channel

D.3. Relayed Mail Scenario D.3. リレーされたメールのシナリオ

Step 1 -- Source Host to Relay Host ステップ 1 -- 送信元ホストからリレーホストへ

The source host performs a DNS lookup on XYZ.COM (the destination address) and finds DNS MX records specifying xyz.com as the best preference and foo.com as a lower preference. It attempts to open a connection to xyz.com and fails. It then opens a connection to foo.com, with the following dialogue: 送信元ホストは XYZ.COM(宛先アドレス) の DNS 検索を実行し、もっとも優先順位の高い xyz.com と、それより低い優先順位の foo.com とを指定する DNS MX レコードを見つけた。送信元ホストは xyz.com に接続を試み、失敗する。次に、foo.com への接続を開始し、以下の対話を行う:

      S: 220 foo.com Simple Mail Transfer Service Ready
      C: EHLO bar.com
      S: 250-foo.com greets bar.com
      S: 250-8BITMIME
      S: 250-SIZE
      S: 250-DSN
      S: 250 HELP
      C: MAIL FROM:<JQP@bar.com>
      S: 250 OK
      C: RCPT TO:<Jones@XYZ.COM>
      S: 250 OK
      C: DATA
      S: 354 Start mail input; end with <CRLF>.<CRLF>
      C: Date: Thu, 21 May 1998 05:33:29 -0700
      C: From: John Q. Public <JQP@bar.com>
      C: Subject: The Next Meeting of the Board
      C: To: Jones@xyz.com
      C:
      C: Bill:
      C: The next meeting of the board of directors will be
      C: on Tuesday.
      C: John.
      C: .
      S: 250 OK
      C: QUIT
      S: 221 foo.com Service closing transmission channel

Step 2 -- Relay Host to Destination Host ステップ 2 -- リレーホストから宛先ホストへ

foo.com, having received the message, now does a DNS lookup on xyz.com. It finds the same set of MX records, but cannot use the one that points to itself (or to any other host as a worse preference). It tries to open a connection to xyz.com itself and succeeds. Then we have: メッセージを受信した foo.com は、次に xyz.com の DNS 検索を行う。同じ MX レコードを見つけるが、自身(またはより低い優先順位の他のホスト)を指すレコードは使用できない。そして xyz.com への接続を試み、成功する:

           S: 220 xyz.com Simple Mail Transfer Service Ready
           C: EHLO foo.com
           S: 250 xyz.com is on the air
           C: MAIL FROM:<JQP@bar.com>
           S: 250 OK
           C: RCPT TO:<Jones@XYZ.COM>
           S: 250 OK
           C: DATA
           S: 354 Start mail input; end with <CRLF>.<CRLF>
           C: Received: from bar.com by foo.com ; Thu, 21 May 1998
           C:     05:33:29 -0700
           C: Date: Thu, 21 May 1998 05:33:22 -0700
           C: From: John Q. Public <JQP@bar.com>
           C: Subject:  The Next Meeting of the Board
           C: To: Jones@xyz.com
           C:
           C: Bill:
           C: The next meeting of the board of directors will be
           C: on Tuesday.
           C:                         John.
           C: .
           S: 250 OK
           C: QUIT
           S: 221 foo.com Service closing transmission channel

D.4. Verifying and Sending Scenario D.4. 検証と送信のシナリオ

      S: 220 foo.com Simple Mail Transfer Service Ready
      C: EHLO bar.com
      S: 250-foo.com greets bar.com
      S: 250-8BITMIME
      S: 250-SIZE
      S: 250-DSN
      S: 250-VRFY
      S: 250 HELP
      C: VRFY Crispin
      S: 250 Mark Crispin <Admin.MRC@foo.com>
      C: MAIL FROM:<EAK@bar.com>
      S: 250 OK
      C: RCPT TO:<Admin.MRC@foo.com>
      S: 250 OK
      C: DATA
      S: 354 Start mail input; end with <CRLF>.<CRLF>
      C: Blah blah blah...
      C: ...etc. etc. etc.
      C: .
      S: 250 OK
      C: QUIT
      S: 221 foo.com Service closing transmission channel

Appendix E. Other Gateway Issues 付録 E. 他のゲートウェイ問題

In general, gateways between the Internet and other mail systems SHOULD attempt to preserve any layering semantics across the boundaries between the two mail systems involved. Gateway- translation approaches that attempt to take shortcuts by mapping (such as mapping envelope information from one system to the message header section or body of another) have generally proven to be inadequate in important ways. Systems translating between environments that do not support both envelopes and a header section and Internet mail must be written with the understanding that some information loss is almost inevitable. 一般にインターネットと他のメールシステムとの間のゲートウェイは、関連する二つのメールシステム間の境界を越えて、すべてのレイヤのセマンティクスを保持するように試みるべきである(SHOULD)。マッピング(例えばあるシステムのエンベロープ情報から別システムのメッセージのヘッダセクションまたはメッセージ本文へのマッピング)によって近道をしようと試みるゲートウェイの変換アプローチは、重要な点で不適切であることが一般に証明されている。両方のエンベロープとヘッダセクションとインターネットメールとをサポートしない環境間の変換を行うシステムは、一部の情報損失が避けられないことを理解して書かれなければならない。

Appendix F. Deprecated Features of RFC 821 付録 F. RFC 821 の非推奨の機能

A few features of RFC 821 have proven to be problematic and SHOULD NOT be used in Internet mail. RFC 821 の一部の機能には問題があるため、インターネットメールにおいて使用するべきではない(SHOULD NOT)。

F.1. TURN

This command, described in RFC 821, raises important security issues since, in the absence of strong authentication of the host requesting that the client and server switch roles, it can easily be used to divert mail from its correct destination. Its use is deprecated; SMTP systems SHOULD NOT use it unless the server can authenticate the client. RFC 821 で説明されてるこのコマンドは重大なセキュリティ問題を引き起こす。クライアントとサーバーとの役割の入れ替えを要求するホストに対する強力な認証が無い場合、これは簡単にメールを正しい宛先からそらすために使用できる。この使用は推奨されない。SMTP システムは、サーバーがクライアントを認証できない限り、このコマンドを使用するべきではない(SHOULD NOT)。

F.2. Source Routing F.2. ソースルーティング

RFC 821 utilized the concept of explicit source routing to get mail from one host to another via a series of relays. The requirement to utilize source routes in regular mail traffic was eliminated by the introduction of the domain name system "MX" record and the last significant justification for them was eliminated by the introduction, in RFC 1123, of a clear requirement that addresses following an "@" must all be fully-qualified domain names. Consequently, the only remaining justifications for the use of source routes are support for very old SMTP clients or MUAs and in mail system debugging. They can, however, still be useful in the latter circumstance and for routing mail around serious, but temporary, problems such as problems with the relevant DNS records. RFC 821 は、あるホストから別のホストへと一連のリレーを経由してメールを送るための明示的ソースルーティングの概念を使用していた。通常のメールトラフィックにおいてソースルートを利用する必要性はドメインネームシステムの "MX" レコードの導入により削減され、その最後の重要な正当化も、"@" に続くアドレスがすべて完全限定ドメイン名でなければならないという明確な要求事項(RFC 1123)の導入によって削減された。その結果、ソースルートの使用を正当化する唯一残された理由は、非常に古い SMTP クライアントや MUA をサポートするためと、メールシステムのデバッグのためである。しかしながら後者の状況や、例えば関連する DNS レコードの問題のような深刻な(しかし一時的な)問題を回避してメールをルーティングするためには、いまだ実用的である。

SMTP servers MUST continue to accept source route syntax as specified in the main body of this document and in RFC 1123. They MAY, if necessary, ignore the routes and utilize only the target domain in the address. If they do utilize the source route, the message MUST be sent to the first domain shown in the address. In particular, a server MUST NOT guess at shortcuts within the source route. SMTP サーバーは、この文書の本文と RFC 1123 とにおいて規定されているソースルートの構文を受け入れ続けなければならない(MUST)。必要なら SMTP サーバーはその経路を無視し、アドレス内の宛先ドメインのみを使用してもよい(MAY)。ソースルートを使用する場合、メッセージはアドレス内に最初に現れるドメインに送信されなければならない(MUST)。特にサーバーは、ソースルート内のショートカットを推測してはならない(MUST NOT)。

Clients SHOULD NOT utilize explicit source routing except under unusual circumstances, such as debugging or potentially relaying around firewall or mail system configuration errors. クライアントは、例えばデバッグや、ファイアウォールまたはメールシステムの設定エラーを迂回する潜在的なリレーなどの通常ではない状況を除き、明示的なソースルーティングを使用するべきではない(SHOULD NOT)。

F.3. HELO

As discussed in Sections 3.1 and 4.1.1, EHLO SHOULD be used rather than HELO when the server will accept the former. Servers MUST continue to accept and process HELO in order to support older clients. セクション 3.1 および 4.1.1 で議論した通り、サーバーが EHLO を受け入れるなら、HELO ではなく EHLO を使用するべきである(SHOULD)。サーバーは古いクライアントをサポートするために HELO の受け入れと処理とを継続しなければならない(MUST)。

F.4. #-literals F.4. #-リテラル

RFC 821 provided for specifying an Internet address as a decimal integer host number prefixed by a pound sign, "#". In practice, that form has been obsolete since the introduction of TCP/IP. It is deprecated and MUST NOT be used. RFC 821 は、"#" を前に置く 10 進数のホスト番号でインターネットアドレスを指定する方法を提供していた。実際には TCP/IP が導入されて以来、この形式は廃止された。これは非推奨であり、使用してはならない(MUST NOT)。

F.5. Dates and Years F.5. 日付と年

When dates are inserted into messages by SMTP clients or servers (e.g., in trace header fields), four-digit years MUST BE used. Two- digit years are deprecated; three-digit years were never permitted in the Internet mail system. SMTP のクライアントまたはサーバーがメッセージ(例えばトレースヘッダフィールド)に日付を挿入する場合、4 桁の年を使用しなければならない(MUST)。2 桁の年は推奨されない。インターネットメールシステムにおいて 3 桁の年が許可されたことはない。

F.6. Sending versus Mailing F.6. 送信(Sending)と郵送(Mailing)

In addition to specifying a mechanism for delivering messages to user's mailboxes, RFC 821 provided additional, optional, commands to deliver messages directly to the user's terminal screen. These commands (SEND, SAML, SOML) were rarely implemented, and changes in workstation technology and the introduction of other protocols may have rendered them obsolete even where they are implemented. RFC 821 はユーザーのメールボックスにメッセージを配送するためのメカニズムを規定するのに加え、ユーザーのターミナルスクリーンに直接メッセージを配送するための追加の(オプションの)コマンドを提供していた。これらのコマンド(SEND・SAML・SOML)はまれにしか実装されず、実装されている場合でも、ワークステーションのテクノロジーの変化と他のプロトコルの導入とがそれらを時代遅れにした。

Clients SHOULD NOT provide SEND, SAML, or SOML as services. Servers MAY implement them. If they are implemented by servers, the implementation model specified in RFC 821 MUST be used and the command names MUST be published in the response to the EHLO command. クライアントは SEND・SAML・SOML をサービスとして提供するべきではない(SHOULD NOT)。サーバーはそれらを実装してもよい(MAY)。サーバーがそれらを実装する場合、RFC 821 で規定されている実装モデルが使用されなければならず(MUST)、そのコマンド名は EHLO コマンドの応答において通知されなければならない(MUST)。

Author's Address 著者のアドレス

   John C. Klensin
   1770 Massachusetts Ave, Suite 322
   Cambridge, MA  02140
   USA

   EMail: john+smtp@jck.com

Full Copyright Statement

Copyright (C) The IETF Trust (2008).

This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY, THE IETF TRUST AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.