ランダム短歌 — 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(おすすめ)¶
- resend.com で API キー発行
- ドメイン or
onboarding@resend.dev(テスト用)を From に設定 - 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 |
- 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 を直接使う方が速い — 上記スクリプト参照)
- 本番でルーム参加 → 「結果をメールで受け取る」にアドレス保存
- 合成実行
- 届かない場合: Vercel の Function Logs で SMTP エラーを確認
関連¶
- ルーム単位の通知 UI:
tanka-party/src/app/page.tsx - 送信:
tanka-party/src/lib/mail.ts - アカウント・メルマガ横断:
random-tanka-auth-newsletter.md(別ブランチで実装予定)