# Relancer et transférer des e-mails

> Renvoyez sous forme de nouvel e-mail un e-mail qui a rebondi, en échec, bloqué ou retenu, ou transférez un e-mail envoyé à un autre destinataire, depuis le tableau de bord ou via l’API.

La relance renvoie un e-mail avec le même contenu après qu’il a rebondi, échoué, été bloqué ou été retenu. Le transfert envoie une copie d’un e-mail déjà envoyé à quelqu’un d’autre, par exemple un collègue du support ou un client qui a perdu l’original. Les deux créent un nouvel e-mail avec son propre ID et laissent l’original inchangé.

## Avant de commencer

- Dans l’API, les deux endpoints fonctionnent avec les clés **Full Access** et **Sending Only**.
- Les deux sont facturés comme de nouveaux envois : il vous faut donc assez de [crédits](/fr/docs/billing/credits/).
- Les deux nécessitent le contenu du message d’origine. Emailit le supprime à la fin de votre période de [conservation des données](/fr/docs/data-retention/) pour le contenu des messages :

| | Pay as you go | Pro | Business | Custom |
| --- | --- | --- | --- | --- |
| Conservation du contenu des messages | 7 jours | 30 jours | 30 jours | Flexible |

## Relancer un e-mail

Un e-mail peut être relancé si toutes ces conditions sont réunies :

| Condition | Détails |
| --- | --- |
| Statut | `bounced`, `failed`, `suppressed` ou `held` |
| Ancienneté | Créé il y a moins de 30 jours |
| Contenu | Le contenu du message n’a pas été supprimé par la conservation des données |
| Domaine d’envoi | Le domaine d’envoi d’origine existe toujours dans l’espace de travail |

Une relance crée un **nouvel e-mail** avec un nouvel ID `em_` et un nouveau Message-ID. Elle réutilise le message brut, le destinataire, les métadonnées et les paramètres de suivi de l’original, et passe par la chaîne de livraison normale. Elle coûte 1 crédit, ou 2 crédits si l’original était un e-mail de campagne. Un espace de travail en mode bac à sable ne peut relancer que les e-mails adressés aux membres de l’espace de travail.

Corrigez la cause avant de relancer, sinon le nouvel e-mail finira avec le même statut :

- **Bloqué :** retirez d’abord l’adresse des [adresses bloquées](/fr/docs/suppressions/manage/).
- **Retenu faute de crédits :** rechargez vos [crédits](/fr/docs/billing/credits/).
- **Retenu parce que le domaine était en pause :** résolvez le problème de [santé d’envoi](/fr/docs/deliverability/sending-health/).
- **Retenu pour score de spam :** une relance envoie le même contenu et risque d’être retenue à nouveau. Modifiez plutôt le contenu et envoyez un nouvel e-mail. Consultez [Contrôles anti-spam](/fr/docs/deliverability/spam-checks/).
- **Rebondi :** consultez la raison du rebond sur la page de détail de l’e-mail. Une boîte aux lettres qui n’existe pas rebondira de nouveau. Si Emailit a ajouté l’adresse à vos adresses bloquées après le rebond, retirez-la d’abord.

**Tableau de bord**

  1. Accédez à **Email API → Emails** et ouvrez l’e-mail.
  2. Sélectionnez **Retry** en haut de la page. Le tableau de bord l’affiche pour les e-mails retenus et bloqués ; relancez les e-mails qui ont rebondi ou en échec via l’API.
  3. Sélectionnez de nouveau **Retry** dans la boîte de dialogue **Retry Email** pour confirmer. Le nouvel e-mail apparaît dans la liste avec son propre ID.

**API**

  Appelez [Relancer un e-mail](/fr/docs/api-reference/emails/retry/) (`POST /emails/{id}/retry`) avec l’ID de l’e-mail d’origine. La requête n’a pas de corps.

**cURL**

```bash
curl -X POST https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/retry \
  -H "Authorization: Bearer $EMAILIT_API_KEY"
```

**Node.js**

```javascript
const retried = await emailit.emails.retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');
```

**Python**

```python
retried = client.emails.retry("em_33VtK8mRq1xZp7LwN4cY2bHsDfa")
```

**PHP**

```php
$retried = $emailit->emails()->retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');
```

```json
{
  "object": "email",
  "id": "em_33Vu2LqPz8aKd4WnX6cR1tYbHgs",
  "original_id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
  "token": "33Vu2LqQ7mFt3XcV9bNp5KsRwEz",
  "message_id": "<33Vu2LqQ7mFt3XcV9bNp5KsRwEz@acme.com>",
  "from": "Acme <orders@acme.com>",
  "to": "ada@example.com",
  "subject": "Receipt for order 1042",
  "status": "accepted",
  "created_at": "2026-10-01T11:15:03.552918Z",
  "message": "Email has been queued for retry"
}
```

| Erreur | Cause |
| --- | --- |
| `404 Email not found` | L’ID n’existe pas dans cet espace de travail. |
| `422 Cannot retry email` | Le statut ne permet pas la relance, l’e-mail date de plus de 30 jours, son contenu a été supprimé ou son domaine d’envoi a été supprimé. Le `message` précise le cas. |
| `402 Insufficient credits` | L’espace de travail ne peut pas payer la relance. |
| `403 Workspace not verified` | L’espace de travail est en mode bac à sable et le destinataire n’est pas membre de l’espace de travail. |

## Transférer un e-mail

Le transfert envoie à un nouveau destinataire un e-mail sortant que vous avez déjà envoyé. Les e-mails entrants ne peuvent pas être transférés.

Par défaut, le transfert est un simple renvoi : le destinataire reçoit l’objet, le corps et les pièces jointes d’origine comme si l’e-mail lui avait été envoyé. Renseignez `include_headers` pour envoyer plutôt un transfert classique, avec un bloc « Forwarded message » (From, Date, Subject et To d’origine) précédé d’un commentaire facultatif. L’objet commence alors par `Fwd:`.

- `to` (string | string[], obligatoire): Les nouveaux destinataires, dans les mêmes formats que `to` lors d’un envoi.
- `include_headers` (boolean): Ajoute le bloc du message transféré, le commentaire facultatif et le préfixe `Fwd:` dans l’objet.
- `comment` (string): Une note en texte brut affichée au-dessus du message transféré quand `include_headers` vaut `true`. `body` est accepté comme alias.
- `html` (string): Une note HTML à utiliser à la place du `comment` échappé dans la partie HTML, quand `include_headers` vaut `true`.
- `text` (string): Une note en texte brut qui remplace `comment` dans la partie texte, quand `include_headers` vaut `true`.
- `from` (string): Envoie depuis une autre adresse. Par défaut : l’adresse d’expéditeur d’origine. Elle doit se trouver sur un domaine d’envoi vérifié.
- `subject` (string): Remplace l’objet. Par défaut : l’objet d’origine, ou `Fwd:` suivi de l’objet d’origine avec `include_headers`.

Un transfert est un nouvel envoi : il suit donc les mêmes règles que `POST /emails`. Les crédits par destinataire, les limites de débit d’envoi, les contrôles du domaine d’expéditeur et l’en-tête [`Idempotency-Key`](/fr/docs/email-api/idempotency/) s’appliquent tous. Le suivi respecte les paramètres du domaine d’envoi. Les en-têtes personnalisés et les métadonnées de l’original ne sont pas copiés, et les pièces jointes ne sont reprises que si leur type de fichier est [autorisé](/fr/docs/email-api/attachments/#allowed-file-types).

Chaque espace de travail peut effectuer **3 requêtes de transfert par heure**, transferts depuis le tableau de bord et via l’API confondus. Au-delà, l’API renvoie `429` avec `too_many_requests`.

**Tableau de bord**

  1. Accédez à **Email API → Emails** et ouvrez l’e-mail.
  2. Sélectionnez **Forward**.
  3. Saisissez le destinataire dans **To**.
  4. Facultatif : cochez **Add forwarded headers and a comment** et rédigez un **Comment**.
  5. Sélectionnez **Forward**. Le nouvel e-mail apparaît dans la liste avec son propre ID.

**API**

  Appelez [Transférer un e-mail](/fr/docs/api-reference/emails/forward/) (`POST /emails/{id}/forward`).

**cURL**

```bash
curl https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/forward \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "support@acme.com",
    "include_headers": true,
    "comment": "Customer says this receipt never arrived. Can you check?"
  }'
```

**Node.js**

```javascript
const forwarded = await emailit.emails.forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', {
  to: 'support@acme.com',
  include_headers: true,
  comment: 'Customer says this receipt never arrived. Can you check?',
});
```

**Python**

```python
forwarded = client.emails.forward("em_33VtK8mRq1xZp7LwN4cY2bHsDfa", {
    "to": "support@acme.com",
    "include_headers": True,
    "comment": "Customer says this receipt never arrived. Can you check?",
})
```

**PHP**

```php
$forwarded = $emailit->emails()->forward('em_33VtK8mRq1xZp7LwN4cY2bHsDfa', [
    'to' => 'support@acme.com',
    'include_headers' => true,
    'comment' => 'Customer says this receipt never arrived. Can you check?',
]);
```

La réponse est identique à une [réponse d’envoi](/fr/docs/email-api/send-email/#read-the-response), avec en plus `original_id` et le message « Email has been queued for forwarding ». Le transfert échoue avec `422 Cannot forward email` si l’original est un e-mail entrant ou si son contenu a été supprimé.

## Voir aussi

- [Relancer un e-mail](/fr/docs/api-reference/emails/retry/)
- [Transférer un e-mail](/fr/docs/api-reference/emails/forward/)
- [Statuts des e-mails](/fr/docs/logs/email-statuses/)
- [Détails d’un e-mail](/fr/docs/logs/email-details/)

---
Source: https://emailit.com/fr/docs/email-api/retry-and-forward/
