Relaxed アライメント(Relaxed Alignment)
概要
Relaxed アライメント は、DMARC のアライメント検証において、認証ドメインとヘッダー From のドメインが同じ組織ドメインに属していれば pass とするモードです。RFC 7489(2015年)で定義されており、DMARC レコードの aspf=r(SPF 側)および adkim=r(DKIM 側)タグで指定します。タグを省略した場合のデフォルト値でもあります。
relaxed モードでは、bounce.example.com と example.com は同じ組織ドメイン example.com に属するため、アライメントが成立します。SaaS メール送信サービスを使う環境では、エンベロープ From や DKIM 署名にサブドメインが使われることが多いため、relaxed モードが現実的な選択です。
DMARC を導入する組織の大半は relaxed モードで運用しています。strict モードに切り替えるのは、送信インフラを完全に自社管理しており、すべての送信元で完全一致が保証できる場合に限られます。
仕組み
relaxed アライメントは組織ドメインの照合と、SPF・DKIM それぞれのアライメント判定という 2 段階で機能します。
組織ドメインの照合
relaxed アライメントの照合は、ヘッダー From と認証ドメインの「組織ドメイン」が一致するかで判定します。組織ドメインとは、Public Suffix List(PSL)を基準に決まるドメインの管理境界です。example.com や example.co.jp が組織ドメインに該当します。
SPF の Relaxed アライメント
SPF の relaxed アライメントでは、エンベロープ From のドメインとヘッダー From のドメインの組織ドメインが一致していれば pass します。
| エンベロープ From | ヘッダー From | relaxed 結果 |
|---|---|---|
bounce.example.com | example.com | pass |
mail.example.com | news.example.com | pass |
example.com | example.com | pass |
other.com | example.com | fail |
サブドメイン同士であっても、組織ドメインが一致していれば pass します。
DKIM の Relaxed アライメント
DKIM の relaxed アライメントでは、DKIM 署名の d= タグのドメインとヘッダー From のドメインの組織ドメインが一致していれば pass します。
SendGrid で d=em.example.com の DKIM 署名を使い、ヘッダー From が news@example.com であれば、組織ドメインはどちらも example.com なので pass します。
strict モードとの比較
strict モードでは完全一致が必要です。bounce.example.com と example.com は strict では fail しますが、relaxed では pass します。relaxed は運用の柔軟性と保護のバランスを取るための設計です。
設定例
DMARC レコードの aspf と adkim タグで、relaxed と strict を個別に指定できます。
デフォルト(タグ省略)
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@example.com"
aspf と adkim を省略するとどちらも relaxed になります。SaaS を複数利用する組織ではこの設定で十分な場合がほとんどです。
明示的に relaxed を指定する
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; aspf=r; adkim=r; rua=mailto:dmarc@example.com"
設定意図を明確にするために明示指定することもあります。動作はタグ省略時と同じです。
DKIM のみ strict、SPF は relaxed
_dmarc.example.com. IN TXT "v=DMARC1; p=reject; aspf=r; adkim=s; rua=mailto:dmarc@example.com"
DKIM 署名を d=example.com で厳密に管理しつつ、SPF のサブドメイン差異は許容するパターンです。
確認方法
DMARC レコードのアライメントモードは dig で確認できます。
dig TXT _dmarc.example.com
;; ANSWER SECTION:
_dmarc.example.com. 3600 IN TXT "v=DMARC1;p=reject;rua=mailto:dmarc@example.com"
aspf= と adkim= タグが存在しない場合はデフォルトの relaxed が適用されます。タグがあれば r が relaxed、s が strict です。
外部の視点からも確認したい場合は、Labee Dev Toolbox の Mail Auth API を使うと、外部の視点から見た結果を取得できます。
curl "https://labee.dev/api/mail-auth?domain=example.com"
{
"success": true,
"data": {
"spf": { "record": "v=spf1 include:_spf.google.com ~all", "exists": true },
"dkim": { "record": "v=DKIM1; k=rsa; p=MIIBIjANBgkqh...", "exists": true, "selector": "default" },
"dmarc": {
"record": "v=DMARC1; p=reject; rua=mailto:dmarc@example.com",
"exists": true
},
"bimi": { "record": null, "exists": false }
},
"error": null,
"meta": { "responseTime": 123 }
}
data.dmarc.record にアライメントタグが含まれていなければ relaxed です。
よくある問題
relaxed モードでも、組織ドメインの不一致やモード選択の誤りによって意図しない結果になることがあります。
relaxed でも fail するケース
relaxed モードは組織ドメインの一致を要件とするため、完全に異なるドメインからの送信は fail します。SendGrid のデフォルト設定では、エンベロープ From が sendgrid.net ドメインになることがあり、example.com とは組織ドメインが異なるため relaxed でも fail します。Custom Return Path の設定でサブドメイン(bounce.example.com)をエンベロープ From に指定する必要があります。
relaxed で十分なのに strict にする
strict モードはセキュリティ上のメリットがありますが、運用の複雑さも増します。SaaS を複数使う環境で strict にすると、サブドメインの不一致で正規メールが fail します。DMARC 集計レポートですべての送信元を把握し、strict が本当に必要かを判断してから切り替えます。
組織ドメインの判定ミス
.co.jp や .com.au のように Public Suffix が 2 レベルの場合、組織ドメインの判定を誤ることがあります。example.co.jp の組織ドメインは example.co.jp であり、co.jp ではありません。sub.example.co.jp と example.co.jp は relaxed で pass しますが、other.co.jp は fail します。