Envoyer un email

Envoyez des emails transactionnels individuels en utilisant le point de terminaison /v3/smtp/email.

Point de terminaison

POST /v3/smtp/email

Corps de la requête

Email simple

{
"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><p>Thank you for signing up.</p></body></html>"
}

Email avancé

{
"sender": {
"name": "Your App",
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]",
"name": "John Doe"
}
],
"cc": [
{
"email": "[email protected]",
"name": "CC User"
}
],
"bcc": [
{
"email": "[email protected]"
}
],
"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('@brevo/api');
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>";
sendSmtpEmail.sender = { name: "Your App", email: "[email protected]" };
sendSmtpEmail.to = [{ email: "[email protected]", name: "John Doe" }];
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_sdk
from 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(
to=[{"email": "[email protected]", "name": "John Doe"}],
sender={"name": "Your App", "email": "[email protected]"},
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

Terminal window
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)

{
"messageId": "<[email protected]>"
}

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ètreTypeDescription
senderobjectInformations sur l’expéditeur
toarrayTableau d’objets destinataires
subjectstringObjet de l’email

Paramètres optionnels

ParamètreTypeDescription
htmlContentstringContenu HTML de l’email
textContentstringContenu texte de l’email
ccarrayDestinataires en copie
bccarrayDestinataires en copie cachée
replyToobjectAdresse de réponse
attachmentsarrayPièces jointes
paramsobjectParamètres de modèle
tagsarrayTags de l’email pour le suivi
headersobjectEn-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

  1. Incluez toujours les contenus HTML et texte pour une meilleure délivrabilité
  2. Utilisez des variables de modèle plutôt que la concaténation de contenu
  3. Fournissez des informations d’expéditeur correctes pour éviter les filtres anti-spam
  4. Ajoutez des tags pour le suivi et les analytics
  5. Validez les adresses email avant l’envoi
  6. Gérez les erreurs élégamment avec une logique de réessai

Limites de débit

  • Comptes gratuits : 300 emails/jour
  • Comptes payants : Selon votre forfait
  • Limite burst : 100 emails/minute

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 StatistiquesTransactionnel.

Points de terminaison associés

Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.

Commencez gratuitement avec Brevo