Référence

API HTTP

Référence complète de l’API HTTP locale, filtres et formats de réponse inclus.

L’API HTTP locale renvoie du JSON et est disponible sur http://localhost:8025 par défaut.

Conventions de requête

Les valeurs de requête doivent être encodées pour l’URL. Les requêtes de liste, de dernier message et d’attente acceptent ces filtres :

ParamètreSignification
toCorrespond à n'importe quelle adresse destinataire, sans tenir compte de la casse
subjectSous-chaîne du sujet, insensible à la casse
subjectPatternSource d'expression régulière JavaScript pour le sujet
subjectFlagsOptions utilisées avec subjectPattern
afterIdNe renvoyer que les messages reçus après ce message stocké

limit est pris en charge par la route de liste et doit être compris entre 1 et 100. timeoutMs est pris en charge par la route d’attente et doit être compris entre 1 et 60 000. Les erreurs renvoient { "error": "..." } avec un statut approprié.

État du service

GET/health

Renvoie les adresses SMTP et HTTP liées ainsi que le domaine destinataire.

{
  "ok": true,
  "api": { "host": "localhost", "port": 8025 },
  "smtp": { "host": "localhost", "port": 1025 },
  "domain": "local.test"
}

Lister les emails

GET/api/emails

Renvoie les messages correspondants dans l’ordre de réception. La réponse est { "emails": CapturedEmail[] }.

curl "http://localhost:8025/api/emails?to=signup%40local.test&limit=10"

Dernier email

GET/api/emails/latest

Renvoie { "email": CapturedEmail } pour le message correspondant le plus récent. Renvoie 404 quand aucune correspondance n’existe.

curl "http://localhost:8025/api/emails/latest?subject=verify"

Attendre un email

GET/api/emails/wait

Effectue une requête avec attente prolongée jusqu’à ce qu’un message correspondant soit disponible. L’attente par défaut est de 10 secondes et le maximum de 60 secondes. Renvoie { "email": CapturedEmail } en cas de succès ou 408 en cas d’expiration du délai.

curl "http://localhost:8025/api/emails/wait?to=signup%40local.test&timeoutMs=30000"

Récupérer par ID

GET/api/emails/:id

Renvoie { "email": CapturedEmail } pour un identifiant stocké, ou 404 quand il est absent.

Vider les emails

DELETE/api/emails

Supprime tous les messages stockés et renvoie { "deleted": number }. Ajoutez un paramètre to pour ne supprimer que les messages adressés à un destinataire.

curl -X DELETE "http://localhost:8025/api/emails?to=signup%40local.test"