DMARCの <policy_evaluated> で SPFのalignmentがfailする問題

# 【本文】
## □ 問題

迷惑メール対策をする際には、SPF、DKIM、DMARC を設定することになるでしょう。メールサービスを使用していたら、充実したマニュアルがありますし、DNS に TXT レコードを追加するだけなので超簡単です。

簡単なのですが...`policy_evaluated`の SPF が 全部 fail する...`auth_results`は通るのに...！
認証が fail してるのに迷惑メール対策は大丈夫なのか...！？

```xml:dmarc_report_dummy.xml
...
<policy_published>
    <domain>example.com</domain>
    <adkim>r</adkim>
    <aspf>r</aspf>
    <p>none</p>
    <sp>none</sp>
    <pct>100</pct>
</policy_published>
<record>
    <row>
        <source_ip>127.0.0.1</source_ip>
        <count>1</count>
        <policy_evaluated>
            <disposition>none</disposition>
            <dkim>pass</dkim>
            <spf>fail</spf>
        </policy_evaluated>
    </row>
    <identifiers>
        <header_from>example.com</header_from>
    </identifiers>
    <auth_results>
        <dkim>
            <domain>example.com</domain>
            <result>pass</result>
            <selector>example_202003</selector>
        </dkim>
        <spf>
            <domain>mail-service.com</domain>
            <result>pass</result>
        </spf>
    </auth_results>
</record>
...
```

## □ 結論

結論として問題ありませんでした。
`auth_results`で SPF と DKIM が pass して、DMARC レポートが届くなら、送信ドメイン認証を利用した迷惑メール対策の第一歩を踏み出しています。

SPF による送信ドメイン認証と、SPF alignment は別の概念であり、認証時に確認するドメインが異なるのが原因です。SPF による送信ドメイン認証は一般的に言われる SPF レコード設定による迷惑メール対策であり、SPF alignment は DMARC 認証する手段の一つと理解しました。

Amazon-SES 等のメールサービスを利用していると頻繁に見かける現象みたいですね。
ザックリまとめるとこんな感じ。

|タグ|説明|
|---|---|
|**policy_evaluated**| ・DMARC 認証の結果であり、SPF 又は DKIM の認証が通ると認証成功となる。<br><br>・Header From ドメインと、SPF と DKIM で利用したドメインの関係性を検証する。|
|**auth_results**|・SPF と DKIM の認証結果である。<br><br>・SPF は Envelope From ドメイン(mail-service.com)、 DKIMは Header From ドメイン(example.com)を元に認証する。|


`policy_evaluated`の SPF alignment を pass するには、 Envelope From ドメインを自分のサービスのドメインに書き換える必要があります。しかし、メールサービス側のサポート内容にもよりますので、必ず解決できる問題ではないようです。まあ、DKIM で DMARC 認証が通るので問題ないでしょう。


- 参考URL: SPF alignment が fail する事例
    - [Failed SPF infusionmail\.com IPs \- Infusionsoft by Keap \- Infusionsoft by Keap Community](https://community.infusionsoft.com/t/failed-spf-infusionmail-com-ips/52055)
    - [email \- DMARC "policy\_evaluated" is "fail" for SPF, even when SPF domain alignment is "relaxed"? \- Information Security Stack Exchange](https://security.stackexchange.com/questions/210294/dmarc-policy-evaluated-is-fail-for-spf-even-when-spf-domain-alignment-is-r)
    - [Dmarc: Why do I have dkim=fail, spf=fail and result=pass](https://security.stackovernet.com/ja/q/38420)
    - [spam prevention \- DMARC Email SPF policy\_evaluated & auth\_result have inconsistent status \- Super User](https://superuser.com/questions/715926/dmarc-email-spf-policy-evaluated-auth-result-have-inconsistent-status)



# 【おまけ: はじめて迷惑メール対策する人のURL集】

## □ 迷惑メール対策の資料集

- SPF
    - [RFC4408 翻訳 : 迷惑メール対策委員会](https://salt.iajapan.org/wpmu/anti_spam/admin/tech/rfc/rfc4408/page-1/)
    - [送信ドメインを認証するためのSPFレコードに詳しくなろう \| SendGridブログ](https://sendgrid.kke.co.jp/blog/?p=3509)
- DKIM
    - [RFC5617 翻訳 : 迷惑メール対策委員会](https://salt.iajapan.org/wpmu/anti_spam/admin/tech/rfc/rfc5617/)
    - [DKIM設定](https://www.zoho.com/jp/mail/help/adminconsole/dkim-configuration.html#alink7)
- DMARC
    - [RFC7489 翻訳 : 迷惑メール対策委員会](https://salt.iajapan.org/wpmu/anti_spam/admin/tech/rfc/rfc7489/)
    - [どれくらい自社ドメインがなりすまされているか、ご存知ですか? \| IIJ Engineers Blog](https://eng-blog.iij.ad.jp/archives/3273)
    - [DMARC \- 一般財団法人日本情報経済社会推進協会（JIPDEC）](https://www.jipdec.or.jp/library/word/u71kba0000005cyl.html)
    - [dmarc\.org – Domain Message Authentication Reporting & Conformance](https://dmarc.org/)
- DMARC のニュース
    - [なりすましメール脅威撲滅の切り札 \- 「DMARC」導入はもはや企業の社会的責任 \| マイナビニュース](https://news.mynavi.jp/kikaku/20180413-608796/?utm_source=facebook&utm_medium=social)
    - [迷惑メール撲滅の切り札なのにDMARCが普及しない理由 \| 日経クロステック（xTECH）](https://xtech.nikkei.com/it/atcl/column/17/100400412/100400004/)
    - [DMARC: Microsoft, Facebook and Google unite to fight phishing – but will it work? – Naked Security](https://nakedsecurity.sophos.com/2012/02/02/dmarc-microsoft-facebook-google-unite-to-fight-phishing/)

## □ DNS へのレコード設定確認
- SPF
    - [dmarcian's SPF Record Checker \- Free SPF Lookup](https://dmarcian.com/spf-survey/)
- DKIM
    - [Free DKIM Record Lookup Tool \- Check DKIM Records \| dmarcian](https://dmarcian.com/dkim-inspector/)
- DMARC
    - [Free DMARC Record Check & DMARC Test \- DMARC Inspector](https://dmarcian.com/dmarc-inspector/)
- DMARC レコード
    - [dmarcian \- XML to Human Converter](https://us.dmarcian.com/xml-to-human-converter/)