OpenEmail を使って、このアプリにトランザクションメールを追加して。 1. npm install @openemail/sdk で TypeScript SDK をインストールして。 2. API キーは環境変数 OPENEMAIL_API_KEY から、サーバー側でだけ読み込んで。ブラウザには絶対に渡さず、コミットもしないで。 3. init を一度だけ呼び、そのあと openemail.emails.send を呼ぶ sendEmail ヘルパーを書いて。送信元には、OpenEmail で確認済みのドメインのアドレスを使って。 4. 送信処理は app/api/send/route.ts の Next.js ルートハンドラーに置いて。 5. 再試行で二重に送信されないよう、welcome:<userId> のようにイベントから組み立てた idempotencyKey を渡して。 6. 誰かが登録したらウェルカムメールを送り、返ってきた id をログに出して。 SDK リファレンス: https://openemail.uk/docs/sdk
送信元とトリガーは、アプリに合わせて変えてください。それ以外は、OpenEmail が想定する呼び出し方そのものです。
三つのステップで、
送信が動き出す。
- 01
キーを発行
設定で、送信できるキーを作成します。シークレットは一度しか表示されません。
- 02
秘密にしておく
OPENEMAIL_API_KEY は v0 のシークレットに追加し、コードには書かないでください。
- 03
プロンプトを貼り付ける
v0 が SDK をインストールし、送信のコードを書きます。変更内容を読んでから実行してください。
書かれるコード。
ルートひとつ、呼び出しひとつ。
典型的な結果です。v0 がファイルに別の名前を付けることもあります。
app/api/send/route.ts
import { init, openemail } from '@openemail/sdk'init({ apiKey: process.env.OPENEMAIL_API_KEY })export async function POST(request: Request) {const { email, name, userId } = await request.json()const sent = await openemail.emails.send({from: 'Acme <[email protected]>',to: email,subject: `Welcome, ${name}`,html: `<p>Thanks for signing up, ${name}.</p>`,}, {idempotencyKey: `welcome:${userId}`,})return Response.json({ id: sent.id })}
ほかのツールでも、
同じプロンプト、同じメールボックス。
キーを発行。
何か送ってみる。
API、MCP、SDK のフルアクセスは、無料プランを含むすべてのプランで使えます。