
# メールプロバイダを取得する

`GET /v1/email-provider` · 権限 `email-provider:read` · すべてのプラン

環境がメールを送信する方法を返します。配信モード、送信元アドレス、独自の SMTP サーバーまたはメールプロバイダ、最後の接続テストの結果が含まれます。

認証情報（SMTP パスワードまたは API キー）は、マスク表示や文字数を含めても返されません。`credentials_set` は、認証情報が保存されているかどうかのみを示します。

一度も設定されていない環境では、バージョン `0` の `platform_default` を返します。`ETag` ヘッダーにはバージョンが含まれます。設定を[置き換える](put.md)際は、これを `If-Match` として送信してください。

## レスポンス

設定を含む `200 OK` を返し、`ETag` にそのバージョンを設定します。

| フィールド | 型 | 説明 |
|---|---|---|
| `mode` | string | `platform_default`、`platform_managed_domain`、`customer_smtp`、`customer_api`、`customer_webhook` のいずれか。 |
| `sender_domain_id` | string または null | `platform_managed_domain`: メールの送信元となる[送信元ドメイン](../email-sender-domains/get.md)（`sdom_…`）。それ以外のモードでは null。現在のステータスはドメインを取得して確認してください。 |
| `webhook_endpoint_id` | string または null | `customer_webhook`: レンダリング済みメッセージを受信する [Webhook エンドポイント](../webhook-endpoints/get.md)（`whe_…`）。それ以外のモードでは null。現在も有効かどうかはエンドポイントを取得して確認してください。 |
| `from_address` | string または null | 送信元アドレス（表示名なし）。`platform_default` では null。 |
| `reply_to` | string または null | 返信先アドレス（表示名なし）。 |
| `provider` | string または null | `customer_api` のプロバイダ: `ses`、`sendgrid`、`postmark`、`mailgun`、`brevo`。 |
| `smtp_host` | string または null | `customer_smtp` の SMTP サーバーのホスト名。 |
| `smtp_port` | integer または null | `customer_smtp` のポート: `465`（暗黙の TLS）または `587`（STARTTLS）。 |
| `smtp_username` | string または null | `customer_smtp` の AUTH ユーザー名。機密情報ではありません。 |
| `credentials_set` | boolean | 認証情報が保存されているかどうか。 |
| `last_test_at` | string または null | 最後の[接続テスト](test.md)の日時。設定が変更されるとクリアされます。 |
| `last_test_result` | string または null | 最後のテストの結果で、`ok` または固定のエラーコード。 |
| `version` | integer | 設定のバージョン。`ETag` と同じ値です。`0` は一度も設定されていないことを意味します。 |
| `updated_at` | string または null | 最後に変更された日時。 |

```json
{
  "mode": "customer_smtp",
  "sender_domain_id": null,
  "webhook_endpoint_id": null,
  "from_address": "no-reply@example.com",
  "reply_to": null,
  "provider": null,
  "smtp_host": "smtp.example.com",
  "smtp_port": 587,
  "smtp_username": "mailer",
  "credentials_set": true,
  "last_test_at": "2026-10-19T09:30:00Z",
  "last_test_result": "ok",
  "version": 4,
  "updated_at": "2026-10-19T09:00:00Z"
}
```

`platform_managed_domain` の設定の例:

```json
{
  "mode": "platform_managed_domain",
  "sender_domain_id": "sdom_01k7xq3m5r8t9v0w1x2y3z4a5b",
  "webhook_endpoint_id": null,
  "from_address": "auth@mail.example.com",
  "reply_to": "support@example.com",
  "provider": null,
  "smtp_host": null,
  "smtp_port": null,
  "smtp_username": null,
  "credentials_set": false,
  "last_test_at": null,
  "last_test_result": null,
  "version": 5,
  "updated_at": "2026-10-19T10:00:00Z"
}
```

`customer_webhook` の設定の例:

```json
{
  "mode": "customer_webhook",
  "sender_domain_id": null,
  "webhook_endpoint_id": "whe_01k7xq3m5r8t9v0w1x2y3z4a5b",
  "from_address": "auth@example.com",
  "reply_to": null,
  "provider": null,
  "smtp_host": null,
  "smtp_port": null,
  "smtp_username": null,
  "credentials_set": false,
  "last_test_at": null,
  "last_test_result": null,
  "version": 6,
  "updated_at": "2026-10-27T09:00:00Z"
}
```

## エラー

| HTTP | code | 発生条件 |
|---|---|---|
| 401 | `unauthenticated` | 認証情報が欠落しているか、無効または取り消し済みです。 |
| 403 | `insufficient_permissions` | 認証情報に必要な権限がありません。 |
| 429 | `rate_limited` | レート制限を超えました。`Retry-After` の期間を過ぎてから再試行してください。 |
| 503 | `service_unavailable` | 依存先のサービスが一時的に利用できません。`Retry-After` の期間を過ぎてから再試行してください。 |

## 例

```bash
curl https://api.eu.keenauth.com/v1/email-provider \
  -H "Authorization: Bearer $KEENAUTH_SECRET_KEY"
```

CLI: `keenauth email-provider get`
