Aller au contenu
Docs

Guide pratique

Programmer et annuler des e-mails

Envoyez un e-mail plus tard avec scheduled_at, changez l’heure d’envoi, ou annulez un e-mail programmé, accepté ou en cours de nouvelle tentative, via l’API ou depuis le tableau de bord.

Mis à jour le 1 oct. 2026

Cette page explique comment programmer un e-mail pour plus tard avec l’API e-mail, comment le décaler à une autre heure et comment annuler un e-mail avant son départ. L’annulation fonctionne aussi pour les e-mails qui n’étaient pas programmés, tant qu’ils n’ont pas encore été livrés.

Programmer un e-mail

Ajoutez scheduled_at à une requête d’envoi. La réponse contient "status": "scheduled" et l’heure normalisée dans scheduled_at, et l’e-mail de chaque destinataire émet email.scheduled au lieu de email.accepted.

scheduled_at accepte ces formats :

Format Exemple Remarques
ISO 8601 avec fuseau horaire 2026-10-05T09:00:00Z, 2026-10-05T09:00:00+02:00 Recommandé. Incluez toujours Z ou un décalage.
Langage naturel tomorrow at 9am, in 2 hours, next monday 10:00, friday 5pm Interprété en UTC : tomorrow at 9am signifie 9 h 00 UTC.

Une heure égale à maintenant ou passée envoie l’e-mail immédiatement avec le statut accepted.

Terminal
curl https://api.emailit.com/v2/emails \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "from": "Acme <reminders@acme.com>",
    "to": "ada@example.com",
    "subject": "Your appointment is tomorrow",
    "text": "See you at 14:00.",
    "scheduled_at": "2026-10-05T09:00:00Z"
  }'

Emailit prépare un e-mail programmé au moment de la requête, pas à l’heure d’envoi. Le rendu du modèle est effectué, les pièces jointes par URL sont téléchargées et les crédits sont débités dès la requête. Pour modifier le contenu, annulez l’e-mail et envoyez-en un nouveau.

Changer l’heure d’envoi

Utilisez Mettre à jour un e-mail programmé (POST /emails/{id}) avec un nouveau scheduled_at. Les mêmes formats sont acceptés.

  • Le statut de l’e-mail doit être scheduled.
  • Son heure d’envoi actuelle doit être à plus de 3 minutes.
  • La nouvelle heure d’envoi doit se situer à plus de 3 minutes dans le futur.
Terminal
curl https://api.emailit.com/v2/emails/em_33VtK8mRq1xZp7LwN4cY2bHsDfa \
  -H "Authorization: Bearer $EMAILIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "scheduled_at": "2026-10-05T15:00:00Z" }'
JSON
{
  "object": "email",
  "id": "em_33VtK8mRq1xZp7LwN4cY2bHsDfa",
  "status": "scheduled",
  "scheduled_at": "2026-10-05T15:00:00.000Z",
  "updated_at": "2026-10-01T10:02:44.193027Z",
  "message": "Email schedule has been updated successfully"
}

Contrairement à un nouvel envoi, une heure illisible est ici rejetée avec 422 Invalid scheduled_at. Une requête qui enfreint la règle des 3 minutes, ou qui vise un e-mail non programmé, échoue avec 422 Cannot update email. Une requête avec plusieurs destinataires crée un e-mail par destinataire : reprogrammez donc chaque ID em_ de l’objet ids. La reprogrammation n’est pas disponible dans le tableau de bord.

Annuler un e-mail

Vous pouvez annuler un e-mail sortant tant qu’il a l’un de ces statuts :

Statut Annulation possible ? Remarques
scheduled Oui Uniquement tant que l’heure d’envoi est à plus de 3 minutes.
accepted Oui, au mieux L’e-mail attend dans la file d’envoi ou est sur le point d’en sortir.
attempted Oui, au mieux Une tentative de livraison a échoué temporairement. L’annulation arrête les nouvelles tentatives restantes.
Tout autre statut Non Les e-mails livrés, qui ont rebondi, en échec, rejetés, bloqués, retenus ou déjà annulés ne peuvent pas être annulés.
  1. Accédez à Email APIEmails.
  2. Sélectionnez Cancel delivery sur la ligne de l’e-mail, ou ouvrez l’e-mail et sélectionnez Cancel delivery en haut de la page.
  3. Confirmez. Si une tentative de livraison avait déjà commencé, le tableau de bord vous avertit que cette tentative peut encore aboutir et que les nouvelles tentatives restantes ont été arrêtées.

Quand in_flight vaut true, l’e-mail a été annulé mais une tentative de livraison est peut-être déjà en cours, et le message indique « The current delivery attempt may still complete; remaining retries were stopped. » Un statut qui ne peut pas être annulé, ou un e-mail programmé à moins de 3 minutes de son heure d’envoi, renvoie 422 Cannot cancel email.

L’annulation ne rembourse pas les crédits débités lors de l’envoi de l’e-mail via l’API.

Fonctionnement de l’annulation

L’annulation retire l’e-mail de la file d’envoi. Il ne s’agit pas d’un rappel depuis la boîte de réception du destinataire.

  1. Emailit vérifie que l’e-mail peut encore être annulé.
  2. Il passe le statut à canceled, ajoute une entrée « Canceled » à l’historique de livraison de l’e-mail et le retire de la file d’envoi.
  3. Si un processus de livraison a déjà pris l’e-mail en charge, il vérifie de nouveau le statut juste avant de remettre le message au serveur du destinataire et l’ignore s’il voit canceled.
  4. Emailit émet email.canceled avec le previous_status.

Si le message était déjà en route vers le serveur du destinataire, cette tentative peut encore réussir. Emailit conserve le statut canceled même si la tentative concurrente aboutit à une livraison ou à un rebond, mais le destinataire peut tout de même recevoir le message. Considérez l’annulation comme « arrêter l’e-mail avant son départ », et non comme « annuler l’envoi ».

Statuts et événements

Moment Statut Événement webhook
Requête avec un scheduled_at futur scheduled email.scheduled
L’heure d’envoi arrive delivered, attempted, bounced, etc. L’événement de livraison correspondant, comme email.delivered
Annulé canceled email.canceled, avec status et previous_status

Un e-mail programmé n’émet pas email.accepted quand son heure d’envoi arrive. Pour la liste complète, consultez Statuts des e-mails.

Cette page vous a-t-elle été utile ?

Merci pour votre retour.

Merci, nous lisons chaque message.