API d’envoi d’e-mails
Envoyez depuis votre code, une seule fois.
Un appel envoie un message ou un lot de cent. Chaque envoi a un identifiant avant de partir, et une nouvelle tentative rejoue le résultat au lieu de renvoyer.
En bref
Qu’est-ce qu’une API d’e-mails transactionnels ?
C’est ainsi qu’une app envoie son propre courrier, comme des reçus, des liens de connexion et des alertes, par une requête HTTP plutôt que par quelqu’un qui clique sur Envoyer.
100
messages dans un appel groupé
365
jours d’avance possibles pour planifier un envoi
900
secondes pour annuler un envoi immédiat
Comment ça marche
Un lot qui n’est jamais tout ou rien
Jusqu’à 100 messages par appel, chacun vérifié à part. Une mauvaise adresse fait échouer cet élément, et le reste part quand même.
Maintenant, plus tard ou avec un délai d’annulation
Planifiez jusqu’à un an à l’avance, ou retenez un envoi immédiat jusqu’à 15 minutes. Annulez ou replanifiez tant qu’il n’est pas parti.
Une trace pour chaque message
Chaque envoi reçoit tout de suite un identifiant msg_. Lisez son statut, les événements de chaque destinataire, ses ouvertures et ses clics.
Envoyer un lot
Le SDK TypeScript, ou le même JSON en HTTP tout simple.
import { init, openemail } from '@openemail/sdk' init({ apiKey: process.env.OPENEMAIL_API_KEY }) const result = await openemail.emails.sendBatch( [ { from: '[email protected]', to: '[email protected]', subject: 'Order AC-4192 has shipped', text: 'It is on its way.' }, { from: '[email protected]', to: '[email protected]', subject: 'Order AC-4193 has shipped', text: 'It is on its way.' }, ], { idempotencyKey: 'shipments:2026-09-23' },) console.log(result.sent, result.failed)Ce que vous obtenez
Déjà dans le produit
Modèles par identifiant
Envoyez un modèle enregistré et figez la version que vous avez testée.
Dans leur langue
Ajoutez translate et chaque destinataire le lit dans la sienne, ou rien n’est envoyé.
Au format Resend aussi
Pointez le SDK Resend vers /compat/resend et gardez votre code.
Bonnes pratiques
En tirer le meilleur parti
- 01
Dérivez la clé d’idempotence
Partez de ce qui a causé l’envoi, comme un numéro de commande, jamais d’un horodatage.
- 02
Lisez le statut
202 veut dire en file ou planifié. Vérifiez status avant de le dire livré.
- 03
Étiquetez vos envois
Jusqu’à 10 tags par message, renvoyés à chaque lecture.
Où en est-on
Bon à savoir
- Pas de mode test
- Toutes les clés sont réelles, donc chaque envoi est vraiment livré.
- Pas de statut de rebond sur un envoi
- Un rebond arrive dans le fil et dans le webhook email.bounced, pas dans GET /emails.
- Les envois de l’éditeur n’y figurent pas
- Le courrier envoyé depuis l’app n’apparaît pas dans GET /emails.
Questions
On nous demande souvent
Pour aller plus loin
Fonctionne bien avec
Commencer
Votre domaine,
votre courrier.
Pointez un domaine vers OpenEmail et lisez son courrier dans une boîte mail pensée pour lui. Le forfait gratuit couvre un domaine.