やりたいこと
SendgridのSingleSenderVerificationで送信者確認をしている。
DNS設定をして、Sendgridから送られてくるメールが、送信元のドメイン認証をpassしているか確認したい。
エラー内容
システムからの自動送信メールが届かないまたは迷惑メールフォルダに入ってしまう。
調査
DNSは、受信者側のメールサーバーにレコードを登録し、受信メールが拒否されたり迷惑メール等に振り分けられないようにする機能。
システムで自動配信メールなどを使用する際は、送信元アドレスがDNSで認証されているか確認する事が重要である。
API実行時にSendgridから自動メールが送信されてくるが、送信元のドメイン認証がされているか不明だった。
送信ドメイン認証(SPF / DKIM / DMARC)の仕組み
「SPF(Sender Policy Framework)」
IPアドレスを利用して受信したメールの送信元が詐称されていないかどうかを確認する。
具体的には、メール送信時に利用するサーバのIPアドレスを送信側のDNSに「SPFレコード」として事前に登録。受信側はメール受信時に送信側のSPFレコードと照合し、なりすましかどうかを判断する。
「DKIM(DomainKeys Identified Mail)」
電子署名を利用してメール送信元が詐称されていないかどうかを確認する。
送信側が送信するメールに電子署名を付与し、 受信側はそれをメール受信時に検証することで、 なりすましやメールの改ざんを検知する。
「DMARC(Domain-based Message Authentication、Reporting and Conformance)」
SPF、DKIMの認証結果を活用する仕組みとして近年注目されている技術。
SPFやDKIMの認証が失敗した場合の対応策を定めたもの。送信側は受信側の認証失敗時の推奨アクションをDNSに「DMARCポリシー」として宣言しておき、受信側は認証失敗時にこのDMARCポリシーを参照して、受信メールをどう扱うか判断する。
原因
送信者側で、DNSに必要なレコードが登録されていない。(更新予定)
解決策
送信者側で、DNSに必要なレコードを登録する。(更新予定)
参考
![](https://xn--h9jxcjj4f.com/wp-content/uploads/cocoon-resources/blog-card-cache/e9dd7721df028c00677b0b02ffd0d246.png)
コメント