# Pourquoi le courrier arrive mal

Un seul appel répond à la question, avec les constats et les actions qui les corrigent :

```
GET /api/v1/deliverability/diagnose
```

En MCP : `vaemail_diagnose_deliverability`. En ligne de commande : `vaemail doctor`.

## Ce que rend le diagnostic

- `status` : `ok`, `warning` ou `critical`. Un verdict lisible sans interpréter le détail.
- `authentication` : pour chaque domaine déclaré, l'état réel de SPF, DKIM et DMARC, lu
  dans le DNS public au moment de l'appel.
- `issues` : les constats de réputation, du plus grave au moins grave, avec leur cause en
  clair et les actions disponibles.
- `recommended_actions` : ce qu'il faut faire, avec l'endpoint qui le réalise.
- `by_domain` : les taux de remise par domaine destinataire, utile pour repérer un
  fournisseur qui filtre.

## Les deux causes les plus fréquentes

**Le domaine n'est pas authentifié.** C'est visible dans `authentication`, et c'est
toujours la première chose à regarder. Voir [Domaines](domains.md).

**La liste est usée.** Des adresses qui n'existent plus font monter le taux de rebonds
durs, et un taux élevé abîme la réputation du domaine pour tous les envois suivants, y
compris transactionnels. Le diagnostic distingue deux choses qu'on confond souvent :

- un **rebond dur** est de l'usure de liste. L'adresse n'existe plus. Elle est déjà
  bloquée et ne repartira pas, mais tant qu'elle reste dans les listes, chaque nouvel
  import la remet en circulation.
- une **plainte** met en cause le contenu ou la provenance des contacts. C'est le signal
  le plus lourd pour un fournisseur de messagerie. Il faut comprendre d'où viennent ces
  contacts avant de renvoyer.

## Les adresses sorties du circuit

```
GET /api/v1/suppressions
```

Toute adresse listée là est refusée à l'envoi. Un programme qui ne lit pas cette liste
réessaie indéfiniment une adresse morte et fait monter son propre taux de rebonds.

Raisons possibles : `hard_bounce`, `soft_bounce_limit`, `complaint`, `unsubscribe`,
`manual`.

## Avant d'envoyer

`POST /api/v1/messages/validate` dit si un envoi passerait, y compris le fait que le
destinataire est sur la liste de suppression, sans rien envoyer ni rien consommer.
