Guide pratique
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.
- Les deux nécessitent le contenu du message d’origine. Emailit le supprime à la fin de votre période de conservation des données 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.
- Retenu faute de crédits : rechargez vos crédits.
- Retenu parce que le domaine était en pause : résolvez le problème de santé d’envoi.
- 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.
- 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.
- Accédez à Email APIEmails et ouvrez l’e-mail.
- 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.
- 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.
Appelez Relancer un e-mail (POST /emails/{id}/retry) avec l’ID de l’e-mail d’origine. La requête n’a pas de corps.
curl -X POST https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa/retry \
-H "Authorization: Bearer $EMAILIT_API_KEY"const retried = await emailit.emails.retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');retried = client.emails.retry("em_33VtK8mRq1xZp7LwN4cY2bHsDfa")$retried = $emailit->emails()->retry('em_33VtK8mRq1xZp7LwN4cY2bHsDfa');{
"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:.
tostring | string[]obligatoireto lors d’un envoi.include_headersbooleanpar défaut : falseFwd: dans l’objet.commentstringinclude_headers vaut true. body est accepté comme alias.htmlstringcomment échappé dans la partie HTML, quand include_headers vaut true.textstringcomment dans la partie texte, quand include_headers vaut true.fromstringsubjectstringFwd: 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 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é.
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.
- Accédez à Email APIEmails et ouvrez l’e-mail.
- Sélectionnez Forward.
- Saisissez le destinataire dans To.
- Facultatif : cochez Add forwarded headers and a comment et rédigez un Comment.
- Sélectionnez Forward. Le nouvel e-mail apparaît dans la liste avec son propre ID.
Appelez Transférer un e-mail (POST /emails/{id}/forward).
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?"
}'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?',
});forwarded = client.emails.forward("em_33VtK8mRq1xZp7LwN4cY2bHsDfa", {
"to": "support@acme.com",
"include_headers": True,
"comment": "Customer says this receipt never arrived. Can you check?",
})$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, 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é.