Gmail用SPF設定
1.事象
GMAILのアドレス宛にメールを送信したらエラー。
■エラーメールの内容
xxxx@gmail.com host gmail-smtp-in.l.google.com[64.233.187.26] said:
550-5.7.26 This mail is unauthenticated, which poses a security risk to the
550-5.7.26 sender and Gmail users, and has been blocked. The sender must
550-5.7.26 authenticate with at least one of SPF or DKIM. For this message,
550-5.7.26 DKIM checks did not pass and SPF check for [ynet-inc.com] did
not 550-5.7.26 pass with ip: [999.999.999.999]. The sender should visit
550-5.7.26 https://support.google.com/mail/answer/81126#authentication for
550 5.7.26 instructions on setting up authentication.
t63-20020a637842000000b0052c54de0299si6381730pgc.637 - gsmtp (in reply to
end of DATA command)
内容を解説すると
☆このメールは認証されておらずセキュリティリスクがある為、Google的には受信NG
☆「SPF認証」又は「DKIM認証」のどちらが必要
☆このメールは「DKIM認証」はチェックNG
☆このメールは「SPF認証」はチェックOK
★しかしメールは999.999.999.999から送られてきているがこれはSPF範囲外である
☆よってGoogleのサポートサイトを見ながら設定してください
との事でした。
2.SPFとDKIM
googleさんは外部から送られてくるメールのチェックを2022年11月以降強化しており
SPF認証又はDKIM認証のどちらかの認証がないと受信NG又は迷惑メール扱にしていたとの事。
SPF認証 : DNSにメール配信元のサーバを設定しておくことでなりすましでない事を証明
DKIM認証 : 鍵認証にてなりすましや改ざんがない事を証明
SPFはDNSの設定をするだけで済むのに対し、DKIMはメールサーバに鍵認証を仕込む必要がある。
レンタルサーバの場合はDKIMは設定できないケースも多く、今回利用のメールサーバもDKIMは利用できない。
よってSPFを正しく設定して対処する。
3.SPFの設定
SPFの設定はDNSサーバにて実施。
今回はAWSのRoute53での設定を行う。
Route53のホストゾーンに下記SPFレコードを追加
レコード名 レコードタイプ 値
ynet-inc.com TXT "v=spf1 ip4:999.999.0.0/16 ~all"
ポイントはGMAILのエラーメールにあった pass with ip: [999.999.999.999]. The sender should visit
この部分。
この[999.999.999.999]が送信元サーバのIPなのでこのIPからの送信であればOKとしてあげる必要がある。なのでspfのレコードにてip4:999.999.0.0/16
を設定してあげる事で、送信元サーバの認証がOKとなる。
IPそのものではなくサブネット指定にしているのはプロバイダー内でメールサーバを経由して最終的にIPは変わる可能性があるのでプロバイダーのサブネットで指定を行った方が良い。