http://www.linuxforum.net Jephe Wu (2001-04-21 18:16:42) 1. SMTP は 2 つの状況で機能します。1 つは電子メールがクライアントからサーバーに送信される場合です。特定のサーバーが別のサーバーに送信します。 2. SMTP は要求/応答プロトコルであり、コマンドと応答は ASCII テキストに基づいており、CR 文字と LF 文字で終わります。応答には、戻りステータスを示す 3 桁のコードが含まれます。 3. SMTP は、TCP プロトコル ポート 25 で接続要求をリッスンします。 4. 接続と送信プロセス: a. TCP 接続を確立します。 b. クライアントは、送信者自身を識別するために HELO コマンドを送信します。 c. クライアントは MAIL コマンドを送信し、サーバーは受信準備ができていることを示す OK で応答することを期待します。 c. クライアントは、電子メールの対象受信者を識別するために RCPT コマンドを送信します。複数の RCPT 行が存在する場合があります。サーバーが電子メールを受信するかどうかを示します d. ネゴシエーションが終了し、電子メールを送信し、コマンド DATA を使用して入力コンテンツの終了を示し、送信します。 f. この送信を終了し、QUIT コマンドで終了します。 5. 他の 2 つのコマンド: VRFY --- 特定のユーザー メールボックスが存在するかどうかを確認し、ユーザーに関する詳細情報を受け取るために使用されます。 EXPN --- メーリング リストを拡張するために使用されます。 6. メール ルーティング プロセス: SMTP サーバーは、ドメイン ネーム サービス DNS 内の対象受信者のドメイン名に基づいて電子メールをルーティングします。 SMTP サーバーは、DNS の MX レコードに基づいて電子メールをルーティングします。MX レコードには、ドメイン名と、ドメインに属する電子メールの送信先となる関連する SMTP リレー ホストが登録されます。 SMTP サーバー mail.abc.com がレターを受信し、それを shuuser@sh.abc.com に送信したい場合: a.Sendmail はホスト sh.abc.com の CNAME レコード (存在する場合) を DNS に要求します。 CNAME は shmail.abc .com に移動し、それがなくなるまで shmail.abc.com の CNAME レコードを再度要求します。 b. shmail.abc.com に対する CNAME であると仮定し、sendmail が @abc の DNS を要求します。 .com ドメインを使用して shmail.abc.com の MX レコードを提供します。 shmail MX 5 shmail.abc.com 10 shmail2.abc.com c. Sendmail は最後に、shmail.abc.com の A レコードを提供するよう DNS に要求します。戻り値が 1.2.3.4 の場合 d. Sendmail と 1.2.3.4 のこのサーバーの SMTP バックグラウンド プログラムにこのレターを送信します。 : コマンドの説明 --------------- --------------- HELO サーバーに対してユーザーの身元を特定します。ただし、送信者は騙したり嘘をついたりする可能性があります。通常の状況では、サーバーはそれを検出できます。 MAIL メール転送の初期化 mail from: RCPT 単一のメール受信者を識別する; 多くの場合、MAIL コマンドの後に複数の rcpt が存在する可能性があります: DATA 単一または複数の RCPT コマンドの後に、すべてのメール受信者が識別され、データ送信が初期化されることを意味します。 、で終わります。 VRFY 指定されたユーザー/メールボックスが存在するかどうかを確認するために使用されます。セキュリティ上の理由から、サーバーはこのコマンドを禁止することがよくあります。 EXPN 、サーバーは OK を応答する必要があります QUIT セッション終了 RSET セッションをリセット、現在の送信はキャンセルされます------ ------------------------ 8 . MAIL FROM コマンドで指定されたアドレスはエンベロープ送信元アドレスと呼ばれ、エンベロープ送信元アドレスと一致している必要はありません。送信者自身のアドレス。 RCPT TO は同等であり、実際の to: 行が何であるかに関係なく、指定された受信者アドレスはエンベロープ to アドレスと呼ばれます。 9. RCPT | CC と RCPT | BCC がないのはなぜですか? すべての受信側ネゴシエーションは RCPT TO コマンドによって実装されます。BCC の場合、エンベロープ受信側はネゴシエーションの送信後に削除されます。 10. メールは封筒部分 に分かれており、レターヘッド部分とレター本文部分のenvelope from、 envelope to はmessage from:、message to:とは全く無関係です。 Evnelope はサーバー ホスト間の SMTP バックエンドによって提供され、送信元/宛先のメッセージはユーザーによって提供されます。結腸の有無も違います。 11. 封筒から手紙が偽造されたかどうかを確認するにはどうすればよいですか? a. 受信した行の関連性。 現在の SMTP メール送信システムでは、エンベロープ部分を処理する両端の内部ホストに加えて、2 つのファイアウォール マシンがそれぞれ A と B である場合、受信者が受信したエンベロープを確認する場合、次のようになります。 line C.を通過したことが判明した場合、それは偽造品です。 b. 受信: 行内のホストと IP アドレスのペアは、次のように互いに対応していますか: 受信: from galangal.org (turmeric.com [104.128.23.115] by mail .bieberdorf.edu....)最後に手動で追加されました 受信した行: Received: from galangal.org ([104.128.23.115]) by mail .bieberdorf.edu (8.8.5) Received: fromemongrass.org by galangal.org (8.7.3) Received : graprao.com より、lemongrass.org (8.6.4) Jephe Wu