Mailjet: Guida tecnica completa per l'email transazionale nel 2026
Di CaptainDNS
Pubblicato il 20 gennaio 2026

- Mailjet (Sinch) gestisce oltre 300 miliardi di email/anno con un'API v3.1 moderna limitata a 50 messaggi per chiamata.
- DKIM obbligatorio: selettore
mailjet, chiavi da 2048 bit di default da aprile 2024, 4096 bit disponibile. - L'allineamento SPF fallisce di default (Return-Path su dominio Mailjet): affidatevi solo al DKIM per DMARC.
- IP dedicato incluso a partire dal piano Premium 100k (95$/mese) con warm-up di 2-6 settimane obbligatorio.
- Piano Free: 6.000 email/mese ma limitato a 200/giorno, ideale per dev/staging.
Introduzione
Mailjet si è affermato come un attore principale dell'email transazionale in Europa, fondato nel 2010 a Nantes prima di essere acquisito da Sinch nel dicembre 2021 per 1,9 miliardi di dollari. Oggi, la piattaforma gestisce più di 300 miliardi di email all'anno e serve oltre 100.000 clienti paganti in più di 150 paesi.
Ma dietro l'interfaccia marketing e l'editor drag-and-drop si nascondono sottigliezze tecniche critiche: differenze tra API v3 e v3.1, configurazione DKIM con scelta della dimensione della chiave, allineamento DMARC che fallisce di default in SPF, limiti rigorosi del piano Free (solo 200 email/giorno) e vincoli di IP dedicato con warm-up obbligatorio.
Questa guida è rivolta a sviluppatori, DevOps e amministratori di sistema che integrano Mailjet per l'email transazionale. Descriviamo in dettaglio i punti bloccanti, le configurazioni critiche e le scelte tecniche in base al vostro stack e ai vostri volumi.
Mailjet nell'ecosistema Sinch
Storia e acquisizioni
Mailjet è stata fondata nel 2010 a Nantes da Wilfried Durand e Julien Tartarin tramite eFounders (oggi Hexa). La traiettoria delle acquisizioni:
| Data | Evento |
|---|---|
| Febbraio 2011 | Lancio pubblico |
| Ottobre 2019 | Acquisizione da parte di Mailgun (Thoma Bravo) |
| Dicembre 2021 | Acquisizione da parte di Sinch per 1,9 Mld$ |
| 2025 | Oltre 300 miliardi di email/anno |
Posizionamento vs Mailgun
All'interno dell'ecosistema Sinch, la differenziazione è chiara:
| Piattaforma | Target | Punto di forza |
|---|---|---|
| Sinch Mailjet | Marketer, PMI | Interfaccia intuitiva, editor collaborativo |
| Sinch Mailgun | Sviluppatori | API-first, oltre 20 API, SDK avanzati |
| Sinch Email on Acid | QA email | Test e anteprima cross-client |
Dato chiave: durante il Black Friday 2025, Mailjet e Mailgun hanno consegnato 20,4 miliardi di email a novembre (+32% YoY).
API REST: v3 vs v3.1
Mailjet offre due versioni della sua Send API. La v3.1 è consigliata per i nuovi progetti.

Differenze chiave
| Caratteristica | v3 | v3.1 (consigliata) |
|---|---|---|
| Endpoint | POST /v3/send | POST /v3.1/send |
| Struttura payload | Array Recipients | Array Messages obbligatorio |
| Naming proprietà | Trattini (Html-part) | CamelCase (HTMLPart) |
| Messaggi per chiamata | 100 | 50 |
| Variabili | Vars | Variables |
| Template | Mj-TemplateID | TemplateID |
| Risposta | Stato semplice | Dettagliata con MessageUUID, MessageHref |
Struttura richiesta v3.1
{
"Messages": [{
"From": {"Email": "sender@captaindns.com", "Name": "Mittente"},
"To": [{"Email": "dest@captaindns.com", "Name": "Destinatario"}],
"Subject": "Conferma ordine {{var:order_id}}",
"HTMLPart": "<h1>Grazie {{var:firstname}}</h1>",
"Variables": {"firstname": "Marco", "order_id": "12345"},
"TemplateID": 12345,
"TemplateLanguage": true
}]
}
Autenticazione API
L'autenticazione utilizza Basic Auth con:
- Username: API Key (pubblica)
- Password: Secret Key (privata)
curl -X POST https://api.mailjet.com/v3.1/send \
-u "$API_KEY:$SECRET_KEY" \
-H "Content-Type: application/json" \
-d '{"Messages": [...]}'
Raccomandazione: rinnovare la Secret Key ogni 90 giorni.
SDK ufficiali
| Linguaggio | Package | Installazione |
|---|---|---|
| PHP | mailjet-apiv3-php | composer require mailjet/mailjet-apiv3-php |
| Node.js | node-mailjet | npm install node-mailjet |
| Python | mailjet-rest | pip install mailjet-rest |
| Go | mailjet-apiv3-go | go get github.com/mailjet/mailjet-apiv3-go/v4 |
| Java | mailjet-client | Maven com.mailjet:mailjet-client:6.0.0 |
| Ruby | mailjet-gem | gem install mailjet |
| C#/.NET | Mailjet.Api | NuGet Mailjet.Api |
Limitazione importante: Mailjet non supporta il parametro send_at per le email transazionali. La programmazione è disponibile solo per le campagne marketing tramite /campaigndraft.
SMTP Relay
L'SMTP relay rimane rilevante per le infrastrutture esistenti e i CMS legacy.
Configurazione
Server SMTP: in-v3.mailjet.com
Porte: 25 (STARTTLS), 465 (SSL/TLS), 587 (consigliata), 2525 (alternativa)
Username: [API Key]
Password: [Secret Key]
Crittografia: TLS supportato su tutte le porte
Header X-Mailjet-* per funzionalità avanzate
| Header | Utilizzo |
|---|---|
X-MJ-CustomID | Identificatore personalizzato per tracking |
X-MJ-EventPayload | Payload restituito nei webhook |
X-MJ-Campaign | Raggruppamento di messaggi |
X-MJ-TemplateID | ID del template Mailjet |
X-MJ-TemplateLanguage | Attiva il motore di template (true) |
X-MJ-Vars | Variabili JSON per personalizzazione |
X-MJ-TrackOpen / X-MJ-TrackClick | Override tracking (0/1) |
SMTP vs API: quando scegliere cosa?
Preferite SMTP se:
- Infrastruttura esistente (Postfix, Sendmail)
- CMS senza SDK (WordPress legacy, Drupal)
- Sistemi senza capacità HTTP nativa
Preferite API se:
- Nuovi sviluppi
- Necessità di risposte immediate (MessageUUID)
- Personalizzazione avanzata (template, variabili)
- Gestione fine degli errori
Configurazione DKIM: il punto critico
Perché DKIM è obbligatorio
Dai requisiti Gmail/Yahoo di febbraio 2024, l'autenticazione DKIM è indispensabile. Senza DKIM configurato, le vostre email rischiano lo spam o il rifiuto.

Processo di configurazione
- Account Settings → Domains & Sender addresses → SPF/DKIM Authentication
- Aggiungere il dominio se non elencato
- Cliccare su Setup SPF/DKIM Authentication
- Copiare i valori DKIM forniti
- Creare il record TXT nel vostro DNS
- Cliccare su Refresh per verificare
Parametri DKIM Mailjet
| Parametro | Valore |
|---|---|
| Selettore | mailjet |
| Hostname DNS | mailjet._domainkey.captaindns.com |
| Tipo | TXT (non CNAME) |
Dimensioni chiavi disponibili
| Dimensione | Stato | Raccomandazione |
|---|---|---|
| 1024 bit | Legacy | Compatibilità massima |
| 2048 bit | Default da aprile 2024 | Consigliato |
| 4096 bit | Disponibile (nuovi account) | Sicurezza massima |
Esempio di record DKIM:
Type: TXT
Host: mailjet._domainkey
Value: k=rsa; p=MIGfMA0GCSqGSIb3DQEBA...[chiave pubblica]...QIDAQAB
TTL: 300
Rotazione delle chiavi: disponibile tramite Account → Domains → Regenerate Key. Richiede aggiornamento DNS dopo la rigenerazione.
Allineamento SPF, DKIM e DMARC
Il problema dell'allineamento SPF
Di default, Mailjet utilizza il proprio dominio per il Return-Path (bnc3.mailjet.com). Conseguenza: l'allineamento SPF fallisce sistematicamente per DMARC.

Come funziona DMARC con Mailjet
| Metodo | Dominio autenticato | Dominio From | Allineamento? | Risultato DMARC |
|---|---|---|---|---|
| SPF | mailjet.com (Return-Path) | captaindns.com | No | Non contribuisce |
| DKIM | captaindns.com (firma d=) | captaindns.com | Sì | DMARC passa |
Strategia: affidarsi al solo DKIM per la conformità DMARC. Un solo meccanismo allineato è sufficiente.
Attivare l'allineamento SPF (opzionale, account a pagamento)
Se desiderate l'allineamento SPF (doppia validazione DMARC):
- Creare un CNAME:
bnc3.captaindns.com CNAME bnc3.mailjet.com - Inviare un ticket al supporto Mailjet con screenshot DNS e API key
- Mailjet attiva il Return-Path personalizzato (limitato a uno per API key)
Nota: questa configurazione è riservata agli account a pagamento e richiede l'intervento del supporto.
Configurazione DMARC consigliata
# Fase 1 - Monitoraggio
_dmarc TXT "v=DMARC1; p=none; rua=mailto:dmarc@captaindns.com"
# Fase 2 - Quarantena
_dmarc TXT "v=DMARC1; p=quarantine; pct=100; rua=mailto:dmarc@captaindns.com"
# Fase 3 - Rifiuto
_dmarc TXT "v=DMARC1; p=reject; pct=100; rua=mailto:dmarc@captaindns.com"
IP dedicato vs condiviso
Soglie per IP dedicato
| Criterio | Soglia |
|---|---|
| Minimo assoluto | 100.000 email/mese |
| Raccomandazione ISP | 150.000 email/mese + 5.000/giorno |
| Incluso gratuitamente | Piani Premium 100k+ e Custom |
Processo di warm-up
Un IP dedicato nuovo richiede un warm-up obbligatorio:
| Parametro | Valore |
|---|---|
| Tipo | Manuale, guidato dal team deliverability Mailjet |
| Inizio | ~300 email giorno 1 |
| Progressione | +20% al giorno |
| Durata | 2-6 settimane a seconda del volume e dell'engagement |
| Contatto | Supporto/sales obbligatorio (niente self-service) |
Quando restare su IP condiviso?
Restate su IP condiviso se:
- Volume inferiore a 100.000 email/mese
- Invii irregolari o sporadici
- Transazionale puro a basso volume
- Nessuna risorsa per gestire il warm-up
Passate a IP dedicato se:
- Volume regolare superiore a 150.000 email/mese
- Necessità di separare traffico marketing e transazionale
- Requisiti di whitelisting o conformità
- Risorse per monitorare la reputazione
Tariffazione 2025
Piani disponibili
| Piano | Prezzo/mese | Email/mese | Email/giorno | IP dedicato |
|---|---|---|---|---|
| Free | 0$ | 6.000 | 200 | No |
| Essential 15k | 17$ | 15.000 | Illimitato | No |
| Premium 15k | 27$ | 15.000 | Illimitato | No |
| Premium 100k | 95$ | 100.000 | Illimitato | Incluso |
| Premium 500k | 470$ | 500.000 | Illimitato | Incluso |
| Custom | Preventivo | Personalizzato | Illimitato | Incluso |
Sconto annuale: 10% su tutti i piani.
Funzionalità per piano
| Funzionalità | Free | Essential | Premium |
|---|---|---|---|
| API, SMTP, Webhook | Sì | Sì | Sì |
| Logo Mailjet | Presente | Rimosso | Rimosso |
| Segmentazione | No | Sì | Sì |
| Automation | No | No | Sì |
| A/B Testing | No | No | Sì (10 versioni) |
| Multi-utente | No | No | Sì |
| IP dedicato | No | No | Sì (100k+) |
| SSO | No | No | Sì (100k+) |
Costi aggiuntivi
- Overage: 2,24$/1000 (fasce basse), 1,04$/1000 (fasce alte)
- Validazione email: 500/mese (Essential), 2.000/mese (Premium 100k+)
- Sconto nonprofit: 20% sui piani mensili
- Nessun riporto crediti: le email non utilizzate scadono alla fine del ciclo
Limiti tecnici
Rate limit
| Elemento | Limite |
|---|---|
| Account Test Mode | 10 email/ora |
| Piano Free | 200 email/giorno |
| API SMS | 6 richieste/secondo |
| IP dedicato | ~100.000 email/ora |
| Messaggi v3 per chiamata | 100 |
| Messaggi v3.1 per chiamata | 50 |
Throttling: codice HTTP 429 Too Many Requests con errore MJ-002: Exceeded API Rate Limit.
Quote piattaforma
| Elemento | Limite |
|---|---|
| Dimensione email massima | 15 MB |
| Destinatari per chiamata (v3) | 50 |
| Oggetti messaggio per payload (v3.1) | 100 |
| Dimensione HTML (prima del clipping Gmail) | 102 KB |
| Upload immagine | 2 MB (consigliato meno di 200 KB) |
| Contatti piano Free | 1.000 |
Gestione dei bounce
| Tipo | Comportamento Mailjet |
|---|---|
| Hard bounce | Blocco automatico 90 giorni |
| Soft bounce | Retry per 24h poi marcato soft-bounced |
| Spam complaint | Blocco sistematico tramite FBL |
| Unsubscribe | Rimozione automatica dalle liste |
Webhook e Event API
Eventi disponibili
| Evento | Descrizione |
|---|---|
sent | Email accettata dal server SMTP di destinazione |
delivered | Consegna confermata |
open | Apertura rilevata |
click | Clic su link |
bounce | Rimbalzo (hard o soft) |
blocked | Pre-bloccato da Mailjet |
spam | Marcato come spam |
unsub | Disiscrizione |
Configurazione webhook
POST /v3/REST/eventcallbackurl
{
"EventType": "open",
"Url": "https://captaindns.com/webhook",
"Version": 2
}
Logica di retry: tentativi ogni 30 secondi per 24h se non-200. URL sospeso dopo fallimenti ripetuti.
Sicurezza: HTTPS con Basic Auth consigliato (https://user:pass@captaindns.com/webhook).
Template Language
Mailjet utilizza una sintassi tipo Jinja2/Twig:
Variabili
Mailjet propone quattro tipi di variabili:
- Variabile API: sintassi
var:nameper i dati passati tramite l'API - Valore predefinito: sintassi
var:name:"default"se la variabile è assente - Dato contatto: sintassi
data:propertyper le proprietà persistenti del contatto - Variabile predefinita: sintassi
mj:contact.emailper i dati di sistema
Condizionali e cicli
Condizionale:
{% if var:totalorders > "5" %}
Codice promo VIP: -10%
{% else %}
Benvenuto nuovo cliente!
{% endif %}
Ciclo:
{% for item in var:products %}
Prodotto: item.name - item.price EUR
{% endfor %}
Conformità e certificazioni
| Certificazione | Stato |
|---|---|
| ISO 27001 | Sì (primo ESP puro certificato, 2017) |
| ISO 27701 | Sì (estensione privacy) |
| SOC 2 Type II | Sì (~400 controlli) |
| PCI DSS | Sì |
| HIPAA | Su richiesta |
| GDPR | Prima azienda certificata AFAQ RGPD (2018) |
Dati: archiviazione esclusiva nell'UE (Google Cloud Platform).
Sicurezza account:
- Autenticazione a due fattori (2FA) tramite app TOTP (Google Authenticator, Authy)
- SSO e SAML su piani Premium 100k+ (Okta, Azure AD, Auth0)
- Login Challenge per IP sconosciuti (da marzo 2024)
Piano d'azione: avvio in 7 passaggi
1. Creare l'account e generare le credenziali
- Creare un account Mailjet (Free possibile)
- Generare API Key + Secret Key in Account Settings → API Key Management
- Annotare entrambe: API Key (pubblica) e Secret Key (privata, da proteggere)
2. Aggiungere e validare il sender
- Creare un sender in Account Settings → Senders & Domains
- Validare l'indirizzo tramite il link ricevuto via email
3. Configurare DKIM (obbligatorio)
- Andare in Domains & Sender addresses → SPF/DKIM Authentication
- Copiare i valori DKIM generati da Mailjet
- Creare il record TXT presso il vostro registrar:
- Nome:
mailjet._domainkey - Valore: la chiave pubblica fornita
- Nome:
- Attendere la propagazione (24-48h max)
- Cliccare su Refresh per verificare
4. Configurare SPF (opzionale)
Se desiderate l'include SPF:
v=spf1 include:spf.mailjet.com ~all
Nota: l'include SPF da solo non è sufficiente per l'allineamento DMARC (vedi sezione allineamento).
5. Scegliere il metodo di invio
Opzione A: API REST v3.1
- Implementare l'endpoint
POST /v3.1/send - Utilizzare gli SDK se disponibili nel vostro stack
- Creare template in Templates se necessario
Opzione B: SMTP relay
- Configurare la vostra app con:
- Host:
in-v3.mailjet.com - Porta:
587(STARTTLS) - User: API Key
- Password: Secret Key
- Host:
6. Configurare i webhook
- Account Settings → Event tracking (Webhooks)
- Creare endpoint per:
delivered,bounced,opened,clicked,spam - Proteggere con HTTPS + Basic Auth
7. Testare e monitorare
- Inviare un'email di test
- Verificare in Stats che l'invio sia OK
- Verificare gli header dell'email ricevuta (DKIM pass, dominio From corretto)
- Monitorare la dashboard per le metriche
FAQ
Qual è la differenza tra API v3 e v3.1?
La v3.1 utilizza nomi di proprietà in CamelCase (HTMLPart) vs trattini (Html-part), limita i messaggi a 50 per chiamata (vs 100), e restituisce risposte più dettagliate con MessageUUID e MessageHref. La v3.1 è consigliata per i nuovi progetti.
Perché l'allineamento SPF fallisce con Mailjet?
Mailjet utilizza il proprio dominio per il Return-Path (bnc3.mailjet.com). DMARC verifica l'allineamento tra il dominio autenticato da SPF e il dominio From. Poiché questi domini differiscono, SPF non contribuisce a DMARC. Soluzione: affidarsi al solo DKIM, che passa in allineamento.
Devo aggiungere include:spf.mailjet.com nel mio SPF?
Non è obbligatorio e non cambia nulla per l'allineamento DMARC. L'include SPF può essere utile per la validazione SPF di base, ma il solo DKIM è sufficiente per passare DMARC con Mailjet. L'allineamento SPF è possibile solo con un Return-Path personalizzato (account a pagamento, supporto richiesto).
Il piano Free è sufficiente per un'app in produzione?
Sì, se il vostro volume è inferiore o uguale a 200 email/giorno (attenzione: il piano Free offre 6.000/mese ma limitato a 200/giorno). Tutte le funzionalità transazionali (API, SMTP, webhook) sono disponibili. Ideale per MVP, staging o app a volume molto basso.
Quale dimensione di chiave DKIM scegliere?
2048 bit è il default da aprile 2024 e va bene per la maggior parte dei casi. 4096 bit è disponibile per i nuovi account se desiderate la sicurezza massima. 1024 bit è legacy e sconsigliato salvo vincoli di compatibilità specifici.
Quando ho bisogno di un IP dedicato?
Se inviate più di 100.000 email/mese in modo regolare, se avete bisogno di isolare la reputazione del vostro traffico transazionale, o se avete requisiti di whitelisting. L'IP dedicato è incluso nei piani Premium 100k+ e richiede un warm-up di 2-6 settimane.
Come funziona il warm-up di un IP dedicato?
Il warm-up è un processo manuale guidato dal team Mailjet. Inizia con circa 300 email/giorno e aumenta del 20% al giorno per 2-6 settimane. Bisogna inviare quotidianamente per stabilire la reputazione. Contatto supporto/sales obbligatorio per l'attivazione.
Posso programmare l'invio di email transazionali a un'ora precisa?
No, Mailjet non supporta il parametro send_at per le email transazionali tramite Send API. La programmazione è disponibile solo per le campagne marketing tramite l'endpoint /campaigndraft. Per il transazionale, dovete gestire la programmazione lato applicazione.
Glossario
-
SPF (Sender Policy Framework): Protocollo di autenticazione che elenca i server autorizzati a inviare email per un dominio. SPF autentica il dominio del Return-Path. Con Mailjet, l'include è
spf.mailjet.com. -
DKIM (DomainKeys Identified Mail): Protocollo di autenticazione che firma crittograficamente le email. Mailjet utilizza il selettore
mailjete propone chiavi da 1024 a 4096 bit. -
DMARC (Domain-based Message Authentication, Reporting & Conformance): Protocollo che verifica l'allineamento tra SPF/DKIM e l'header From. Con Mailjet, solo DKIM passa in allineamento di default.
-
Return-Path (Envelope From): Indirizzo tecnico utilizzato per instradare l'email e gestire i bounce. Con Mailjet, è
bnc3.mailjet.comdi default, il che impedisce l'allineamento SPF. -
Allineamento DMARC: Verifica che il dominio autenticato (SPF o DKIM) corrisponda al dominio From. La modalità relaxed (default) accetta i sottodomini.
-
API Key: Identificatore pubblico Mailjet utilizzato come username per l'autenticazione API e SMTP.
-
Secret Key: Chiave privata Mailjet utilizzata come password. Da rinnovare ogni 90 giorni.
-
Send API: Endpoint di invio email Mailjet. Versione v3.1 consigliata (
POST /v3.1/send). -
Rate limit: Limite di frequenza. Codice HTTP 429 in caso di superamento. Messaggi v3.1 limitati a 50 per chiamata.
-
Warm-up: Processo di incremento progressivo del carico di un IP dedicato. 2-6 settimane con Mailjet.
-
Webhook: URL HTTP chiamato da Mailjet in caso di eventi (delivered, bounced, ecc.). Retry per 24h in caso di fallimento.


