Klaviyoから届いたメールのヘッダを確認したとき、こんな2行が入っていました。
List-Unsubscribe-Post: List-Unsubscribe=One-Click
List-Unsubscribe: <https://manage.kmail-lists.com/...>
これを見て、「あ、解除ボタンはここから来ているんだ」とわかりました。Gmailでメールを開いたとき、送信者名の横に小さく「登録解除」が出ることがあります。あの仕組みです。
受信側(GmailやYahoo!Mail)がこの2行を読み取って、UIにボタンを出す。ユーザーがそのボタンを押すと、配信システム側のエンドポイントに解除リクエストが飛ぶ。本文の下に「配信停止はこちら」というリンクを置く従来型と違って、メールを開かなくてもワンクリックで解除できます。
ヘッダの2行
仕組みはシンプルです。メールのヘッダ(受信者には通常見えない、配送情報が書かれた領域)に2つの行を加えるだけです。
List-Unsubscribe:解除処理を受け取るURLを指定するList-Unsubscribe-Post:List-Unsubscribe=One-Clickと書くことで、ボタン1クリックで解除できることを宣言する
ヘッダにこの2行がないと、受信側はワンクリック解除ボタンを出せません。
実装は配信ツール側でほぼ自動でやってくれます。Klaviyoの配信にこのヘッダが入っていたのも、Klaviyoが対応済みだったからです。問題は、ツールが対応していても、自前で送信系を作っていたり古いシステムを使っていたりすると、このヘッダが付いていないことがある。
対応しない配信の代償
Gmailは2024年2月から、1日5000件以上のメールを送る「大量配信者」(BulkSender)に対してワンクリック解除への対応を必須要件にしました。対応していない配信は、受信者がスパム報告を押しやすい状況になります。
スパム報告が増えると、Gmailがそのドメインの評判を低く見積もります。評判が下がると、後から送るメールの到達率が落ちる。直接エラーで弾かれるわけではないですが、静かに迷惑メールフォルダに落ちていく量が増えます。
「5000件未満だから関係ない」と思いたいところですが、Gmailは件数に関係なく、スパム率や認証状況を送信者評価に使います。小規模な配信でも評判は積み上がるし、崩れます。
1日5000件規模の配信をしていないとしても、解除ボタンを出しておくことは受信者にとって親切ですし、スパム報告のリスクを下げます。配信停止したい人が手間なく解除できれば、残っているリストのエンゲージメントは上がります。
自分の配信に付ける手順
使っているツールがKlaviyoやSendGrid、HubSpotなどの主要な配信サービスなら、ほぼ設定画面から有効化できます。「List-Unsubscribe」や「ワンクリック解除」という項目を探して有効にするだけです。
GASやプログラムで自前の配信を組んでいる場合は、ヘッダを手動で付ける必要があります。私はこういうとき、自分でコードを書くよりAIに頼む方が速いので、こんな感じで渡します。
GASでHTMLメールを送信するコードがある。これに List-Unsubscribe ヘッダと List-Unsubscribe-Post ヘッダを追加したい。解除リクエストを受けるエンドポイントはこのURLにする。ヘッダの書式と追加箇所を示してほしい。
ヘッダの書式は仕様が決まっているので、AIが正確に出してくれます。ここは判断が要る部分ではなく、書式の正確さが要る部分なので、AIに任せた方が確実です。
注意点
ヘッダを付けるだけでは半分で、解除リクエストを受け取るエンドポイントを用意する必要があります。ユーザーが解除ボタンを押すと、List-Unsubscribeに指定したURLにリクエストが飛びます。そのURLが存在しなかったり、解除処理が動いていなかったりすると、ボタンを押しても何も起きない。
ここが抜けると「ワンクリック解除に対応している体裁だが、実際には解除されない」という状態になります。配信リストの管理と、解除リクエストを受けてリストから削除する処理がセットで必要です。
もう一点。このヘッダは受信側が「対応メールかどうか」を判断するためのものなので、ヘッダを付けた後に実際に送ってみて、Gmailのヘッダ情報で確認しておく方がいいです。Gmailで受信したメールの「メッセージのソースを表示」から List-Unsubscribe の文字列が見えれば、ヘッダは届いています。
設定の確認は1通テストするだけです。これを省くと「付けたつもりが届いていなかった」が後から出てきます。
