Invia Email
Invia singole email transazionali utilizzando l’endpoint /v3/smtp/email.
Endpoint
POST /v3/smtp/emailCorpo della Richiesta
Email Base
{ "sender": { "name": "La Tua App", }, "to": [ { "name": "John Doe" } ], "subject": "Benvenuto nel nostro servizio!", "htmlContent": "<html><body><h1>Benvenuto!</h1><p>Grazie per esserti registrato.</p></body></html>"}Email Avanzata
{ "sender": { "name": "La Tua App", }, "to": [ { "name": "John Doe" } ], "cc": [ { "name": "Utente CC" } ], "bcc": [ { } ], "subject": "Conferma Ordine #{{order_id}}", "htmlContent": "<html><body><h1>Ordine Confermato</h1><p>Il tuo ordine {{order_id}} è stato confermato.</p></body></html>", "textContent": "Il tuo ordine {{order_id}} è stato confermato.", "params": { "order_id": "12345" }, "tags": ["transactional", "order-confirmation"], "headers": { "X-Custom-Header": "custom-value" }}Esempi di Codice
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 = "Benvenuto nel nostro servizio!"; sendSmtpEmail.htmlContent = "<html><body><h1>Benvenuto!</h1></body></html>";
try { const result = await apiInstance.sendTransacEmail(sendSmtpEmail); console.log('Email inviata:', result); return result; } catch (error) { console.error('Errore nell\'invio dell\'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="Benvenuto nel nostro servizio!", html_content="<html><body><h1>Benvenuto!</h1></body></html>")
try: api_response = api_instance.send_transac_email(send_smtp_email) print(api_response)except ApiException as e: print("Eccezione durante la chiamata a 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": "La Tua App", "email": "[email protected]" }, "to": [ { "email": "[email protected]", "name": "John Doe" } ], "subject": "Benvenuto nel nostro servizio!", "htmlContent": "<html><body><h1>Benvenuto!</h1></body></html>" }'Risposta
Risposta di Successo (201 Created)
{}Risposte di Errore
Chiave API non valida (401)
{ "code": "unauthorized", "message": "Invalid API key provided"}Formato email non valido (400)
{ "code": "invalid_parameter", "message": "Invalid email format in 'to' field"}Limite di frequenza superato (429)
{ "code": "too_many_requests", "message": "Rate limit exceeded"}Parametri
Parametri Obbligatori
| Parametro | Tipo | Descrizione |
|---|---|---|
sender | oggetto | Informazioni sul mittente |
to | array | Array di oggetti destinatario |
subject | stringa | Oggetto dell’email |
Parametri Opzionali
| Parametro | Tipo | Descrizione |
|---|---|---|
htmlContent | stringa | Contenuto HTML dell’email |
textContent | stringa | Contenuto testo dell’email |
cc | array | Destinatari CC |
bcc | array | Destinatari BCC |
replyTo | oggetto | Indirizzo di risposta |
attachments | array | Allegati di file |
params | oggetto | Parametri template |
tags | array | Tag email per il tracciamento |
headers | oggetto | Intestazioni personalizzate |
Variabili Template
Usa le variabili template nell’oggetto e nel contenuto:
{ "subject": "Benvenuto {{firstName}}!", "htmlContent": "<h1>Ciao {{firstName}} {{lastName}}</h1>", "params": { "firstName": "John", "lastName": "Doe" }}Allegati
Includi allegati di file:
{ "attachments": [ { "content": "base64_encoded_content", "name": "fattura.pdf" }, { "url": "https://example.com/documento.pdf", "name": "documento.pdf" } ]}Best Practice
- Includi sempre contenuto HTML e testo per una migliore recapitabilità
- Usa le variabili template invece di concatenare il contenuto
- Includi le informazioni corrette del mittente per evitare i filtri antispam
- Aggiungi tag per il tracciamento e l’analisi
- Convalida gli indirizzi email prima dell’invio
- Gestisci gli errori con eleganza con logica di retry
Limiti di Frequenza
- Account gratuiti: 300 email/giorno
- Account a pagamento: In base al tuo piano
- Limite burst: 100 email/minuto
Tracciamento
Le email inviate tramite questo endpoint vengono automaticamente tracciate per:
- Stato di consegna
- Tassi di apertura
- Tracciamento dei clic
- Gestione dei rimbalzi
Visualizza le analisi dettagliate nel tuo dashboard Brevo sotto Statistiche → Transazionale.