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/