SendGridを使ったメール配信を使ってみたので、
そのとき調べたときの備忘録。
マーケティングメールもあるけど、
とりあえず、トランザクションメールの送り方。
メールを送るためにやること
手順はこんな感じ。
APIキーの発行
管理画面の「Settings > API Keys」から。
APIの種類は3つ
とりあえず、送信だけなので
「Mail Send」と「Marketing Campaings」のみ。
APIキーは再度表示できないので、ちゃんと保存しておく。
SDKのインストール
Node.js用のSDKも用意されているので、それを使う。
・sendgrid/sendgrid-nodejs
中身はWebAPI v3を利用している。
・API v3 概要 - ドキュメント | SendGrid
・SendGrid v3 API Documentation
SDKの使い方などもドキュメント化されてる。
・Email Use Cases
まずは、インストール。
$ npm install --save @sendgrid/mail
とりあえず、READMEにあるサンプルを動かしてみる。
SENDGRID_API_KEY
には先程払い出したAPIキーを設定。
import sgMail from "@sendgrid/mail"; sgMail.setApiKey(process.env.SENDGRID_API_KEY); const msg = { to: 'test@example.com', from: 'test@example.com', // Use the email address or domain you verified above subject: 'Sending with Twilio SendGrid is Fun', text: 'and easy to do anywhere, even with Node.js', html: '<strong>and easy to do anywhere, even with Node.js</strong>', }; async function main() { try { await sgMail.send(msg); } catch (error) { console.error(error); if (error.response) { console.error(error.response.body) } } } main().then();
メール送信はこれでOK
独自ドメインの設定
テストメールを送ってみると、「sendgrid.net 経由」と表示される。
これはドメインを設定すると表示されなくなる。
独自ドメインの設定は以下から。
「Settings > Sender Authentication > Domain Authentication」
また、Cloudflareに追加するときはDNSのみにする。
次にトラッキング用のURLも独自ドメインにする。設定は以下から。
「Settings > Sender Authentication > Link Branding」
こっちは、Cloudflareに追加するときはプロキシを有効にする
独自ドメインを利用する - ドキュメント | SendGrid
テンプレートメールの作成
送るメールの雛形をテンプレートメールとして作成できる。
トランザクションメールの場合は、
「Email API > Dynamic Templates」から。
埋め込み文字にも対応していて{{name}}
とかを設定すればOK。
件名にもリンクにも使える。
配信停止グループとか便利だけど、
英語版しか無いっぽいので自前で用意する形に。
Dynamic Templatesを使っている場合、 以下の埋め込みタグを使えば、それぞれのリンクを設定してくれる。
{{{unsubscribe}}}
... Group Unsubscribe{{{unsubscribe_preferences}}}
... 購読管理ページ
ただし、asm.group_id
とasm.groups_to_display
を設定しないと、
それぞれのリンクが有効にならないので注意。(ハマった...)
・メールの種類ごとに配信停止を管理する - ドキュメント | SendGrid
配信停止グループの作成
SendGridでは、グループを作ることで配信停止を簡単に管理できる。
・メールの種類ごとに配信停止を管理する - ドキュメント | SendGrid
コンソールでは「Suppressions > Unsubscribe Group」から。
グループを作成すると、GroupIDが払い出される。
送信時にどのグループのメールかを指定するので控えておく。
グループを作っておくと、ユーザ自身で購読管理できるページも用意してくれる。
全体は英語のみだけど、グループ名は日本語にできる。
・受信者による購読管理 - ドキュメント | SendGrid
テンプレートメールの送信
以下のドキュメントを参考に。
・sendgrid-nodejs/transactional-templates.md
const msg = { to: 'test@example.com', from: 'test@example.com', dynamicTemplateData: { // 埋め込み文字の設定 name: "なまえ", date: "2021/01/01" }, categories: ["my-app", "alert"], // カテゴリの設定 asm: { groupId: 99999, // 配信停止グループ groupsToDisplay: [88888, 99999] // 購読管理に表示するグループ } };
以上!! SendGrid便利(´ω`)
SSSAPIではβ版ユーザを募集しています!!
GoogleスプレッドシートをサクッとAPI化するサービスを開発してます!
β期間中は最上位プランが無料なので、この機会にぜひぜひお試しください(´ω`)
■SSSAPI
https://sssapi.app