📧

SendGridでList-Unsubscribeに対応する方法

2023/10/29に公開
1

挙動

実際の動作を調べたかったのでGmail宛てに試したところ、「登録解除:送信者からのメールをブロック」という表示が出た。

押すと確認ダイアログが表示される。

登録解除ボタンを押すとAPI、SMTPではList-Unsubscribeのmailtoで指定した宛先に通知が飛んだ。URLはpostが飛ぶと思ったけどこなかった...のは検証ミスだろうか...(List-Unsubscribe-Postヘッダが必要?)。SendGridが自動的に配信停止に追加することはないので、自分で対応しないといけなさそう。

一方、Legacy Marketing Campaignでは自動的に配信停止(Group Unsubscribe)に追加される。mailtoにunsubscribe@sendgrid.net~(あるいはDomain Auth設定のドメイン)が指定されていて、SendGridに通知が飛ぶ仕組みになっていた。

https://docs.sendgrid.com/ui/sending-email/list-unsubscribe

Subscription TrackingをONにしている場合

Web APIやSMTPで自動的にList-Unsubscribeが付与されます。

Subscription TrackingをOFFにしている場合

Web API v3

headersで指定する。

{
  "personalizations": [
    {
      "to": [{"email": "to@example.com"}]
    }
  ],
  "from": {"email": "from@example.com"},
  "subject": "Web API v3 List-Unsubscribe",
  "content": [
    {
      "type": "text/plain",
      "value": "テスト"
    },
    {
      "type": "text/html",
      "value": "<html><head></head><body>テスト</body></html>"
    }
  ],
  "headers": {
    "List-Unsubscribe": "<mailto:notify@example.com>, <https://example.com>"
  }
}

SMTP

メールヘッダで指定する。

EHLO
250-smtp.sendgrid.net
250-8BITMIME
250-PIPELINING
250-SIZE 31457280
250-STARTTLS
250-AUTH PLAIN LOGIN
250 AUTH=PLAIN LOGIN
AUTH LOGIN
334 VXNlcm5hbWU6
xxxxxxxx
334 UGFzc3dvcmQ6
xxxxxxxx
235 Authentication successful
MAIL FROM:from@example.com
250 Sender address accepted
RCPT TO:to@Example.com
250 Recipient address accepted
DATA
354 Continue
FROM:from@example.com
TO:to@example.com
SUBJECT:SMTP List-Unsubscribe
List-Unsubscribe: <mailto:notify@example.com>, <https://example.com>

body
.
250 Ok: queued as nle6Y8ytQD-o4SDgC22Lyg

Legacy Marketing Campaign

Legacy Marketing CampaignはSubscription Trackingの設定に関わらず、自動的にList-Unsubscribeが付与されるので指定の必要なし。mailtoに指定されている宛先はSendGridなので自動的に配信停止になる。

List-Unsubscribe: <mailto:unsubscribe@sendgrid.example.com?subject=7218850.CDbk5T3....>

ちなみにテストメールには付与されない。

Discussion

hitoshiarakihitoshiaraki

有益な記事ありがとうございます!
もしご存知でしたら助けてくださると大変助かりますmm
Legacy Marketing Campaignにおいて、Custom Unsubscribe Linkを使って独自の購読解除ページを作っている場合、List-Unsubscribeヘッダの設定をカスタマイズってできるのでしょうか?
具体的なカスタマイズ方法を探し回っているのですが見つけられず。。
今の所、配信メールを見る限り「登録解除:送信者からのメールをブロック」は表示されておらず、自動的にList-Unsubscribeが付与されているように見えないのです。
こちらの対応を進めていまして、仕様上Group Unsubscribeが使えず、9番で詰まっているのです。