SPFレコードの登録を忘れずに
僕が構築するサーバーのほとんどはWebサービス用で、ユーザー登録フローや、何らかの情報通知のため、不特定多数のユーザーにメールを送信するケースも多いです。
たまに、SPFレコードの登録がないため、送信したメールが迷惑メールと判断されてしまう、という問題が発生することがあります。
とくに多いのは、以下のようなケースです。
- Webのホスト名は、サービス用に新規に取得したドメイン example.jp を使用する。
- メール送信時の送信元アドレスは、既存の自社ドメイン @example.co.jp を使用する。(サービス用ドメインと異なるドメインを使用する)
- メール送信で使用するドメインのDNSレコードはこちらでは編集できない。
Webについては、使用するホスト名(ドメイン)をヒアリングしてApache/NginxでVirtualHostの設定を行うのですが、メール送信については、PostfixでMTAとしての設定と、AWS EC2であればメール送信制限解除の申請を行う程度です。
「どういうアドレスでメールを送信するか」についてはアプリケーションマターとして、つい考慮が漏れてしまうんですね。
SPF送信ドメイン認証は
「SPFレコードに登録のないサーバーから送信されたメールは迷惑メールですよ」
と伝えるための仕組みですから、登録がなければ当然、送信相手のメールサーバーに「迷惑メール」と判定される確率がかなり高くなります。
「(既存のドメインを使用するため)SPFレコードが存在するのにメール送信サーバーが登録されていない」
という状態が一番まずいです。
おそらく「SPFレコードが存在しない(使用していない)」ほうがまだマシなんだと思います。
ということで、メール送信時に使用するドメインをヒアリングして、SPFレコードを登録する(自分でできない場合は、設定していただくよう依頼する)よう気をつけたいです。
自分への反省を込めて、メールを送信するサービスの場合、迷惑メール(スパムメール)と判断されないよう、SPFレコードをきちんと設定しましょう、というお話でした。
なお、SPF送信ドメイン認証の仕組みについては、以下のサイトの説明がわかりやすいです。
・迷惑メール対策委員会 SPF(Sender Policy Framework)
http://salt.iajapan.org/wpmu/anti_spam/admin/tech/explanation/spf/
(関連記事)
・メール送信エラー発生~Spamhaus PBLにIPアドレスが登録されていたので解除申請で解決
https://inaba-serverdesign.jp/blog/20210518/send-mail-error-spamhaus-pbl.html
・Postfixによるメール送信設定
https://inaba-serverdesign.jp/blog/20160620/postfix_send_mail.html