Resend入門
概要
APIでメール送信を行う事が出来るサービス。
競合サービスとして SendGrid がある。
What problem are we solving?
We're building a communications platform, and we're starting with email.
The idea is for you to send messages with easy-to-use APIs/SDKs without having to worry about emails >going to the spam folder.
Think of it as a next-generation Sendgrid.
公式がブログで次世代のSendGridと思って欲しいと書いている。
実際に評判も良いので今回はこれを使ってみる。
アカウント作成
以下からアカウントを作成する。
自分はこのような開発関連のサービスは可能であればGitHubアカウントで登録するようにしているのでGitHubで登録を行う。
初回ログイン後、組織名の入力を求められるので何でも良いので入力する。
ちなみに同じメールアドレスで複数の組織には所属出来ない形になっているので、会社等の特定の組織でアカウントを作る場合はその会社の専用メールアドレスでアカウントを作成するのが無難。
送信テスト
まずは簡単なメール送信を試してみる。
以下から「+Create API Key」を押下してAPIキーを作成する。
名前は適当でメールの送信だけ出来れば良いので権限は「Sendding access」を選択、ドメインはまだないのでAll domainsでOK。
re_
から始まるAPIキーが発行されるのでコピーしておく。
以下のリクエストを行いメール送信のテストを行う。
# $RESEND_API_KEY には先程作成したAPIキーを指定
curl -v \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $RESEND_API_KEY" \
-d '
{
"from": "onboarding@resend.dev",
"to": "自分のメールアドレスを指定",
"subject": "Resend Test Mail",
"html": "<p>Congrats on sending your <strong>first email</strong>!</p>"
}' \
https://api.resend.com/emails | jq
以下のレスポンスが返ってくる。
< HTTP/2 200
< ratelimit-policy: 10;w=1
< ratelimit-limit: 10
< ratelimit-remaining: 9
< ratelimit-reset: 1
< content-type: application/json; charset=utf-8
< content-length: 45
< date: Mon, 05 Feb 2024 14:49:06 GMT
< server: railway
<
* Connection #0 to host api.resend.com left intact
{"id":"UUID形式の値"}
メールも確認したところ問題なく送信されていた。
メッセージのソースを確認したところ、SPF、DKIM、DMARCを全てPASSしている。
最近ではGmailが迷惑メールポリシーを強化した事もあり、このあたりの設定は必須になっているので、これをサービス側で担保してくれるのはとても楽。(これはSendGrid 等の他のサービスを使った場合も同じ事が言える)
ちなみにレスポンスの id
は以下のログからも確認出来る。
ただし id
での検索は出来ないようだ。
ただAPI Keyごとに絞り込んだりも可能なのでAPI Keyは用途毎に細かく分けたほうが良さそう。
独自ドメインの設定
onboarding@resend.dev
を利用したメール送信は自身のアドレスに対してしか実行出来ない。
本格的に運用する為には独自ドメインの登録が必須となる。
こちらを見ながら進めていく。
ちなみにドメインはCloudflareに登録されているので以下を見ながら進めていく。
最初に以下からドメインを登録する。
SPF, DKIM, DMARCの設定に必要なDNSレコードを追加する。
最近Gmailの迷惑メールポリシーが強化されこれらの設定がないとメールが届かない可能性が高い、よってこれらの設定は必須。
これらの設定が簡単に出来るのもResendのようなサービスを利用するメリット。
ちなみに作成したドメインのページをResendで見ると以下のようにどのようなレコードの追加が必要か教えてくれる。
以下はドメインを email.exmple.com
で登録した時に例。
自動でDNS Providerの設定も読み込んでくれるのでとても親切。
この設定に従いCloudflare側にMXとTXTレコードを追加していく。
CloudflareでDNSレコードの登録が終わったら画面の右上付近にある「Verify DND Records」を押下すると認証が開始される。
以下のような表示になるがしばらく待つと認証が完了する。
認証完了画面
これで独自ドメインでメールの送信が可能になるハズ。
DMARCの設定
こちらもGmailのガイドラインでは必須になっているので必ず設定する。
ドメインが email.exmple.com
の場合、以下のようなDNSレコードを追加する。
※ dmarcreports@example.com
の部分はDMARCのレポートを送信するメールアドレスに置き換える。
Name: _dmarc.email
Type: TXT
Value: v=DMARC1; p=none; pct=90; rua=mailto:dmarcreports@example.com
DMARCの注意点
rua=
の部分は設定したドメイン名と別のドメインになる場合は送信先のメールアドレスのドメインのDNSレコードに以下を追加する必要がある。
以下は送信元アドレスが blue.com
でDMARCのレポートの送信先が red.com
の場合。
Name: blue.com._report._dmarc.red.com
Type:TXT
Value: v=DMARC1
この点に関しても以下のドキュメントに記載してある。
SPF, DKIM, DMARCの設定を確認
Gmailだと受信ボックスの「メッセージのソース」から確認可能。
SPF, DKIM, DMARCを全てPASSしていれば問題ない。
DMARCが通っている事を確認後は p=none;
の部分を推奨設定の p= quarantine;
あたりに変えておく。