📧

SendGrid API を利用して配信停止機能を実装した際の Tips

2023/10/02に公開

はじめに

SendGrid を利用して配信停止機能を実装する際には、自社で利用している SendGrid の機能から実装方法を選択する必要があります。
今回は SendGridを利用した配信停止タグの作成方法について紹介していきます。

想定読者

  • SendGrid で配信停止機能を実装する予定の方
  • SendGrid API を利用している方

配信停止機能を実装するために利用したもの

SendGrid Send API

  • SendGrid からメールを送信するためのAPI
  • 後述の Dynamic Transactional Template 機能と併用すると、アプリケーションで指定したパラメーターを動的に指定できる
  • メールごとに配信停止グループを指定することも可能
  • Send API リファレンス

SendGrid Dynamic Transactional Template

配信停止グループ(Group Unsubscribes)

  • 配信停止対象のメールアドレスをグループごとに管理するための機能
  • 詳しくはこちらをご覧ください

配信停止タグ

  • SendGrid のテンプレート上で配信停止リンクを自動で作成してくれるタグ
  • この配信停止タグを Dynamic Transactional Template に指定する方法が今回の実装で一番躓きました。

詰まったポイント

前述しましたが、今回の実装で詰まったポイントは Dynamic Transactional Template 内に指定する配信停止タグの作成でした。配信停止リンクの作成は SendGrid が「配信停止タグ」という名前で機能として用意してくれていますが、自分たちが利用する機能に当てはめた場合のタグの作成方法を見つけることに苦戦しました。

私達は メールテンプレートに Dynamic Transactional Template の Design Editor を利用しました。これはマーケティング職の方やプロダクトマネージャーの方のような開発者以外でもテンプレートの作成、修正をしやすくするためです。

また配信停止対象のユーザーをグループ分けしたかったので、
配信停止グループ(Group Unsubscribes) という機能も利用していました。

しかし、Dynamic Transactional Template の Design Editor, 配信停止グループを利用する場合に利用できるタグ機能が限られていました。

参考: 配信停止タグを使いこなそう

上記のドキュメントを参考にし、やっと実装ができました。

テンプレートは Dynamic Template のため、{{{ unsubscribe }}}タグしか利用できず、エディタは Design Editor のため、テンプレート内の href 属性で指定する方法で実現できました。

具体的には、作成対象の Dynamic Template 内に Code ブロックを作成し、そこに以下のような記述をしました。
(コード書かなくても良いように Design Editor を利用していますが、ここだけは コードを書く必要がありそうです。。。。)

上記のように書くことで、配信停止タグを作成することに成功しました!!

実際の配信停止タグの表示

終わりに

SendGrid を用いた配信停止機能は、SendGrid 側で機能を用意してくれているので、容易に実現出来るかと思いましたが、自分たちが利用している条件の元で実現するために少し苦労しました。

実装で詰まった際に SendGrid のサポートセンターに問い合わせしたところ、親切に相談に乗っていただき、参考になる記事を教えてくださいました。とてもありがたかったです。
今回の自分の記事が誰かの参考になったら嬉しいです。

最後まで読んでいただきありがとうございました。

参考記事

ラブグラフのエンジニアブログ

Discussion