# Courriels

Cette page dit ce que Bastide envoie aujourd'hui comme courriels pour votre projet, comment ces envois sont tenus (réessais, plafonds, rebonds), et ce qui n'existe pas encore : l'envoi de vos propres courriels transactionnels, le domaine d'envoi à vous, et les quotas mensuels par palier.

## Ce qui existe aujourd'hui

La plateforme envoie, pour votre projet, les **courriels d'authentification** de vos utilisateurs :

| Genre | Quand |
| --- | --- |
| Confirmation d'adresse | À l'inscription. |
| Inscription sur une adresse connue | Quelqu'un tente de s'inscrire avec une adresse déjà confirmée : la personne est prévenue, l'appelant n'apprend rien. |
| Réinitialisation du mot de passe | `resetPasswordForEmail`. |
| Changement d'adresse, ancienne et nouvelle | Les deux confirmations d'un changement d'adresse. |
| Connexion sans mot de passe | Le lien magique et le code à 6 chiffres, dans le même message. |

Le parcours et les liens sont décrits dans [Authentification](auth.md). Les gabarits sont ceux de la plateforme, en français, avec le nom de votre projet.

## Ce qui n'existe pas encore

- **L'envoi de vos propres courriels** (facture, notification, bulletin) par Bastide : aucune API, aucun outil et aucun relais SMTP n'est ouvert à votre application. Employez votre propre fournisseur depuis votre code ; la sortie réseau de votre projet doit alors le permettre (voir [Pare-feu](firewall.md)).
- **Un domaine d'envoi à vous.** Les courriels partent du relais et de l'adresse d'expédition de la plateforme ; vous ne réglez ni l'expéditeur, ni le domaine, ni ses enregistrements SPF ou DKIM.
- **Les gabarits personnalisés** par projet.
- **Les quotas mensuels par palier.** La grille annonce 1 000, 10 000, 50 000 et 200 000 courriels transactionnels par mois de Découverte à Souverain ; ces quotas ne sont pas encore appliqués, et rien n'est facturé au-delà. Seul le plafond horaire ci-dessous s'applique.

## Comment les envois sont tenus

### Les réessais

Un courriel est déposé dans une file, puis remis au relais. Un échec temporaire se réessaie selon un calendrier fixe : huit tentatives, la dernière 24 heures après la première.

| Après la tentative | Attente avant la suivante |
| --- | --- |
| 1 | 1 min |
| 2 | 4 min |
| 3 | 12 min |
| 4 | 36 min |
| 5 | 107 min |
| 6 | 320 min |
| 7 | 960 min |

Après la huitième, le courriel est abandonné. Un courriel encore en attente au bout de 48 heures est abandonné sans partir : un lien d'authentification si vieux n'ouvrirait plus rien. Un envoi peut, rarement, arriver deux fois ; le lien ne sert qu'une fois.

### Les plafonds

- **Par projet** : 100 courriels par heure au plus, par le relais commun. Au-delà, le courriel est inscrit au journal et ne part pas ; votre application n'en est pas avertie, parce qu'un parcours d'authentification ne dit jamais si un message est parti.
- **Par adresse** : 4 courriels par heure par défaut, réglable de 1 à 40 (voir [Authentification](auth.md)). Au-delà, l'appel reçoit 429, `debit_depasse`.

### Les rebonds et les plaintes

Un rebond dur ou une plainte **suspendent l'adresse** pour votre projet : tout envoi suivant à cette adresse est clos sans partir, motif `adresse_suspendue`. La suspension tombe d'elle-même 90 jours après le dernier rebond. Une panne du relais n'est jamais comptée comme un rebond.

### Ce que la plateforme garde

Le journal d'envoi est gardé 30 jours : genre, état, tentatives, réponse du relais (tronquée à 512 octets, adresse retirée), rebonds et plaintes revenus après la remise. **Ce qu'un courriel porte** (l'adresse, le jeton, le code) est scellé dès le dépôt et effacé dès que l'envoi est clos, remis ou non. La liste de suppression ne garde qu'une empreinte de l'adresse.

## Lire le journal d'envoi

- **Console** : l'écran **Authentification**, carte « Courriels d'authentification ».
- **Agent** : `auth_email_list` (rang `developer`, portée `db:read`), avec les filtres `state` (`pending`, `delivered`, `rejected`, `dead`) et `withReturns` (seulement les courriels revenus après la remise).
- **Ligne de commande** : `bastide auth_email list --project-id <projet> --state dead`.
- **API** : `GET /v1/projects/{projectId}/auth-emails`.

```json
{
  "projectId": "prj_01JQ8ZK4M7NP2RSTVWXYZ34567",
  "state": "rejected",
  "limit": 25
}
```

## Erreurs fréquentes

- **Un utilisateur ne reçoit rien** : cherchez son courriel au journal et lisez son motif. `adresse_suspendue` : l'adresse a rebondi ; elle se libère 90 jours après le dernier rebond. `sans_adresse_de_site` : réglez l'adresse du site du projet.
- **Beaucoup d'inscriptions sans courriel** : le plafond de 100 courriels par heure du projet est peut-être atteint, par exemple par des inscriptions automatisées ; abaissez les inscriptions par heure et par adresse IP.
- **429 `debit_depasse`** sur une demande de lien : la limite par adresse est atteinte.

## Voir aussi

- [Authentification](auth.md), [Pare-feu](firewall.md), [Notifications](notifications.md), [Limites par palier](limits.md)
- Référence : [auth_email.list](../reference/operations/auth_email.list.md)
