29

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

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

4

3 に答える 3

21

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

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

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

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

于 2012-06-15T15:21:57.127 に答える
13

受信者のこの RCPT TO リストは、DATA コマンドで示されるヘッダーと一致する必要がありますか?

いいえ。

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

RCPT。これは、私自身のSMTPクライアントからの(変更された)トランスクリプトです。ここでは、あなたが求めることだけを行います。

CLIENT: MAIL FROM:<myaccount@gmail.com>
SERVER: 250 2.1.0 OK 
CLIENT: RCPT TO:<myaccount@gmail.com>
SERVER: 250 2.1.5 OK 
CLIENT: DATA
SERVER: 354  Go ahead 
CLIENT: Subject: Test email
CLIENT: From:'John Doe'<fakeaccount@gmail.com>
CLIENT: To:'John Doe'<fakeaccount@gmail.com>
CLIENT: This is a test...
CLIENT: .

メッセージは「myaccount@gmail.com」に正常に送信されました。

于 2012-10-23T15:06:38.360 に答える
5

SMTP プロトコル ( RFC 2821 ) では、次のように規定されています。

RFC 822 形式 [7, 32] が使用されている場合、メール データには、
Date、Subject、To、Cc、From などのメモ ヘッダー項目が含まれます。サーバー SMTPシステムは、 RFC 822 または MIME [12] メッセージ ヘッダーまたはメッセージ ボディ
で認識された欠陥に基づいて、メッセージを拒否すべきではありません (SHOULD NOT )。

この:

DATA コマンドは、プロトコル交換の 2 つの時点でのみ失敗する可能性があります。

  • メールがない場合、またはRCPTコマンドがない場合、またはそのようなコマンドがすべて拒否された場合、サーバーはDATAコマンドに応答して「コマンドの順序が間違っている」(503)または「有効な受信者がいない」(554)応答を返す場合があります。これらの応答の 1 つ (またはその他の 5yz 応答) を受信した場合、クライアントはメッセージ データを送信してはなりません。より一般的には、354 応答が受信されない限り、メッセージ データを送信してはなりません。

これらのステートメントから、ヘッダーと RCPT TO: コマンドの内容は一致する必要はなく (一致する必要があります)、RCPT TO: を使用しないと、エラーが発生して DATA コマンドを続行できなくなります。

于 2012-05-30T18:46:32.723 に答える