コンテンツにスキップ

ランダム短歌 — SMTP / Vercel 設定

概要

合成・再合成時に、ルーム内で登録したメールアドレスへ通知する。
SMTP 未設定でもアプリは動く(送信だけ no-op)。


Vercel 環境変数

変数 必須 説明
APP_BASE_URL 推奨 https://random-tanka.vercel.app — メール内リンク
SMTP_HOST 送信時 SMTP サーバー
SMTP_PORT 送信時 通常 587 または 465
SMTP_SECURE 任意 465 なら true
SMTP_USER 任意 認証ユーザー
SMTP_PASS 任意 パスワード or API キー
MAIL_FROM 送信時 送信元(例: ランダム短歌 <onboarding@resend.dev>

webapp(Life OS)と 同じ SMTP を共有可能


一括同期(Turso + SMTP + APP_BASE_URL)

# 1. webapp の env を pull(SMTP が Vercel に入っている場合)
cd webapp
npx vercel env pull /tmp/webapp-env.local --environment=production

# 2. random-tanka へコピー
cd ../tanka-party
VERCEL_TOKEN=... npm run sync:vercel-env

APP_BASE_URL はスクリプトが https://random-tanka.vercel.app を自動設定。
SMTP が webapp にも無い場合は、下記 Resend 等を先に webapp または random-tanka プロジェクトへ手動追加。


Resend(おすすめ)

  1. resend.com で API キー発行
  2. ドメイン or onboarding@resend.dev(テスト用)を From に設定
  3. Vercel → random-tanka → Environment Variables:
変数
SMTP_HOST smtp.resend.com
SMTP_PORT 465
SMTP_SECURE true
SMTP_USER resend
SMTP_PASS re_xxxxxxxx(API キー)
MAIL_FROM ランダム短歌 <onboarding@resend.dev>
APP_BASE_URL https://random-tanka.vercel.app
  1. Redeploy(環境変数変更後は再デプロイが必要)

セキュリティ

  • API キーは Vercel 環境変数のみ に置く(リポジトリにコミットしない)
  • チャット等でキーを共有した場合は Resendローテーション を推奨

一括設定(API)

cd tanka-party
RESEND_API_KEY=re_xxxx VERCEL_TOKEN=... python3 scripts/setup-resend-vercel.py

(CLI が遅い場合は Vercel REST API を直接使う方が速い — 上記スクリプト参照)


  1. 本番でルーム参加 → 「結果をメールで受け取る」にアドレス保存
  2. 合成実行
  3. 届かない場合: Vercel の Function Logs で SMTP エラーを確認

関連

  • ルーム単位の通知 UI: tanka-party/src/app/page.tsx
  • 送信: tanka-party/src/lib/mail.ts
  • アカウント・メルマガ横断: random-tanka-auth-newsletter.md(別ブランチで実装予定)