メールヘッダ入門
- 2023年11月9日
- by SendGrid
- Category: 技術ネタ
はじめに
メールヘッダにはどんな情報が含まれているかご存じですか?
ここから何がわかるかを知っておくと、メール配信でトラブルが起きた時に役立つかもしれません。そこで今回はメールヘッダの見方についてご紹介します。
メールヘッダの確認方法
手順はメーラによって異なります。Gmailなど、いくつかの主流なメーラでの確認方法をこちらのページで紹介しています。
メールヘッダから得られる情報
メールヘッダから得られる主な情報は次のとおりですが、これ以外にもさまざまな情報が得られます。
主なメールヘッダ
トレース情報
トレース情報にはメールがリレーされた経路や不達通知の送り先などが含まれています。トレース情報を確認することで、例えば遅延の発生箇所や遅延時間などが確認できます。
- Return-Path
Return-Pathヘッダは別名エンベロープFromとも呼ばれ、メッセージが配送される過程で何らかのトラブルにより届けられなかった場合のエラーの通知先として利用されます。このエラー通知は、「不達通知」や「バウンスメール」、「Non-Delivery Receipt(NDR)」、「配信不能レポート」などと呼ばれています。一般的に、メールは宛先に届くまでの間に複数のサーバを経由しますが、Return-Pathにエラーを通知することで、どこで配送トラブルが起きても送信者側で検知できる仕組みになっています。
- Received
Receivedヘッダにはメールがリレーされたホストの情報と時刻が記録されています。メッセージを受信したメールサーバはヘッダの最上部にReceivedヘッダを追記して次のサーバにリレーします。最終的な宛先に配信されるまでこの挙動が繰り返されるため、Receivedヘッダを下から順に見ればメッセージのリレー経路が確認できます。また、時刻情報に着目すると各ホストでリレーに要した時間が確認できるため、遅延が発生した場合の調査に役立ちます。Receivedヘッダは少し見づらいですが、G Suite ToolboxのMessageheaderを使うとリレー経路と各経路の所要時間が見やすく表示されます。
Return-PathやReceivedヘッダの詳細についてはRFC5321(section 4.4)を参照してください。
送信ドメイン認証関連の情報
送信ドメイン認証はメールの信頼性と到達率の向上に影響を与える重要な要素です。送信ドメイン認証が正しく行われているか確認するにはここで紹介するヘッダを確認するとよいでしょう。
- Authentication-Results
Authentication-ResultsヘッダにはSPFやDKIM、DMARCなどの送信ドメイン認証の結果が記録されます。結果は「認証方式 = 認証結果」のような形式で記録され、例えば次のような情報が読み取れます。- spf=softfail:SPFの認証に失敗している可能性がある
- dkim=pass:DKIMの認証成功
- dmarc=fail:DMARCの認証失敗
送信ドメイン認証の結果は、なりすましメールを見破るのにも役に立ちます。こちらの記事でご紹介していますのでご覧ください。
Authentication-Resultヘッダについて、詳しくはRFC7601を参照してください。 - DKIM-Signature
DKIM-SignatureヘッダはDKIMの認証に必要な署名データと公開鍵のパスを特定するための情報が記録されます。DKIM-Signatureヘッダの詳細についてはRFC6376(section 3.5)を参照してください。
メッセージのメタ情報
メールヘッダからは、この他にも宛先、送信者、件名、本文の文字コードやエンコード方式などメッセージのメタ情報が確認できます。
- Content-Type
マルチパートメールの記事でも触れましたが、メール本文のMIMEタイプ(テキストメール、マルチパートメールなど)や文字コードを表すヘッダです。 - Content-Transfer-Encoding
base64やquoted-printableなど、MIMEで使用するエンコード方式を表すヘッダです。こちらの記事で日本語メールを送信する際のContent-Transfer-Encodingヘッダついて説明していますので併せてご覧ください。 - Date
メッセージが作成された日時を表すヘッダです。 - To、Cc、Bcc、From
宛先および送信者情報が記録されたヘッダです。これらのうちBccヘッダは扱いが特殊で、クライアントで指定されたBccヘッダはサーバで削除され、同じ内容のメッセージがBccヘッダで指定した宛先に送信されます。 - Message-ID
メッセージを一意に特定するためのヘッダです。 - Subject
メールの「件名」を表すヘッダです。
これらのヘッダの詳細については、RFC5322(メッセージフォーマット)やRFC2046(MIMEタイプ)を参照してください。
さいごに
今回ご紹介したもの以外にも、メールヘッダには標準仕様で定められているものや、標準仕様にはないがデファクトスタンダードとして使用されているもの、推奨されていないものなど数多くの種類があります。一般的なヘッダについてはRFC2076にもまとめられているので、興味のある方はご参照ください。