web-dev-qa-db-ja.com

SMTPでは、RCPT TO:とTO:が一致する必要がありますか?

電子メールを送信する場合、受信者リストは、RCTP TO:コマンドを介したSMTPダイアログ中に与えられます。その後、DATAコマンドで、「To」、「Cc」、「bcc」などのヘッダーフィールドが示されます。この受信者のRCPT TOリストは、DATAコマンドで指定されたヘッダーと一致する必要がありますか?

また、受信者がRCPT TOではなく、電子メールヘッダーのToフィールドに示されている場合、RCPT TOではない受信者に配信されますか?

21
Jelena

いいえ、一致する必要はありません。メッセージが送信されると、SMTPサーバー(別名Message Transfer AgentまたはMTA)は、メッセージの受信者と送信者を含む、いわゆるSMTPエンベロープを作成します( RFC5321 を参照)。

SMTPはメールオブジェクトを転送します。メールオブジェクトには、エンベロープとコンテンツが含まれています。 SMTPエンベロープは、一連のSMTPプロトコルユニットとして送信されます(セクション3で説明)。これは、(エラーレポートの送信先となる)発信者アドレス、1つ以上の受信者アドレス、およびオプションのプロトコル拡張資料で構成されます。

実際には、RCPT TO:コマンドの受信者の方がメッセージのヘッダーよりも多いことがよくあります。1つの一般的なケースは、「ブラインドコピー」bccの使用です( RFC5321 を参照):

メッセージヘッダーセクションに表示されないアドレスは、さまざまな理由でSMTPサーバーへのRCPTコマンドに表示される場合があります。最も一般的な2つは、「リストエクスプローダー」(複数のアドレスに解決される単一のアドレス)としてのメールアドレスの使用と、「ブラインドコピー」の出現です。

19
silentser

この受信者の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]」に正常に送信されました。

10
james.garriss

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コマンドの続行を妨げるエラーが発生する可能性があります。

5
Hakan Serce