知識マップ: 問い合わせフォームのメールが届かない原因と直し方
記事「問い合わせフォームのメールが届かない原因と直し方」の主張を、概念と関係(エッジ)に分解した知識グラフの全体です。各関係には根拠・確認日・確度が付いています。
この記事は、問い合わせフォームの通知メールが届かない主な原因は送信コードではなくFromヘッダの設計にあり、見える差出人と認証されるドメインをそろえることがDMARCのアラインメントを左右すると整理します。SPFはエンベロープ送信者(Return-Path)を、DKIMは署名ドメインを検証し、DMARCはその結果とFrom:ドメインの一致を判定するため、利用者アドレスをそのままFromに使う設計やメール転送によるSPFの破損はDMARC失敗の典型的な原因になります。共有ホスティングのローカルMTAやPHPのmail()、SendGrid・SES・Mailgunといった外部SMTPサービスではDKIMセレクタやPTR、カスタムMAIL FROMの設定が到達率を左右し、Reply-Toで返信先を確保しつつFromは自ドメインに固定する設計が推奨されるとしています。
flowchart LR
accTitle: 問い合わせフォームのメール到達性の知識マップ
accDescr: Fromヘッダの設計がSPF・DKIM・DMARCのアラインメントを通じてメールの到達性を左右し、転送や共有ホスティング、送信サービスの設定とどうつながるかを示す図です。
contact_form_notification_email["問い合わせフォームの通知メール"]
dmarc_alignment["DMARCのアラインメント"]
from_header["Fromヘッダ"]
reply_to_header["Reply-Toヘッダ"]
dmarc["DMARC"]
spf["SPF(Sender Policy Framework)"]
dkim["DKIM(DomainKeys Identified Mail)"]
unaligned_from_design["利用者アドレスをFromに使う設計"]
dmarc_failure["DMARCの失敗(dmarc=fail)"]
mail_forwarding_spf_failure["メール転送によるSPF失敗"]
return_path["Return-Path(エンベロープ送信者)"]
php_mail_function["PHPのmail()関数"]
header_injection["メールヘッダインジェクション"]
shared_hosting_mta["共有ホスティングのローカルMTA"]
ptr_record["PTRレコード(逆引き)"]
sendgrid_domain_authentication["SendGridのDomain Authentication"]
dkim_selector["DKIMセレクタ"]
ses_custom_mail_from["Amazon SESのカスタムMAIL FROM"]
mailgun_domain_verification["Mailgunの送信ドメイン検証"]
dmarc_policy_mode["DMARCポリシーモード"]
authentication_results_header["Authentication-Resultsヘッダ"]
sender_header["Senderヘッダ"]
from_header -->|"推奨される対応"| contact_form_notification_email
reply_to_header -->|"推奨される対応"| contact_form_notification_email
dmarc_alignment -->|"前提とする"| from_header
dmarc -->|"利用する"| spf
dmarc -->|"利用する"| dkim
dmarc -->|"前提とする"| dmarc_alignment
unaligned_from_design -->|"原因になり得る"| dmarc_failure
mail_forwarding_spf_failure -.->|"原因になり得る"| dmarc_failure
dkim -->|"軽減する"| dmarc_failure
spf -->|"利用する"| return_path
return_path -.->|"で構成できる"| php_mail_function
php_mail_function -.->|"原因になり得る"| header_injection
shared_hosting_mta -.->|"原因になり得る"| dmarc_failure
ptr_record -->|"推奨される対応"| shared_hosting_mta
sendgrid_domain_authentication -->|"前提とする"| dkim_selector
ses_custom_mail_from -->|"前提とする"| return_path
mailgun_domain_verification -->|"前提とする"| dkim_selector
dmarc -->|"で構成できる"| dmarc_policy_mode
dmarc_alignment -->|"で確認できる"| authentication_results_header
sender_header -->|"用いるのは非推奨"| contact_form_notification_email
unaligned_from_design -->|"用いるのは非推奨"| contact_form_notification_email
dkim -->|"で構成できる"| dkim_selector
概念間の関係(全22件)
図と同じ関係を文章でも列挙します。表示している文と機械可読な意味データ(RDFa)は同じ要素に載っています。確度が「確立した関係」のものは直接の関係として、「条件付きの関係」のものは成立条件つきの言明(rdf:Statement)として表現しています。
- Fromヘッダは問い合わせフォームの通知メールに対する本記事の推奨です。
- Reply-Toヘッダは問い合わせフォームの通知メールに対する本記事の推奨です。
- DMARCのアラインメントはFromヘッダを前提とします。
- DMARCはSPF(Sender Policy Framework)を利用します。
- DMARCはDKIM(DomainKeys Identified Mail)を利用します。
- DMARCはDMARCのアラインメントを前提とします。
- 利用者アドレスをFromに使う設計はDMARCの失敗(dmarc=fail)の原因になることがあります。
- メール転送によるSPF失敗はDMARCの失敗(dmarc=fail)の原因になることがあります。
- DKIM(DomainKeys Identified Mail)はDMARCの失敗(dmarc=fail)を軽減します。
- SPF(Sender Policy Framework)はReturn-Path(エンベロープ送信者)を利用します。
- Return-Path(エンベロープ送信者)はPHPのmail()関数で構成できます。
- PHPのmail()関数はメールヘッダインジェクションの原因になることがあります。
- 共有ホスティングのローカルMTAはDMARCの失敗(dmarc=fail)の原因になることがあります。
- PTRレコード(逆引き)は共有ホスティングのローカルMTAに対する本記事の推奨です。
- SendGridのDomain AuthenticationはDKIMセレクタを前提とします。
- Amazon SESのカスタムMAIL FROMはReturn-Path(エンベロープ送信者)を前提とします。
- Mailgunの送信ドメイン検証はDKIMセレクタを前提とします。
- DMARCはDMARCポリシーモードで構成できます。
- DMARCのアラインメントはAuthentication-Resultsヘッダで確認できます。
- Senderヘッダを問い合わせフォームの通知メールに用いることは推奨されません。
- 利用者アドレスをFromに使う設計を問い合わせフォームの通知メールに用いることは推奨されません。
- DKIM(DomainKeys Identified Mail)はDKIMセレクタで構成できます。
主要概念の定義
機械可読データ
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。