Mailjet: Guida tecnica completa per l'email transazionale nel 2026

Di CaptainDNS
Pubblicato il 20 gennaio 2026

Dashboard Mailjet con configurazione API transazionale e autenticazione email
TL;DR
  • 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:

DataEvento
Febbraio 2011Lancio pubblico
Ottobre 2019Acquisizione da parte di Mailgun (Thoma Bravo)
Dicembre 2021Acquisizione da parte di Sinch per 1,9 Mld$
2025Oltre 300 miliardi di email/anno

Posizionamento vs Mailgun

All'interno dell'ecosistema Sinch, la differenziazione è chiara:

PiattaformaTargetPunto di forza
Sinch MailjetMarketer, PMIInterfaccia intuitiva, editor collaborativo
Sinch MailgunSviluppatoriAPI-first, oltre 20 API, SDK avanzati
Sinch Email on AcidQA emailTest 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.

Confronto API v3 e v3.1 Mailjet

Differenze chiave

Caratteristicav3v3.1 (consigliata)
EndpointPOST /v3/sendPOST /v3.1/send
Struttura payloadArray RecipientsArray Messages obbligatorio
Naming proprietàTrattini (Html-part)CamelCase (HTMLPart)
Messaggi per chiamata10050
VariabiliVarsVariables
TemplateMj-TemplateIDTemplateID
RispostaStato sempliceDettagliata 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

LinguaggioPackageInstallazione
PHPmailjet-apiv3-phpcomposer require mailjet/mailjet-apiv3-php
Node.jsnode-mailjetnpm install node-mailjet
Pythonmailjet-restpip install mailjet-rest
Gomailjet-apiv3-gogo get github.com/mailjet/mailjet-apiv3-go/v4
Javamailjet-clientMaven com.mailjet:mailjet-client:6.0.0
Rubymailjet-gemgem install mailjet
C#/.NETMailjet.ApiNuGet 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

HeaderUtilizzo
X-MJ-CustomIDIdentificatore personalizzato per tracking
X-MJ-EventPayloadPayload restituito nei webhook
X-MJ-CampaignRaggruppamento di messaggi
X-MJ-TemplateIDID del template Mailjet
X-MJ-TemplateLanguageAttiva il motore di template (true)
X-MJ-VarsVariabili JSON per personalizzazione
X-MJ-TrackOpen / X-MJ-TrackClickOverride 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.

Flusso di configurazione DKIM con Mailjet

Processo di configurazione

  1. Account Settings → Domains & Sender addresses → SPF/DKIM Authentication
  2. Aggiungere il dominio se non elencato
  3. Cliccare su Setup SPF/DKIM Authentication
  4. Copiare i valori DKIM forniti
  5. Creare il record TXT nel vostro DNS
  6. Cliccare su Refresh per verificare

Parametri DKIM Mailjet

ParametroValore
Selettoremailjet
Hostname DNSmailjet._domainkey.captaindns.com
TipoTXT (non CNAME)

Dimensioni chiavi disponibili

DimensioneStatoRaccomandazione
1024 bitLegacyCompatibilità massima
2048 bitDefault da aprile 2024Consigliato
4096 bitDisponibile (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.

Schema allineamento SPF e DKIM con DMARC

Come funziona DMARC con Mailjet

MetodoDominio autenticatoDominio FromAllineamento?Risultato DMARC
SPFmailjet.com (Return-Path)captaindns.comNoNon contribuisce
DKIMcaptaindns.com (firma d=)captaindns.comDMARC 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):

  1. Creare un CNAME: bnc3.captaindns.com CNAME bnc3.mailjet.com
  2. Inviare un ticket al supporto Mailjet con screenshot DNS e API key
  3. 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

CriterioSoglia
Minimo assoluto100.000 email/mese
Raccomandazione ISP150.000 email/mese + 5.000/giorno
Incluso gratuitamentePiani Premium 100k+ e Custom

Processo di warm-up

Un IP dedicato nuovo richiede un warm-up obbligatorio:

ParametroValore
TipoManuale, guidato dal team deliverability Mailjet
Inizio~300 email giorno 1
Progressione+20% al giorno
Durata2-6 settimane a seconda del volume e dell'engagement
ContattoSupporto/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

PianoPrezzo/meseEmail/meseEmail/giornoIP dedicato
Free0$6.000200No
Essential 15k17$15.000IllimitatoNo
Premium 15k27$15.000IllimitatoNo
Premium 100k95$100.000IllimitatoIncluso
Premium 500k470$500.000IllimitatoIncluso
CustomPreventivoPersonalizzatoIllimitatoIncluso

Sconto annuale: 10% su tutti i piani.

Funzionalità per piano

FunzionalitàFreeEssentialPremium
API, SMTP, Webhook
Logo MailjetPresenteRimossoRimosso
SegmentazioneNo
AutomationNoNo
A/B TestingNoNoSì (10 versioni)
Multi-utenteNoNo
IP dedicatoNoNoSì (100k+)
SSONoNoSì (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

ElementoLimite
Account Test Mode10 email/ora
Piano Free200 email/giorno
API SMS6 richieste/secondo
IP dedicato~100.000 email/ora
Messaggi v3 per chiamata100
Messaggi v3.1 per chiamata50

Throttling: codice HTTP 429 Too Many Requests con errore MJ-002: Exceeded API Rate Limit.

Quote piattaforma

ElementoLimite
Dimensione email massima15 MB
Destinatari per chiamata (v3)50
Oggetti messaggio per payload (v3.1)100
Dimensione HTML (prima del clipping Gmail)102 KB
Upload immagine2 MB (consigliato meno di 200 KB)
Contatti piano Free1.000

Gestione dei bounce

TipoComportamento Mailjet
Hard bounceBlocco automatico 90 giorni
Soft bounceRetry per 24h poi marcato soft-bounced
Spam complaintBlocco sistematico tramite FBL
UnsubscribeRimozione automatica dalle liste

Webhook e Event API

Eventi disponibili

EventoDescrizione
sentEmail accettata dal server SMTP di destinazione
deliveredConsegna confermata
openApertura rilevata
clickClic su link
bounceRimbalzo (hard o soft)
blockedPre-bloccato da Mailjet
spamMarcato come spam
unsubDisiscrizione

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:name per i dati passati tramite l'API
  • Valore predefinito: sintassi var:name:"default" se la variabile è assente
  • Dato contatto: sintassi data:property per le proprietà persistenti del contatto
  • Variabile predefinita: sintassi mj:contact.email per 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

CertificazioneStato
ISO 27001Sì (primo ESP puro certificato, 2017)
ISO 27701Sì (estensione privacy)
SOC 2 Type IISì (~400 controlli)
PCI DSS
HIPAASu richiesta
GDPRPrima 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
  • 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

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 mailjet e 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.com di 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.

Fonti ufficiali

Articoli simili