
# メールテンプレートをプレビュー

`POST /v1/email-templates/{family}/{locale}:preview` · 権限 `email-templates:write` · Startup プラン以上

保存済みのバージョン、または未保存の内容を、サンプルデータでレンダリングし、受信者に表示される完全なメッセージを返します: プラットフォームのレイアウト、必須のセキュリティブロック、プラットフォームのマーク。何も保存も送信もされません。サンプルのコードとリンクは呼び出しごとにランダムに生成されます。検証は[下書きの保存](put.md)と同じです。

## パスパラメーター

| パラメーター | 説明 |
|---|---|
| `family` | メールファミリー。例: `verify_email` または `email_otp`（[メールテンプレートを一覧表示](list.md)を参照）。 |
| `locale` | ロケールタグ。例: `en` または `de`。 |

## リクエスト

`version` または内容のフィールドのどちらか一方を送信してください（両方は不可）。

| フィールド | 型 | 説明 |
|---|---|---|
| `version` | integer | レンダリングする保存済みのバージョン（1 以上）。 |
| `subject`、`html`、`text_body`、`from_name` | string | 未保存の内容。[下書きの保存](put.md)と同じ規則に従います。 |

## レスポンス

`200 OK`

```json
{
  "subject": "Confirm your email for Example App",
  "html": "<!doctype html><html lang=\"en\">…</html>",
  "text": "Confirm your email: https://login.example.com/preview/9f2c…",
  "locale": "en"
}
```

`locale` は、プラットフォーム自体の部分に使用されるカタログのロケールです。

## エラー

| HTTP | code | 発生条件 |
|---|---|---|
| 400 | `unknown_field` | 本文に未知のフィールドがあるか、JSON オブジェクトではありません。 |
| 404 | `not_found` | ファミリーまたはロケールが不明、またはバージョンが存在しません。 |
| 403 | `plan_feature_unavailable` | 環境のプランにカスタムメールテンプレートが含まれていません（Startup 以上。必要なプランは `required_plan` に示されます）。 |
| 413 | `payload_too_large` | 本文が 2 MiB を超えています。 |
| 422 | `validation_failed` | `version` と内容の両方が送信された（`conflicts_with_content`）、または内容が検証に失敗しました。 |
| 422 | `template_forbidden_construct` | テンプレートがサンドボックス外の Liquid 構文を使用しています。 |
| 401 | `unauthenticated` | 資格情報がない、無効、または取り消されています。 |
| 403 | `insufficient_permissions` | 資格情報に必要な権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` の期間が過ぎてから再試行してください。 |
| 503 | `service_unavailable` | 依存先が一時的に利用できません。`Retry-After` の期間が過ぎてから再試行してください。 |

## 例

```bash
curl -X POST https://api.eu.keenauth.com/v1/email-templates/verify_email/en:preview \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY" \
  -H "Content-Type: application/json" \
  -d '{"version":3}'
```

CLI: `keenauth email-templates preview verify_email en --version 3`
