
# Obtenir le fournisseur d'e-mail

`GET /v1/email-provider` · autorisation `email-provider:read` · tous les forfaits

Renvoie le mode d'envoi des e-mails de l'environnement : le mode de distribution, l'adresse de l'expéditeur, votre propre serveur SMTP ou fournisseur d'e-mail, et le dernier test de connexion.

Les identifiants (mot de passe SMTP ou clé API) ne sont jamais renvoyés, pas même masqués ni sous forme de longueur. `credentials_set` indique seulement si un identifiant est enregistré.

Un environnement jamais configuré renvoie `platform_default` avec la version `0`. L'en-tête `ETag` porte la version ; envoyez-la dans `If-Match` lorsque vous [remplacez](put.md) la configuration.

## Réponse

`200 OK` avec la configuration et `ETag` défini sur sa version.

| Champ | Type | Description |
|---|---|---|
| `mode` | string | `platform_default`, `platform_managed_domain`, `customer_smtp`, `customer_api` ou `customer_webhook`. |
| `sender_domain_id` | string ou null | `platform_managed_domain` : le [domaine d'expédition](../email-sender-domains/get.md) (`sdom_…`) à partir duquel les e-mails sont envoyés ; null dans tous les autres modes. Lisez le domaine pour connaître son statut actuel. |
| `webhook_endpoint_id` | string ou null | `customer_webhook` : le [point de terminaison webhook](../webhook-endpoints/get.md) (`whe_…`) qui reçoit les messages générés ; null dans tous les autres modes. Lisez le point de terminaison pour savoir s'il est toujours activé. |
| `from_address` | string ou null | Adresse de l'expéditeur seule ; null dans `platform_default`. |
| `reply_to` | string ou null | Adresse de réponse seule. |
| `provider` | string ou null | Fournisseur `customer_api` : `ses`, `sendgrid`, `postmark`, `mailgun` ou `brevo`. |
| `smtp_host` | string ou null | Nom d'hôte du serveur `customer_smtp`. |
| `smtp_port` | integer ou null | Port `customer_smtp` : `465` (TLS implicite) ou `587` (STARTTLS). |
| `smtp_username` | string ou null | Nom d'utilisateur AUTH `customer_smtp`. Il n'est pas secret. |
| `credentials_set` | boolean | Indique si un identifiant est enregistré. |
| `last_test_at` | string ou null | Date du dernier [test de connexion](test.md) ; effacée lorsque la configuration change. |
| `last_test_result` | string ou null | `ok` ou le code d'erreur fixe du dernier test. |
| `version` | integer | Version de la configuration, identique à l'`ETag` ; `0` signifie jamais configurée. |
| `updated_at` | string ou null | Date de la dernière modification. |

```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"
}
```

Configuration `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"
}
```

Configuration `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"
}
```

## Erreurs

| HTTP | code | Quand |
|---|---|---|
| 401 | `unauthenticated` | L'identifiant est absent, invalide ou révoqué. |
| 403 | `insufficient_permissions` | L'identifiant ne dispose pas de l'autorisation requise. |
| 429 | `rate_limited` | La limite de débit a été dépassée ; réessayez après la période `Retry-After`. |
| 503 | `service_unavailable` | Une dépendance est temporairement indisponible ; réessayez après la période `Retry-After`. |

## Exemple

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

CLI : `keenauth email-provider get`
