Invia Email

Invia singole email transazionali utilizzando l’endpoint /v3/smtp/email.

Endpoint

POST /v3/smtp/email

Corpo della Richiesta

Email Base

{
"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><p>Grazie per esserti registrato.</p></body></html>"
}

Email Avanzata

{
"sender": {
"name": "La Tua App",
"email": "[email protected]"
},
"to": [
{
"email": "[email protected]",
"name": "John Doe"
}
],
"cc": [
{
"email": "[email protected]",
"name": "Utente CC"
}
],
"bcc": [
{
"email": "[email protected]"
}
],
"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>";
sendSmtpEmail.sender = { name: "La Tua App", email: "[email protected]" };
sendSmtpEmail.to = [{ email: "[email protected]", name: "John Doe" }];
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_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": "La Tua App", "email": "[email protected]"},
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

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": "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)

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

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

ParametroTipoDescrizione
senderoggettoInformazioni sul mittente
toarrayArray di oggetti destinatario
subjectstringaOggetto dell’email

Parametri Opzionali

ParametroTipoDescrizione
htmlContentstringaContenuto HTML dell’email
textContentstringaContenuto testo dell’email
ccarrayDestinatari CC
bccarrayDestinatari BCC
replyTooggettoIndirizzo di risposta
attachmentsarrayAllegati di file
paramsoggettoParametri template
tagsarrayTag email per il tracciamento
headersoggettoIntestazioni 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

  1. Includi sempre contenuto HTML e testo per una migliore recapitabilità
  2. Usa le variabili template invece di concatenare il contenuto
  3. Includi le informazioni corrette del mittente per evitare i filtri antispam
  4. Aggiungi tag per il tracciamento e l’analisi
  5. Convalida gli indirizzi email prima dell’invio
  6. 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 StatisticheTransazionale.

Endpoint Correlati

Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.

Inizia gratis con Brevo