メール API
コードから、ちょうど 1 回だけ送る。
1 回の呼び出しで 1 通、または 100 通のバッチを送信します。どの送信にも出る前から ID があり、再試行すると再送せずに最初の結果を返します。
概要
トランザクションメール API とは?
領収書、ログインリンク、通知など、アプリが自分のメールを送る仕組みです。誰かが送信ボタンを押す代わりに HTTP リクエストで送ります。
100
1 回のバッチ呼び出しで送れる通数
365
予約できる日数の上限
900
即時送信を取り消せる秒数
仕組み
全部か無しかにならないバッチ
1 回の呼び出しで最大 100 通。1 通ずつ個別に検証します。宛先が不正ならその 1 通だけが失敗し、残りは送られます。
今すぐ、後で、または取り消し猶予つき
最大 1 年先まで予約でき、即時送信は最大 15 分保留できます。送られるまではキャンセルも再予約もできます。
すべてのメッセージに履歴
送信ごとにすぐ msg_ ID が付きます。ステータス、宛先ごとのイベント、開封とクリックを確認できます。
バッチを送る
TypeScript SDK でも、同じ JSON を素の HTTP で送っても。
import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const result = await openemail.emails.sendBatch( [ { from: '[email protected]', to: '[email protected]', subject: 'Order AC-4192 has shipped', text: 'It is on its way.' }, { from: '[email protected]', to: '[email protected]', subject: 'Order AC-4193 has shipped', text: 'It is on its way.' }, ], { idempotencyKey: 'shipments:2026-09-23' },) console.log(result.sent, result.failed)できること
いま使える機能
ID でテンプレート
保存したテンプレートを送り、テストしたバージョンに固定できます。
相手の言語で
translate を付けると各宛先が自分の言語で読めます。翻訳できなければ送信しません。
Resend 形式にも対応
Resend SDK を /compat/resend に向ければ、コードはそのままです。
上手な使い方
使いこなすために
- 01
冪等キーは原因から作る
注文番号など送信のきっかけを使い、タイムスタンプは使わないでください。
- 02
ステータスを確認する
202 はキュー中または予約済みです。配信済みと判断する前に status を見てください。
- 03
送信にタグを付ける
1 通につき最大 10 個。読み取りのたびに返されます。
現状
知っておきたいこと
- テストモードなし
- すべてのキーが本番用なので、送信は必ず実際に配信されます。
- 送信にバウンス状態なし
- バウンスはスレッドと email.bounced Webhook に届き、GET /emails には反映されません。
- 作成画面からの送信は一覧に出ない
- アプリから送ったメールは GET /emails に表示されません。
質問
よくある質問
さらに見る