シンクロ・フード エンジニアブログ

飲食店ドットコムを運営する、株式会社シンクロ・フードの技術ブログです

Gmail メール送信者のガイドラインに対応した話

はじめまして。開発部の髙木です。

今回は Google が去年新たに制定したメール送信者のガイドラインに対応したので、具体的な対応方法とその結果をご紹介したいと思います。
Google が制定したメール送信者のガイドラインについて詳しく知りたい方は、公式の記事を確認していただければ理解しやすいと思います。

弊社のメール事情

弊社は飲食店に関わる多種多様なサービスを展開しています。そのため、それぞれのサービスごとにお客様へ販促・トランザクションメールを送信する必要があります。例えば、飲食店の開業を検討しているお客様におすすめの新規物件をお知らせするメールや、求職者に希望条件とマッチした求人をお知らせするメールのようにユーザーがサービスを有効活用できるメールや、飲食店に関する有益な情報を定期的にメールで送信しています。多いときには一日に数十万通の販促メールを送信することもあります。これだけの数のメールがお客様に届かなくなるとサービスに致命的な影響を与えてしまうため、メール送信者のガイドラインへの対応は迅速に行う必要がありました。

対応すべきメール送信者のガイドライン

上記のメール事情でも述べたように弊社は多くのメールを送信しており、中でも Gmail アカウント宛が約半数を占めます。つまり、メール送信者のガイドラインに記載されている Gmail アカウントに 1 日あたり 5000 件以上のメールを送信する送信者 に該当します。よって、以下に記載するガイドラインへの対応が必須という状況でした。

  • メールの暗号化・認証を適切に設定する
    • ドメインに SPF・DKIM・DMARC 認証を設定する
    • メールの送信に TLS 接続を使用する
  • 迷惑メール率を 0.1 % 未満にする
    • 0.3 % 以上に決してならないようにする
  • 販促メールの購読解除を容易にする
    • ワンクリック購読解除を提供する
    • メール本文に登録解除のリンクをわかりやすく表示する

メールの暗号化・認証

最初にメールの暗号化・認証について説明します。
設定した暗号化・認証はガイドラインに記載されている以下の通りです。要するに、送信元の偽装やメールの改ざんがないこと・認証失敗時の対応を明示していること・安全性の高いメール送信方法を適切に設定したということになります。

  • 暗号化
    • TLS
      • より安全性の高いメール送信を実現するため
  • 認証
    • SPF
      • 送信ドメインの正当性を証明するため
    • DKIM
      • 送信元の詐称やメール内容の改ざんがないことを証明するため
    • DMARC
      • SPF や DKIM の認証が失敗した場合の対応策を示すため

弊社は販促メールとトランザクションメールを送信していますが、それぞれ送信方法が異なります。販促メールは弊社で立てたメールサーバーを利用して送信し、トランザクションメールは ESP( Email Service Provider )である SendGrid を利用してメールを送信しています。そのため、暗号化・認証の設定を行うに当たり、対応漏れがないように注意しました。

加えて、今回は Google Workspace から送信しているメールに対しても DKIM の設定を行っています。弊社では独自ドメインを取得して Gmail を利用しており、Google Workspace の DKIM 設定がデフォルトのままだと DKIM アライメントに失敗してしまいます。SPF は従来から対応済みのため DMARC 認証には Pass しますが、ワンクリック購読解除の提供に合わせて DKIM アライメントにも Pass するよう対応しました。

ワンクリック購読解除の提供

続いてワンクリック購読解除の提供について説明します。 その前に、弊社の販促メールの送信方法について簡単に紹介だけしておきます。メール事情でも述べたのですが、弊社は飲食店に関わる多種多様なサービスを展開しています。これらのサービスごとに販促メールを送信するとなるとメール送信処理が複雑化してしまうので、弊社では「一括メールシステム」というものを作成して販促メール送信に利用しています。以下の図に示すように、一括メールシステムは多数のサービスで作成した販促メールデータを一元管理し、一斉送信するような機能になります。

一括メール配信システム

上記のように、弊社は販促メールの送信に SendGrid や Salesforce などの ESP を利用していません。そのため、ワンクリック購読解除の仕組みを独自に実装する必要がありました。そこで、弊社の販促メール送信フローを考慮した上で、以下のようにワンクリック購読解除を実装しました。

  1. 一括メールシステムの送信処理にワンクリック購読解除の設定を組み込む
  2. ワンクリック購読解除リクエストを受け付ける処理を実装する
  3. ワンクリック購読解除に必要な情報をメールデータに追加する

まずは、一括メールシステムの送信処理にワンクリック購読解除の設定を組み込むことから対応しました。Google の「簡単に登録解除できるようにする」や RFC 8058 に詳しく記載されていますが、ワンクリック購読解除を提供するには以下 2 つのヘッダー情報をメールに設定するだけです。

List-Unsubscribe: <https://example.com/unsubscribe.html?opaque=123456789>
List-Unsubscribe-Post: List-Unsubscribe=One-Click

List-Unsubscribe-Post が設定されている場合のみ List-Unsubscribe に記載されている url やメールアドレスに対して、ワンクリック購読解除リクエストが送信できるリンクがメール内に表示されるようになります。上記の仕様から、ワンクリック購読解除に使用できるメールデータがある場合に限り、一括メールシステムのメール送信時にメールヘッダーとして設定するような実装を行いました。

次に、ワンクリック購読解除リクエストを受け付ける処理を実装しました。再三ですが、弊社は販促メールの送信に ESP を利用していないので、ワンクリック購読解除リクエストを受け付ける機能の実装も独自に行なっています。一括メールシステムはほぼ全サービスの販促メールを一元管理して送信しているため、同じようにワンクリック購読解除リクエストを受け付ける機能も一元管理するように実装しています。具体的には、特定の url をメールデータから構築して解析することで購読解除に必要な情報を抽出して、メールを送信しないお客様として登録するような実装となっています。

最後に、ワンクリック購読解除に必要な情報をメールデータに追加しました。一括メールシステムを利用しているサービスの販促メール登録処理を洗い出し、ワンクリック購読解除に必要な情報をメールデータとして一括メールシステムへ渡せるように実装しています。

ワンクリック購読解除

まとめると、「サービス」と「一括メールシステム」でワンクリック購読解除を提供するための基盤を実装したことになります。そのため、お客様にワンクリック購読解除を提供するだけでなく、新規で販促メールを登録するような場合でも容易にワンクリック購読解除を適用できる環境の構築まで完了しています。

Gmail メール送信者のガイドラインに対応した結果

Gmail アカウント宛のメール配信状況は Google が提供する Postmaster Tools を使うことで確認できます。
この Postmaster Tools 上で確認できる情報や個別に集計した情報を用いて、メールの暗号化・認証、ワンクリック購読解除を提供した結果を共有します。

メールの暗号化・認証は今回のメール送信者のガイドラインが規定される前からある程度対応していたこともあり、迅速に対応することができました。そのため、PostmasterTools を確認すると 2023-11 月末から常に認証率 100 % となっております。もちろん、TLS による暗号化も同時期から常に 100 % の使用率です。

TLSによる暗号化

また、ドメインレピュテーションも向上しています。

ドメインレピュテーション

続いてワンクリック購読解除を提供した結果を、迷惑メール率の平均値推移・ワンクリック購読解除リクエスト数を指標として共有します。

迷惑メール率

ワンクリック購読解除を提供する以前は、弊社の迷惑メール率の月間平均値は 0.25 % 前後でした。これは月間平均値なので 0.3 % を超過することはありませんが、日単位で確認すると 0.4 % などの 0.3 % を超過する日もありました。ただ、販促メールに対するワンクリック購読解除を提供開始した 2024-02 月以降は迷惑メール率の月間平均値が 0.05 % 程度と著しく低下しており、メール送信者のガイドラインを満たすことができています。日単位で確認しても 0.0 % か 0.1 % の日が大半を占めており、0.2 % 以上になったのは一日だけでした。これは、実際にワンクリック購読解除のリクエスト数が 2024-02 月だけで 3500 件程度あることからも、販促メールを受信していただいているお客様が迷惑メールとして報告するのではなく、購読解除していただけていると捉えることができます。

ワンクリック購読解除リクエスト数

では、実際に送信されたワンクリック購読解除リクエストの推移を確認してみます。ワンクリック購読解除リクエストを送信するためには Google が提供しているメール内リンクを押下する必要があります。しかし、こちらのリンクは今までワンクリック購読解除を提供していない送信者の場合、Google の判断で表示制限が設けられてしまいます。そのため、提供開始直後はワンクリック購読解除のリンクが表示されるケースが少ない = リクエスト数が少ない( 迷惑メールとして報告される )状態であると考えられます。現状、時間の経過とともにワンクリック購読解除リクエスト数は増加傾向にあるため、ワンクリック購読解除のリンクが多くの受信者で表示されるようになっているのだと捉えています。このワンクリック購読解除のリンクがすべての受信者で表示されるようになれば、さらに迷惑メール率を低下させることが可能になり、0.1 % 未満を維持することができる想定です。

まとめ

期日までに Google が新たに制定したメール送信者のガイドラインに対応することができました。暗号化・認証はすでに設定していたものが多く、迅速に対応することができました。ワンクリック購読解除は全サービスの販促メールを網羅できるように実装しました。また、今後追加される販促メールに対しても容易にワンクリック購読解除を提供できる基盤を作ることもできました。これらの対応によって PostmasterTools で報告される平均迷惑メール率は 0.25 % 程度から 0.05 % 程度へと減少させることができました。

また、今回の対応は弊社の販促メール送信フローを再確認する良い機会だったと捉えています。今までルール化されていなかった曖昧な販促メール送信フローを見直し、全サービスの販促メール送信フローの基盤を構築できたと考えています。

現段階でもメール送信者のガイドラインに対応できてはいます。しかし、日毎の迷惑メール率が 0.1 % となる場合があること・販促メールがトランザクションメールにも影響してしまうことを考慮して、販促メール専用のドメイン分割を試みています。また、迷惑メール率が一定値以上になった場合に通知するような監視体制を整えている段階です。こちらについては、対応完了後に別記事として掲載できればと思います。