電子メールを送信する場合、受信者リストは、RCTP TO:コマンドを介したSMTPダイアログ中に与えられます。その後、DATAコマンドで、「To」、「Cc」、「bcc」などのヘッダーフィールドが示されます。この受信者のRCPT TOリストは、DATAコマンドで指定されたヘッダーと一致する必要がありますか?
また、受信者がRCPT TOではなく、電子メールヘッダーのToフィールドに示されている場合、RCPT TOではない受信者に配信されますか?
いいえ、一致する必要はありません。メッセージが送信されると、SMTPサーバー(別名Message Transfer AgentまたはMTA)は、メッセージの受信者と送信者を含む、いわゆるSMTPエンベロープを作成します( RFC5321 を参照)。
SMTPはメールオブジェクトを転送します。メールオブジェクトには、エンベロープとコンテンツが含まれています。 SMTPエンベロープは、一連のSMTPプロトコルユニットとして送信されます(セクション3で説明)。これは、(エラーレポートの送信先となる)発信者アドレス、1つ以上の受信者アドレス、およびオプションのプロトコル拡張資料で構成されます。
実際には、RCPT TO:コマンドの受信者の方がメッセージのヘッダーよりも多いことがよくあります。1つの一般的なケースは、「ブラインドコピー」bccの使用です( RFC5321 を参照):
メッセージヘッダーセクションに表示されないアドレスは、さまざまな理由でSMTPサーバーへのRCPTコマンドに表示される場合があります。最も一般的な2つは、「リストエクスプローダー」(複数のアドレスに解決される単一のアドレス)としてのメールアドレスの使用と、「ブラインドコピー」の出現です。
この受信者のRCPT TOリストは、DATAコマンドで指定されたヘッダーと一致する必要がありますか?
いいえ。
受信者がRCPT TOではなく、電子メールヘッダーのToフィールドに示されている場合、RCPT TOではない受信者に配信されますか?
RCPT。これは私があなたの質問したことだけをする私自身のSMTPクライアントからの(修正された)トランスクリプトです:
CLIENT: MAIL FROM:<[email protected]>
SERVER: 250 2.1.0 OK
CLIENT: RCPT TO:<[email protected]>
SERVER: 250 2.1.5 OK
CLIENT: DATA
SERVER: 354 Go ahead
CLIENT: Subject: Test email
CLIENT: From:'John Doe'<[email protected]>
CLIENT: To:'John Doe'<[email protected]>
CLIENT: This is a test...
CLIENT: .
メッセージは「[email protected]」に正常に送信されました。
SMTPプロトコル( RFC 2821 )は次のように述べています。
RFC 822形式[7、32]が使用されている場合、メールデータには
日付、件名、宛先、Cc、差出人などのメモヘッダー項目。サーバーSMTP
システムは、認識された欠陥に基づいてメッセージを拒否しないでください
RFC 822またはMIME [12]メッセージヘッダーまたはメッセージ本文。
この:
DATAコマンドは、プロトコル交換の2つのポイントでのみ失敗する可能性があります。
- MAILがないか、RCPTコマンドがないか、そのようなコマンドがすべて拒否された場合、サーバーはDATAコマンドへの応答として、「シーケンス外のコマンド」(503)または「有効な受信者なし」(554)の応答を返す場合があります。これらの応答の1つ(または他の5yz応答)を受信した場合、クライアントはメッセージデータを送信してはなりません(MUST NOT)。より一般的には、354応答が受信されない限り、メッセージデータを送信してはなりません(MUST NOT)。
これらのステートメントから、ヘッダーとRCPT TO:コマンドの内容は一致する必要はありませんが(一致するはずですが)、RCPT TO:を使用しないと、DATAコマンドの続行を妨げるエラーが発生する可能性があります。