次世代の SendGrid !? メール送信プラットフォーム Resend
気になるサービスを見つけたので、試してみました〜!!
Resend
Resend とは
Resend は API 経由でメールを送信することができるサービスです。
Think of it as a next-generation Sendgrid.
次世代の Sendgrid と考えてください。
次世代の SendGrid と謳っており、開発者の開発体験を重視したメール送信プラットフォームを目指しているそうです。
料金比較
SendGrid と利用料金の比較をしてみます。
無償利用枠
無償利用枠での1ヶ月あたりメール送信数は以下です。
SendGrid のほうが多く送信できます。
- SendGrid:12,000
- Resend:3,000
有償利用枠
メールの送信数が多くなると、 Resend がお得になってくるようです。
1ヶ月あたりメール送信数 | SendGrid | Resend |
---|---|---|
40,000 | 2,300 | 2,866.36 - $20 |
100,000 | Essentials 4,600 / Pro 12,000 | 5,016.13 - $35 |
300,000 | 30,000 | 28,663.60 - $200 |
700,000 | 59,000 | 57,327.20 - $400 |
1,500,000 | 104,000 | 100,322.60 - $700 |
2,500,000 | 141,000 | 128,986.20 - $900 |
メールを送信してみる
Send your first email
サインアップを済ませると、 Send your first email 画面が出てきます。
以下のサンプルコードも表示されているで、手っ取り早く cURL で試してみます。
- Node.js
- Ruby
- PHP
- Python
- Elixir
- cURL
curl -X POST 'https://api.resend.com/emails' \
-H 'Authorization: Bearer {{API_KEY}}' \
-H 'Content-Type: application/json' \
-d $'{
"from": "onboarding@resend.dev",
"to": "{{TO_EMAIL_ADDRESS}}",
"subject": "Hello World",
"html": "<p>Congrats on sending your <strong>first email</strong>!</p>"
}'
送信成功!
Lambda でメール送信
今回は Python で実装していきます。
AWS コンソールから、Layerを追加して、コードも書き換えてテスト実行します。
Layer を追加する
resend というパッケージを使用するので、Layerにアップロードするための zip ファイルを作成します。
mkdir python
python3 -m pip install -t python resend
zip -r9 layer.zip python
lambda_function.py
lambda_function.py を以下に書き換えます。
import os
import json
import resend
def lambda_handler(event, context):
resend.api_key = os.environ["RESEND_API_KEY"]
params = {
"from": "Sending Test <onboarding@resend.dev>",
"to": [event['to']],
"subject": "hello world",
"html": "<strong>it works!!!</strong>",
}
email = resend.Emails.send(params)
print(email)
return {
"statusCode": 200,
"body": json.dumps({
"message": "ok"
})
}
環境変数の設定
RESEND_API_KEY
という環境変数で API Key をセットします。
テストを実行する
イベント JSON を定義して、実行します。
{
"to": "{{TO_EMAIL_ADDRESS}}"
}
送信成功!!!
React Email と親和性が高そう
React Email というライブラリも開発が進んでいるようで、セットでの利用が想定されていそうです。
以下の記事がとても参考になりました。
まとめ
まず、Resend の WEB サイトやコンソール画面が非常にオシャレで、かっこいい笑
ドキュメントも綺麗で分かりやすいです。
Serverless というカテゴリーがあり、Vercel Edge Functions や Supabase Edge Functions
、AWS Lambda のサンプルコードもあるのが、モダンというか next-generation 感を受けました。
ただ、 Rust のサンプルコードがないのが寂しいですね...
次世代の SendGrid となるか、今後の動向を見ていきたいです!!
Discussion