問い合わせフォームの通知メール
type: Concept
definition: 問い合わせフォームの送信を受けて、サイト側システムが担当者へ送る通知メール。利用者本人がMUAから送っているのではなく、サイト側が作成する点が設計上の前提になる。
alternative label: フォーム通知メール

DMARCのアラインメント
type: Concept
definition: DMARCの判定基準。SPFやDKIMで認証されたドメインが、From:ヘッダのドメインと整合しているかどうかを表す。
alternative label: Alignment
requires: Fromヘッダ
verified by: Authentication-Resultsヘッダ

Fromヘッダ
type: Concept
definition: メッセージの作者を表す本文ヘッダ。RFC 5322は作者のものでないアドレスをFrom:に入れるべきではないと定める。
alternative label: From:
recommended for: 問い合わせフォームの通知メール

Reply-Toヘッダ
type: Concept
definition: 返信先を作者とは別にしたいときに使う本文ヘッダ。
alternative label: Reply-To:
recommended for: 問い合わせフォームの通知メール

DMARC
type: Concept
definition: SPFやDKIMの成否だけでなく、それらの認証済みドメインがFrom:ドメインと整合しているかを見て、受信メールの扱いを判定する仕組み。
alternative label: Domain-based Message Authentication, Reporting, and Conformance
uses: SPF(Sender Policy Framework)
uses: DKIM(DomainKeys Identified Mail)
requires: DMARCのアラインメント
configured by: DMARCポリシーモード

SPF(Sender Policy Framework)
type: Concept
definition: SMTPセッション中のMAIL FROM(エンベロープ送信者)が、そのドメインの送信元として許可されたIPかをDNSのTXTレコードで検証する仕組み。
alternative label: Sender Policy Framework
uses: Return-Path(エンベロープ送信者)

DKIM(DomainKeys Identified Mail)
type: Concept
definition: メッセージの一部ヘッダと本文に署名を付け、受信側がDNSの公開鍵で検証する認証方式。署名ドメインはDKIM-Signatureのd=で表される。
alternative label: DomainKeys Identified Mail
mitigates: DMARCの失敗(dmarc=fail)
configured by: DKIMセレクタ

利用者アドレスをFromに使う設計
type: Concept
definition: 問い合わせフォームで、フォーム利用者のメールアドレスをそのままFrom:に入れてしまう設計。認証済みドメインとFrom:ドメインが食い違う典型的な失敗パターン。
alternative label: Fromなりすまし設計
may cause: DMARCの失敗(dmarc=fail)
not recommended for: 問い合わせフォームの通知メール

DMARCの失敗(dmarc=fail)
type: Concept
definition: DMARCのアラインメント判定が通らず、受信側でメールが隔離・拒否・警告扱いになりうる状態。
alternative label: dmarc=fail

メール転送によるSPF失敗
type: Concept
definition: メール転送で最終受信者から見た送信元IPが、元の送信ドメインのSPFに載っていない中継サーバーになりやすく、正当なメールでもSPFが失敗する現象。
alternative label: 転送によるSPF破損

Return-Path(エンベロープ送信者)
type: Concept
definition: SMTPのエンベロープで渡す配送用の差出人。最終配送時にはこの逆経路がReturn-Pathとして1つだけ残されるべきで、送信側が最初からReturn-Pathヘッダを持ったメッセージを作るべきではない。
alternative label: MAIL FROM
alternative label: エンベロープ送信者

PHPのmail()関数
type: Concept
definition: PHPの標準的なメール送信関数。Fromヘッダが必要で、追加パラメータでsendmail -f相当のエンベロープ送信者指定ができる。
alternative label: PHP mail()

メールヘッダインジェクション
type: Concept
definition: 外部入力に含まれるCR/LFをサニタイズせずヘッダへ組み込むと、攻撃者がBcc:などの追加ヘッダを差し込めてしまう脆弱性。
alternative label: CRLFインジェクション

共有ホスティングのローカルMTA
type: Concept
definition: 共有ホスティングが提供するローカルの送信基盤。送信IPのPTR未設定、共有IPの評判悪化、DKIM未対応などで到達率が落ちやすい。
alternative label: 共有IPの送信基盤

PTRレコード(逆引き)
type: Concept
definition: 送信元IPアドレスからホスト名を引くための逆引きDNSレコード。受信側のレピュテーション判定に使われる。
alternative label: 逆引きDNS
recommended for: 共有ホスティングのローカルMTA

SendGridのDomain Authentication
type: Concept
definition: SendGridで送信ドメインを認証する設定。Automated SecurityをONにするとCNAMEベースでDKIMなどの認証レコードが生成される。
alternative label: SendGrid Domain Authentication
requires: DKIMセレクタ

DKIMセレクタ
type: Concept
definition: DKIMの公開鍵をselector._domainkey.example.comのように引くための識別子。鍵ローテーションのために使われ、複数の公開鍵を同じドメインに共存させられる。
alternative label: selector

Amazon SESのカスタムMAIL FROM
type: Concept
definition: Amazon SESで、既定のamazonses.comサブドメインではなく自ドメイン配下のMAIL FROMを設定し、サイトドメインとのSPFアラインメントを取る機能。
alternative label: SES custom MAIL FROM
requires: Return-Path(エンベロープ送信者)

Mailgunの送信ドメイン検証
type: Concept
definition: Mailgunで送信ドメインを検証する設定。SPF用TXTとDKIM用TXT、MXレコードの追加が必要になる。
alternative label: Mailgun domain verification
requires: DKIMセレクタ

DMARCポリシーモード
type: Concept
definition: DMARCのp=で指定するポリシー。noneは監視のみ、quarantineは隔離推奨、rejectはSMTP中の拒否推奨を意味する。
alternative label: p=none/quarantine/reject

Authentication-Resultsヘッダ
type: Concept
definition: 受信側MTAがSPF・DKIM・DMARCなど認証結果を記録する内部ヘッダ。生ヘッダを確認することで不達原因を切り分けられる。
alternative label: Authentication-Results:

Senderヘッダ
type: Concept
definition: 実際にメッセージを送出した主体を表す本文ヘッダ。作者と送信主体が同じなら使うべきではない。
alternative label: Sender:
not recommended for: 問い合わせフォームの通知メール

subject: Fromヘッダ
predicate: recommendedFor
object: 問い合わせフォームの通知メール
description: From:は自サイトのドメインに固定し、フォーム利用者のアドレスはReply-To:に入れる設計が問い合わせフォーム通知の推奨パターンである
evidence: rfc5322
verified at: 2026-08-01
certainty: established

subject: Reply-Toヘッダ
predicate: recommendedFor
object: 問い合わせフォームの通知メール
description: 返信先を利用者へ向けたいだけならReply-To:で十分で、これにより返信のしやすさを確保しつつFromは自ドメインに固定できる
evidence: rfc5322
verified at: 2026-08-01
certainty: established

subject: DMARCのアラインメント
predicate: requires
object: Fromヘッダ
description: DMARCのアラインメント判定は、From:ヘッダのドメインとSPF/DKIMで認証されたドメインを突き合わせて行うため、判定の起点としてFrom:ヘッダを前提とする
evidence: rfc7489
verified at: 2026-08-01
certainty: established

subject: DMARC
predicate: uses
object: SPF(Sender Policy Framework)
description: DMARCはSPFの認証結果とFrom:ドメインのアラインメントを判定材料の1つとして使う
evidence: rfc7489
verified at: 2026-08-01
certainty: established

subject: DMARC
predicate: uses
object: DKIM(DomainKeys Identified Mail)
description: DMARCはDKIMの認証結果とFrom:ドメインのアラインメントも判定材料として使う
evidence: rfc7489
verified at: 2026-08-01
certainty: established

subject: DMARC
predicate: requires
object: DMARCのアラインメント
description: DMARCの合否は、SPF/DKIMが個別にpassするかだけでなく、認証済みドメインがFrom:ドメインとアラインしているかで決まる
evidence: rfc7489
verified at: 2026-08-01
certainty: established

subject: 利用者アドレスをFromに使う設計
predicate: mayCause
object: DMARCの失敗(dmarc=fail)
description: フォーム利用者のアドレスをそのままFrom:に入れると、認証されるのはサイト側ドメインなのにFrom:は別ドメインというズレが起き、DMARCのアラインメントに失敗する
evidence: https://support.google.com/a/answer/81126
verified at: 2026-08-01
certainty: established

subject: メール転送によるSPF失敗
predicate: mayCause
object: DMARCの失敗(dmarc=fail)
description: 転送で送信元IPがSPFに載っていない中継サーバーになりSPFが失敗すると、DKIMがない場合はDMARCも失敗する
evidence: https://support.google.com/a/answer/81126
verified at: 2026-08-01
certainty: context-dependent

subject: DKIM(DomainKeys Identified Mail)
predicate: mitigates
object: DMARCの失敗(dmarc=fail)
description: DKIMは本文や署名対象ヘッダーが変わらない限り転送後も生き残りやすいため、転送でSPFが壊れてもDMARCの判定を救い、DMARC失敗を軽減する
evidence: https://support.google.com/a/answer/81126
verified at: 2026-08-01
certainty: established

subject: SPF(Sender Policy Framework)
predicate: uses
object: Return-Path(エンベロープ送信者)
description: SPFは主にSMTPセッション中のMAIL FROM、最終的にReturn-Pathとして残る差出人を検証する
evidence: rfc5321
verified at: 2026-08-01
certainty: established

subject: Return-Path(エンベロープ送信者)
predicate: configuredBy
object: PHPのmail()関数
description: 送信にPHPのmail()を使う場合、Return-Path:ヘッダを自分で書くのではなく、sendmail -f相当の追加パラメータでエンベロープ送信者を指定する
evidence: function.mail.php
verified at: 2026-08-01
certainty: context-dependent

subject: PHPのmail()関数
predicate: mayCause
object: メールヘッダインジェクション
description: フォーム入力をサニタイズせずヘッダへ差し込むと、CR/LFを含む値からBcc:などの追加ヘッダを注入できてしまう
evidence: function.mail.php
verified at: 2026-08-01
certainty: context-dependent

subject: 共有ホスティングのローカルMTA
predicate: mayCause
object: DMARCの失敗(dmarc=fail)
description: 共有ホスティングのローカルMTAは送信IPのPTR未設定や共有IPの評判悪化、DKIM未対応などにより到達率が落ちることがある
evidence: https://support.google.com/a/answer/81126
verified at: 2026-08-01
certainty: context-dependent

subject: PTRレコード(逆引き)
predicate: recommendedFor
object: 共有ホスティングのローカルMTA
description: 共有ホスティングでは送信IPのPTR(逆引き)が正しく設定されているかを確認することが到達率改善の基本になる
evidence: https://support.google.com/a/answer/81126
verified at: 2026-08-01
certainty: established

subject: SendGridのDomain Authentication
predicate: requires
object: DKIMセレクタ
description: SendGridのDomain AuthenticationはCNAMEでDKIMセレクタを委譲する仕組みで実現される
evidence: how-to-set-up-domain-authentication
verified at: 2026-08-01
certainty: established

subject: Amazon SESのカスタムMAIL FROM
predicate: requires
object: Return-Path(エンベロープ送信者)
description: Amazon SESでサイトドメインとのSPFアラインメントを取るには、既定のamazonses.comではなくカスタムMAIL FROM用のドメインを設定する
evidence: mail-from.html
verified at: 2026-08-01
certainty: established

subject: Mailgunの送信ドメイン検証
predicate: requires
object: DKIMセレクタ
description: Mailgunの送信ドメイン検証では、SPF用TXTとセレクタ付きDKIM用TXT、MXレコードの設定が必要になる
evidence: domains
verified at: 2026-08-01
certainty: established

subject: DMARC
predicate: configuredBy
object: DMARCポリシーモード
description: DMARCはp=none(観測)・quarantine(隔離)・reject(拒否)というポリシーモードで構成する
evidence: rfc7489
verified at: 2026-08-01
certainty: established

subject: DMARCのアラインメント
predicate: verifiedBy
object: Authentication-Resultsヘッダ
description: DMARCのアラインメントが取れているかは、受信メールのAuthentication-Resultsヘッダでspf/dkim/dmarcの合否を確認することで判定できる
evidence: https://support.google.com/a/answer/3726730
verified at: 2026-08-01
certainty: established

subject: Senderヘッダ
predicate: notRecommendedFor
object: 問い合わせフォームの通知メール
description: 作者(From)と実送信主体が同じ場合、Sender:ヘッダは通常不要で、問い合わせフォームの通知メールでは常用すべきではない
evidence: rfc5322
verified at: 2026-08-01
certainty: established

subject: 利用者アドレスをFromに使う設計
predicate: notRecommendedFor
object: 問い合わせフォームの通知メール
description: フォーム利用者のメールアドレスをFrom:にそのまま使う設計は、問い合わせフォーム通知では推奨されない非推奨パターンである
evidence: https://support.google.com/a/answer/81126
verified at: 2026-08-01
certainty: established

subject: DKIM(DomainKeys Identified Mail)
predicate: configuredBy
object: DKIMセレクタ
description: DKIMの公開鍵はselector._domainkey.example.comのようにセレクタで引かれ、セレクタは鍵ローテーションのために使われ複数の公開鍵を同じドメインに共存させられる
evidence: rfc6376
verified at: 2026-08-01
certainty: established