メールヘッダ情報の読み方

迷惑メールの送信元は、Fromのメールアドレスではなく、ヘッダ情報(※)から調べます。
ここでは、BIGLOBEメールアドレスに届いたメールを例にして、ヘッダ情報の読み方を簡単にご説明します。

 ※「メールヘッダ」「メールヘッダ情報」などの呼び方もありますが、ここでは「ヘッダ情報」で統一します。

ヘッダ情報を取得する

取得方法は、メールソフトによって違います。
下記ページなどをごらんいただくか、メールソフトの提供元へお問い合わせください。

ヘッダ情報に書かれている内容

以下はヘッダ情報の例です。

Return-Path: <Aさん>
Received: from rcpt-impgw.biglobe.ne.jp by biglobe.ne.jp (RCPT_GW); Tue, 14 Sep 2020 15:16:53 +0900 (JST)
Received: example2.ne.jp by rcpt-impgw.biglobe.ne.jp (shby/1714221009) with SMTP ; Tue, 14 Sep 2020 15:16:51 +0900
Authentication-Results: ***; spf=pass smtp.mailfrom=****; dkim=none
Received: from example1.ne.jp by example2.ne.jp ; Tue, 14 Sep 2020 15:16:38 JST
Received: from [203.0.113.1] by example1.ne.jp ; Tue, 14 Sep 2020 15:16:37 JST
Message-ID: <*****>
Date: Tue, 14 Sep 2020 15:16:37 +0900 (JST)
From: Aさん
To: Bさん
Subject: こんにちは
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
X-Mailer: Microsoft Windows Live Mail ***
X-Biglobe-VirusCheck: Tue, 14 Sep 2020 15:16:40 +0900 (JST)
X-Brightmail-Tracker: *****
X-Biglobe-spamcheck: 0.00%

Return-Path: <Aさん>
Received: from rcpt-impgw.biglobe.ne.jp by biglobe.ne.jp (RCPT_GW); Tue, 14 Sep 2020 15:16:53 +0900 (JST)
Received: example2.ne.jp by rcpt-impgw.biglobe.ne.jp (shby/1714221009) with SMTP ; Tue, 14 Sep 2020 15:16:51 +0900
Authentication-Results: ***; spf=pass smtp.mailfrom=****; dkim=none
Received: from example1.ne.jp by example2.ne.jp ; Tue, 14 Sep 2020 15:16:38 JST
Received: from [203.0.113.1] by example1.ne.jp ; Tue, 14 Sep 2020 15:16:37 JST
Message-ID: <*****>
Date: Tue, 14 Sep 2020 15:16:37 +0900 (JST)
From: Aさん
To: Bさん
Subject: こんにちは
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
X-Mailer: Microsoft Windows Live Mail ***
X-Biglobe-VirusCheck: Tue, 14 Sep 2020 15:16:40 +0900 (JST)
X-Brightmail-Tracker: *****
X-Biglobe-spamcheck: 0.00%

Return-Path: <Aさん>

Received: from rcpt-impgw.biglobe.ne.jp by biglobe.ne.jp (RCPT_GW); Tue, 14 Sep 2020 15:16:53 +0900 (JST)

Received: example2.ne.jp by rcpt-impgw.biglobe.ne.jp (shby/1714221009) with SMTP ; Tue, 14 Sep 2020 15:16:51 +0900
Authentication-Results: ***; spf=pass smtp.mailfrom=****; dkim=none

Received: from example1.ne.jp by example2.ne.jp ; Tue, 14 Sep 2020 15:16:38 JST
Received: from [203.0.113.1] by example1.ne.jp ; Tue, 14 Sep 2020 15:16:37 JST
Message-ID: <*****>
Date: Tue, 14 Sep 2020 15:16:37 +0900 (JST)

From: Aさん
To: Bさん
Subject: こんにちは
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-2022-jp
X-Mailer: Microsoft Windows Live Mail ***
X-Biglobe-VirusCheck: Tue, 14 Sep 2020 15:16:40 +0900 (JST)

X-Brightmail-Tracker: *****
X-Biglobe-spamcheck: 0.00%

主な項目の意味は、下記のとおりです。
 ※「X-」で始まる項目は、メール送信者やサーバ側で任意に設定できますので、項目名が違ったり、記載されていなかったりします。

【1】Return-Path
エラーメールの返信先。Fromと同じように詐称することもできます。
 ※Return-Pathを「迷惑メールブロックサービス」の「受信拒否設定」に登録しても拒否されません。詳しくはこちら

【2】Received
メールが届くまでの経路。Receivedの数は、経由したサーバの数によって変わります。

【3】Authentication-Results
送信ドメイン認証の結果。詳しくはこちら

【4】Date
メールを送信した日時

【5】From
差出人のメールアドレス。迷惑メールの場合、詐称されていることも多い。

【6】To
宛先のメールアドレス

【7】X-Mailer
相手が使っているメールソフトの種類

【8】X-Biglobe-VirusCheck
「メールウイルスチェックプラス」でウイルスチェックされた場合に付加されます。詳しくはこちら

【9】X-Brightmail-Tracker、X-Biglobe-spamcheck
「迷惑メールブロックサービス」の迷惑メール判定エンジンで、判定が行われた場合に付加されます。

ヘッダ情報の「Received」から、メールの送信元を探す。

メールが届くまでの経路が書かれているのは「Received」です。
Receivedは、次のような構造になっています。

Received: from ×× by ○○

 意味:「××」というサーバから送信されたメールを「○○」というサーバが受信した

Receivedは下から順に読んでいきます。

4. Received: from rcpt-impgw.biglobe.ne.jp by biglobe.ne.jp (RCPT_GW); Tue, 14 Sep 2020 15:16:53 +0900 (JST)
3. Received: example2.ne.jp by rcpt-impgw.biglobe.ne.jp (shby/1714221009) with SMTP ; Tue, 14 Sep 2020 15:16:51 +0900
2. Received: from example1.ne.jp by example2.ne.jp ; Tue, 14 Sep 2020 15:16:38 JST
1. Received: from [203.0.113.1] by example1.ne.jp ; Tue, 14 Sep 2020 15:16:37 JST

先ほど例に挙げたメールのReceivedだけを抜き出して、下から番号を付けてみました。
書かれている内容を時系列で並べ変えると、以下のようになります。

1.[203.0.113.1]から送信されたメールをexample1.ne.jpがTue, 14 Sep 2020 15:16:37 JSTに受信した
2. example1.ne.jpから送信されたメールをexample2.ne.jpがTue, 14 Sep 2020 15:16:38 JSTに受信した
3. example2.ne.jp から送信されたメールをBIGLOBEのサーバがTue, 14 Sep 2020 15:16:51 +0900に受信した
4. BIGLOBEのサーバで受信したメールが、BIGLOBE内の別のサーバへTue, 14 Sep 2020 15:16:53 +0900 (JST)に送信された

それぞれのReceivedをたどっていくと、「こんにちは」というメールは、[203.0.113.1]から送信された後に、example1.ne.jpexample2.ne.jpを経由してBIGLOBEのメールサーバまで届いたことがわかります。

送信元が偽装されている場合

迷惑メールのヘッダ情報は、送信元を特定されにくくするために、よく偽装されています。
偽装にはたくさんのパターンがありますが、今回は以下のような例を見ていきましょう。

3. Received: from rcpt-impgw.biglobe.ne.jp by biglobe.ne.jp (RCPT_GW); Tue, 14 Sep 2020 15:16:53 +0900 (JST)
2. Received: from example1.ne.jp (example3.ne.jp[192.0.2.2]) by rcpt-impgw.biglobe.ne.jp (shby/1714221009) with SMTP ; Tue, 14 Sep 2020 15:16:51 +0900
1. Received: from [203.0.113.1] by example1.ne.jp ; Tue, 14 Sep 2020 15:16:37 JST

2の送信元が、かっこの外側と内側とで違っています。

かっこの外側は、送信者が任意に設定できる=偽装できる部分です。
かっこの内側は、「メールを受信したサーバが調べた送信元」なので、送信者が偽装することはできません。

これを踏まえて、2の内容を見てみましょう。

2.「example1.ne.jp」と名乗った「example3.ne.jp[192.0.2.2]」から送信されたメールを、BIGLOBEのサーバがTue, 14 Sep 2020 15:16:51 +0900に受信した

送信した側は「example1.ne.jp」と名乗っていますが、受信した側が調べた送信元は「example3.ne.jp[192.0.2.2]」ですので、送信元は偽装されていることになります。
さらに、「[203.0.113.1]からのメールをexample1.ne.jpが受信した」という1も怪しいということになります。
この時点で、信頼性の高い情報は、「example3.ne.jp[192.0.2.2]からBIGLOBEのサーバへメールが送信された」の部分だけですので、送信元は「example3.ne.jp[192.0.2.2]」と考えて良いでしょう。