# Récupérer le code, les liens et les en-têtes d'un message · Facteur

> Chaque message reçu arrive avec son code à usage unique, ses liens et ses en-têtes déjà extraits, sans rien configurer.
> https://facteur.eu/fr/aide/extraction

Rechercher dans l'aide Ctrl K   Rechercher dans l'aide  



Tapez au moins deux caractères.

  

 

 #  Récupérer le code, les liens et les en-têtes d'un message 

 Chaque message reçu arrive avec son code à usage unique, ses liens et ses en-têtes déjà extraits, sans rien configurer.

 Mis à jour le 13 octobre 2026 

Un test n'a presque jamais besoin du corps d'un email. Il a besoin **d'une chose dans le corps** : un code à six chiffres, un lien de confirmation, un jeton. Nous l'extrayons à la réception, et vous la lisez dans un champ. Il n'y a rien à configurer.

## Les champs que vous obtenez

ChampCe qu'il porte`otp`Le code à usage unique que nous jugeons le plus probable, ou rien`codes`Tous les nombres de 4 à 8 chiffres isolés dans le message, le meilleur candidat en premier`links`Chaque lien du message, **déséchappé**, dans l'ordre d'apparition, la partie HTML d'abord`headers`Les en-têtes, en minuscules, dans la lecture d'un seul message`textBody` / `htmlBody`Les deux versions du corps, telles qu'envoyées, dans la lecture d'un seul message## Suivre un lien sans le déséchapper vous-même

Un lien écrit dans du HTML porte des entités : `&amp;` là où l'URL a un `&`. Un test qui suit un lien encore échappé demande au serveur une URL dont le second paramètre s'appelle `amp;next`. Il reçoit alors une page qui n'est pas celle qu'il attendait, et aucune erreur ne le signale.

Les liens que l'API renvoie sont déséchappés. Vous pouvez passer `message.links[0]` directement à `page.goto()` ou à `cy.visit()`.

## Quand `otp` est vide et `codes` est rempli

`otp` est le code qui suit de plus près un mot qui annonce un code (« code », « vérification », « confirmation », « one-time »...), dans les soixante caractères qui le précèdent. Sans mot annonceur, `otp` n'est renseigné que s'il n'y a qu'un seul candidat.

Quand le message contient plusieurs nombres et aucun mot annonceur, par exemple un numéro de commande et un autre numéro à six chiffres, nous laissons `otp` vide et nous mettons les candidats dans `codes`. Deviner lequel est le bon donnerait un test qui passe jusqu'au jour où le numéro de commande change de longueur.

Dans ce cas, désignez la valeur dans un vrai message et laissez la plateforme écrire le motif : c'est le sujet de [Pointeurs](/fr/aide/pointeurs).

## Corréler un message avec l'exécution qui l'a déclenché

Posez un en-tête dans l'email que votre application envoie (`X-Test-Id`, `X-Correlation-Id`), et retrouvez-le tel quel :

```js
<span class="hl-keyword">const</span> message = <span class="hl-keyword">await</span> <span class="hl-property">api</span>(`/v1/messages/${id}`);
<span class="hl-keyword">const</span> mine = message.<span class="hl-property">headers</span>[<span class="hl-value">'x-test-id'</span>] === executionId;

```

Lisez la clé **en minuscules**, toujours. Un en-tête est insensible à la casse sur le fil : comparer la clé telle que vous l'avez envoyée donne un test qui marche jusqu'au jour où votre bibliothèque d'envoi change de capitalisation.

## Limites connues

- **Nous ne devinons pas votre format.** Un identifiant maison ne ressemble à rien de connu. Utilisez un pointeur, voir [Pointeurs](/fr/aide/pointeurs).
- **Les codes sont des nombres de 4 à 8 chiffres.** Un code qui contient des lettres n'apparaît pas dans `codes`.
- **Nous ne lisons pas le contenu des pièces jointes.** Vous obtenez leur nom, leur taille et leur empreinte, voir [Lire depuis vos tests](/fr/aide/lire-un-message).
- **Rien n'est extrait d'un message refusé.** Quand une limite est atteinte, le message est enregistré avec le statut `quota_exceeded` et n'est pas analysé, voir [Quotas et rétention](/fr/aide/quotas-et-retention).
- **L'extraction a lieu après l'acquittement SMTP.** Un message existe donc pendant quelques millisecondes sans code ni liens. Lisez le champ `status` avant les champs extraits, voir [Lire depuis vos tests](/fr/aide/lire-un-message).

 

  Cet article ne répond pas à votre question ? Écrivez à l'équipe : elle saura de quel article vous venez.

 [ Écrire au support ](https://app.facteur.eu/support?article=extraction)
