• ベストアンサー

メールヘッダのreceivedの追記について

メールヘッダのreceivedのヘッダフィールドについて 分からないことがあります。 端末1が、端末2の電子メールアドレス(XXX@CCC.jpとします) を宛先アドレスとして電子メールを送信したとします。 端末1   SMTPサーバ1 SMTPサーバ2 SMTPサーバ3 YYY@AAA.jp mail.AAA.jp mail.BBB.jp mail.CCC.jp ↓         ↑↓     ↑↓      ↑  ルータa→→→ルータb→→ルータc→  ルータd                           ↓↑(POP)                         端末2XXX@CCC.jp SMTPのプロトコルだと、 このメールは端末1と同じドメイン(AAA.jp)のSMTPサーバ1から 宛先と同じドメイン(CCC.jp)のSMTPサーバ3まで転送され、 その間に、経由点上のSMTPサーバのトレース情報を示すreveiveのヘッダフィールドが追記されて行くということが分かりました。 ここで、質問なのですが、 端末1(または、SMTPサーバ1?)が、CCCのドメインネームサーバに SMTPサーバ3のIPアドレスを問い合わせて取得し、 そのIPアドレスを(メールを記述したTCPパケットの)TCPヘッダに付加してルータaに渡してしまえば、 あとはルータa~dが勝手にSMTPサーバ3まで転送してくれるような気がするのですが、 SMTPサーバ1やSMTPサーバ3以外の他の経由点(上の例でいうとSMTPサーバ2 )のトレース情報も追記されることもあり得るのでしょうか。 だとすれば、その理由が分かりません。 SMTPサーバ2と繋がっているルータcは、宛先IPアドレスと 自分のルーティングテーブルさえ照合すれば、 TCPよりも上位層のSMTPの処理をするまでもなく(SMTPサーバ2に ペイロードを渡す必要なく)、 そのままルータdに転送すればいいとすぐに分かるような気が致します。 TCPのペイロード部に含まれているデータが電子メールの場合、 ルーティング経路上のルータは、SMTPサーバに一度渡し、 その結果を受け取ってまた流す、というような 規約になっているのでしょうか。 とすれば、宛先に到達するまでに ものすごい数のreveiveのヘッダフィールドが追加されてしまうような 気がいたします。この理解で合っておりますでしょうか。 つたない説明ですいませんが、どなたか教えてください。       

質問者が選んだベストアンサー

  • ベストアンサー
  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.1

> そのIPアドレスを(メールを記述したTCPパケットの)TCPヘッダに付加してルータaに渡してしまえば、 > あとはルータa~dが勝手にSMTPサーバ3まで転送してくれるような気がするのですが、 IPアドレスを格納するのはIPデータグラムですが、質問者さんの直感は実際のSMTP転送の仕組みをほぼ正確に言い当てています。 各SMTPサーバがインターネットに直接接続している、一般的な設定がされているメールサーバとして、SMTPサーバ1は、"xxx@ccc.jp"宛てのメールを端末1から受け取ると、DNSで "@ccc.jp" を担当するメールサーバを探します。見つかると、SMTPサーバ1はSMTPサーバ3に直接メールを送信しますので、このとき recievedヘッダにSMTPサーバ2が付加される余地はありません。 では、どういうケースでrecieved行が付加されるかというと、いくつかのパターンが考えられます よく目にするのは以下の3通りでしょうか。 (a) 送信側または受信側のネットワークで、SMTPサーバが多段構成になっている場合 (b) メールがメーリングリストサーバを経由して配信されている場合 (c) ゲートウェイ型のウィルスチェックツールを経由している場合 (a) が分かりにくいかもしれませんが、たとえば会社の各部門でメールサーバを使用しているが、インターネット経由で別会社/別組織に送信するためには全社サーバを通さなければいけない、あるいはインターネットからメールを受信するサーバが制限されていて、受信したメールを更に配下のメールサーバに転送する必要がある、などという場合が該当します。 実のところ、大抵の組織のメール環境はSMTPサーバが多段構成になっています

その他の回答 (2)

  • 774danger
  • ベストアンサー率53% (1010/1877)
回答No.3

DNSには、ホスト名(FQDN)とIPアドレスの対応表(Aレコード、IPv6だとAAAAレコードと呼びます)以外に、このドメインのメールをどこに配送するかという情報が書かれたMXレコードというものが存在します あまり大きくない会社だと、メールサーバからメールサーバでダイレクトに配送できる場合もあり、最短では、 端末1→SMTPサーバ1→SMTPサーバ2→端末2 のようなパターンも存在します ただ、No.1の方が書かれているような理由や、SPAMフィルタを実装したSMTPサーバが途中に入っていたりすると、多段でSMTPサーバを経由してメールが届くことになったりします 実際、うちのメールサーバは、Firewallの奥深く、ウィルススキャン/SPAMフィルタ等を経由してくるので、社内だけで7つのSMTPサーバを経由します ほかの某会社では10段経由というのを見たこともあります 困ったことに、sendmailのデフォルトの設定では、25段を超えるとメールのループが発生していると判断して、エラーメールを返します うちの会社が7段、とある会社が10段、メーリングリストを経由するとさらに段数が増えて、メーリングリスト経由では25段を超えてしまいメールが全然届かない、ということも経験したことがあります sendmailの設定を変えてもらうという解法もあったのですが、メーリングリスト(fml)側でreceivedヘッダを削除する、という方法でこの問題を回避したこともあります

  • Toshi0230
  • ベストアンサー率51% (836/1635)
回答No.2

追記: aaa.jp, bbb.jp, ccc.jp ともに実在するドメイン名です。 例として表示する場合は、 "example.com" "example.jp" "example.net" などを使用しましょう。 # 先の回答では混乱するといけないので直しませんでした

関連するQ&A