Envoyer un email
Envoyez des emails transactionnels individuels en utilisant le point de terminaison /v3/smtp/email.
Point de terminaison
POST /v3/smtp/emailCorps de la requête
Email simple
{ "sender": { "name": "Your App", }, "to": [ { "name": "John Doe" } ], "subject": "Welcome to our service!", "htmlContent": "<html><body><h1>Welcome!</h1><p>Thank you for signing up.</p></body></html>"}Email avancé
{ "sender": { "name": "Your App", }, "to": [ { "name": "John Doe" } ], "cc": [ { "name": "CC User" } ], "bcc": [ { } ], "subject": "Order Confirmation #{{order_id}}", "htmlContent": "<html><body><h1>Order Confirmed</h1><p>Your order {{order_id}} has been confirmed.</p></body></html>", "textContent": "Your order {{order_id}} has been confirmed.", "params": { "order_id": "12345" }, "tags": ["transactional", "order-confirmation"], "headers": { "X-Custom-Header": "custom-value" }}Exemples de code
JavaScript/Node.js
const brevo = require('@getbrevo/brevo');
const apiInstance = new brevo.TransactionalEmailsApi();apiInstance.setApiKey(brevo.TransactionalEmailsApiApiKeys.apiKey, process.env.BREVO_API_KEY);
const sendEmail = async () => { const sendSmtpEmail = new brevo.SendSmtpEmail();
sendSmtpEmail.subject = "Welcome to our service!"; sendSmtpEmail.htmlContent = "<html><body><h1>Welcome!</h1></body></html>";
try { const result = await apiInstance.sendTransacEmail(sendSmtpEmail); console.log('Email sent:', result); return result; } catch (error) { console.error('Error sending email:', error); throw error; }};Python
import sib_api_v3_sdkfrom sib_api_v3_sdk.rest import ApiException
configuration = sib_api_v3_sdk.Configuration()configuration.api_key['api-key'] = 'YOUR_API_KEY'
api_instance = sib_api_v3_sdk.TransactionalEmailsApi(sib_api_v3_sdk.ApiClient(configuration))
send_smtp_email = sib_api_v3_sdk.SendSmtpEmail( subject="Welcome to our service!", html_content="<html><body><h1>Welcome!</h1></body></html>")
try: api_response = api_instance.send_transac_email(send_smtp_email) print(api_response)except ApiException as e: print("Exception when calling TransactionalEmailsApi->send_transac_email: %s\n" % e)cURL
curl -X POST "https://api.brevo.com/v3/smtp/email" \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ -H "api-key: YOUR_API_KEY" \ -d '{ "sender": { "name": "Your App", "email": "[email protected]" }, "to": [ { "email": "[email protected]", "name": "John Doe" } ], "subject": "Welcome to our service!", "htmlContent": "<html><body><h1>Welcome!</h1></body></html>" }'Réponse
Réponse de succès (201 Created)
{}Réponses d’erreur
Clé API invalide (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Format d’email invalide (400)
{ "code": "invalid_parameter", "message": "Invalid email format in 'to' field"}Limite de débit dépassée (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded"}Paramètres
Paramètres requis
| Paramètre | Type | Description |
|---|---|---|
sender | object | Informations sur l’expéditeur |
to | array | Tableau d’objets destinataires |
subject | string | Objet de l’email |
Paramètres optionnels
| Paramètre | Type | Description |
|---|---|---|
htmlContent | string | Contenu HTML de l’email |
textContent | string | Contenu texte de l’email |
cc | array | Destinataires en copie |
bcc | array | Destinataires en copie cachée |
replyTo | object | Adresse de réponse |
attachments | array | Pièces jointes |
params | object | Paramètres de modèle |
tags | array | Tags de l’email pour le suivi |
headers | object | En-têtes personnalisés |
Variables de modèle
Utilisez des variables de modèle dans votre objet et contenu :
{ "subject": "Welcome {{firstName}}!", "htmlContent": "<h1>Hello {{firstName}} {{lastName}}</h1>", "params": { "firstName": "John", "lastName": "Doe" }}Pièces jointes
Incluez des pièces jointes :
{ "attachments": [ { "content": "base64_encoded_content", "name": "invoice.pdf" }, { "url": "https://example.com/document.pdf", "name": "document.pdf" } ]}Bonnes pratiques
- Incluez toujours les contenus HTML et texte pour une meilleure délivrabilité
- Utilisez des variables de modèle plutôt que la concaténation de contenu
- Fournissez des informations d’expéditeur correctes pour éviter les filtres anti-spam
- Ajoutez des tags pour le suivi et les analytics
- Validez les adresses email avant l’envoi
- Gérez les erreurs élégamment avec une logique de réessai
Limites de débit
- Limite de débit de l’API : sur le palier général, que tous les forfaits obtiennent, cet endpoint autorise 1 000 requêtes par seconde et 3 600 000 par heure. Le palier avancé (Professional et Enterprise) en autorise 2 000 par seconde, et le palier étendu (Enterprise) 6 000.
- Volume d’envoi : le nombre d’e-mails que vous pouvez envoyer dépend de votre forfait Brevo, indépendamment de la limite de débit.
Consultez Limites de débit et la page des limites de débit de Brevo.
Suivi
Les emails envoyés via ce point de terminaison sont automatiquement suivis pour :
- Statut de livraison
- Taux d’ouverture
- Suivi des clics
- Gestion des rebonds
Consultez les analytics détaillées dans votre tableau de bord Brevo sous Statistiques → Transactionnel.
Points de terminaison associés
- Modèles d’email
- Pièces jointes
- Statistiques email