Skip to Content
Référence APIEnvoi d'emails

API d’envoi d’emails

Envoyez des emails directement via Mailpulse avec suivi automatique des ouvertures et clics. Les emails sont envoyés depuis votre domaine d’envoi vérifié via l’infrastructure Resend.

Domaine d’envoi

Deux options s’offrent à vous pour l’adresse expéditeur :

  1. Domaine personnalisé (recommandé) — Ajoutez et vérifiez votre propre domaine dans Paramètres > Domaines d’envoi pour un contrôle total de votre branding.
  2. Domaine plateforme (fallback) — Si votre domaine from n’est pas vérifié, Mailpulse réécrit automatiquement l’expéditeur en @send.mailpulse-io.lyten.agency et définit reply-to vers votre adresse originale pour que les destinataires puissent vous répondre.

Par exemple, si vous envoyez depuis Newsletter <news@example.com> sans avoir vérifié example.com, l’email sera envoyé depuis Newsletter <news@send.mailpulse-io.lyten.agency> avec reply-to: news@example.com.

Envoyer un email

Endpoint

POST /api/send

Corps de la requête

ChampTypeRequisDescription
fromstringOuiAdresse expéditeur (ex: Votre Nom <vous@votredomaine.com>)
tostring | string[]OuiAdresse(s) du destinataire
subjectstringOuiObjet de l’email
htmlContentstringOuiContenu HTML de l’email
replyTostringNonAdresse de réponse
ccstring | string[]NonDestinataire(s) en copie
bccstring | string[]NonDestinataire(s) en copie cachée
campaignIdstringNonNom de campagne à associer
metadataobjectNonMétadonnées personnalisées

Exemple de requête

curl -X POST NEXT_PUBLIC_BASE_URL/api/send \ -H "x-api-key: your-api-key" \ -H "Content-Type: application/json" \ -d '{ "from": "Newsletter <news@votredomaine.com>", "to": "destinataire@example.com", "subject": "Bienvenue dans notre newsletter", "htmlContent": "<html><body><h1>Bonjour !</h1><a href=\"https://example.com\">Visitez-nous</a></body></html>", "campaignId": "serie-bienvenue", "metadata": { "userId": "123" } }'

Schéma de réponse

ChampTypeDescription
idstringID email Resend
emailTrackingIdstringID de suivi Mailpulse
fromstringAdresse expéditeur utilisée
tostring[]Adresses destinataires
subjectstringObjet de l’email
linksTrackedLink[]Liens suivis avec URLs originales et de tracking
pixelUrlstringURL du pixel de suivi d’ouverture

Exemple de réponse

{ "id": "re_abc123", "emailTrackingId": "hE4kJ9xP", "from": "Newsletter <news@votredomaine.com>", "to": ["destinataire@example.com"], "subject": "Bienvenue dans notre newsletter", "links": [ { "originalUrl": "https://example.com", "trackingId": "mN2pQ7", "trackingUrl": "https://mailpulse-io.lyten.agency/api/t/c/mN2pQ7" } ], "pixelUrl": "https://mailpulse-io.lyten.agency/api/t/o/hE4kJ9xP" }

Comment ça fonctionne

Quand vous appelez POST /api/send, Mailpulse :

  1. Vérifie si le domaine expéditeur est vérifié — sinon, utilise le domaine plateforme
  2. Extrait tous les liens du contenu HTML
  3. Crée les enregistrements de suivi pour l’email et chaque lien
  4. Réécrit tous les liens pour passer par les endpoints de tracking Mailpulse
  5. Injecte un pixel de suivi 1x1 pour la détection d’ouverture
  6. Envoie le HTML modifié via Resend
  7. Déclenche le webhook EMAIL_SENT si configuré

Toutes les ouvertures et clics sont ensuite suivis automatiquement.


Différence avec Register Email

POST /api/sendPOST /api/emails
Envoie l’emailOui (via Resend)Non (retourne le HTML modifié)
Nécessite un domaine d’envoiNon (fallback sur le domaine plateforme)Non
TrackingAutomatiqueVous injectez pixel/liens vous-même
Cas d’usageEnvoi + suivi en un appelSuivre des emails envoyés par un autre service

Utilisez /api/send quand vous voulez que Mailpulse gère l’envoi et le suivi. Utilisez /api/emails quand vous envoyez via votre propre fournisseur (Gmail, SendGrid, SMTP, etc.) et avez besoin uniquement du suivi.


Réponses d’erreur

StatutDescription
400 Bad RequestChamps requis manquants ou JSON invalide
401 UnauthorizedClé API invalide ou manquante
500 Internal Server ErrorÉchec de livraison de l’email
Last updated on
Mailpulse Documentation