Salta ai contenuti

Mailjet

Mailjet (parte di Sinch) è una piattaforma email europea per email transazionali e di marketing. I dati sono ospitati nell’UE per impostazione predefinita e il piano gratuito è utilizzabile, il che la rende popolare tra le piccole imprese europee.

Scegli Mailjet quando vuoi un provider con sede nell’UE e un piano gratuito, oppure invii già newsletter con Mailjet e vuoi la posta transazionale dallo stesso account. Per un invio puramente transazionale con la massima attenzione alla recapitabilità, vedi Postmark; per un hosting nell’UE con un’API per sviluppatori, Mailgun UE. Confronto: panoramica dei servizi.

  • Un account Mailjet (i nuovi account possono passare per una breve verifica di attivazione).
  • Un mittente validato: aggiungi il tuo dominio in Account settings → Senders & Domains → Add domain e autenticalo (SPF + DKIM), o almeno valida il singolo indirizzo mittente.
  • Una coppia di chiavi API (API key + secret key). Le chiavi Mailjet non hanno permessi limitabili, quindi l’opzione con i privilegi minimi è una chiave di un sub-account dedicato: Account settings → REST API → API Key Management → Create a sub-account API key. Un sub-account ha i propri mittenti, statistiche e quota, e può essere revocato senza toccare la chiave principale.
  1. Apri Servizi email → Aggiungi servizio → Mailjet.
  2. Compila i campi:
Campo Dove trovarlo Esempio
Chiave API Account settings → REST API → API Key Management a1b2c3d4e5f6a7b8c9d0e1f2a3b4c5d6
Chiave segreta Stessa pagina (clicca per mostrarla; può essere rigenerata) f6e5d4c3b2a1…
Nome utente del webhook Facoltativo – il nome utente che inserisci nell’URL del webhook (vedi sotto) frontmail
Password del webhook Facoltativa – la password corrispondente long-random-string
Max email al secondo Facoltativo; predefinito 10/s 5
  1. Clicca Verifica e salva: Frontmail chiama l’API di Mailjet con la coppia di chiavi.
  2. Il servizio viene salvato quando il controllo va a buon fine. Entrambe le chiavi sono cifrate con AWS KMS (envelope encryption).

Mailjet mostra i valori in Senders & Domains → il tuo dominio → Authentication settings:

; SPF – uniscilo al record SPF esistente (uno solo per dominio!)
example.com. TXT "v=spf1 include:spf.mailjet.com ~all"
; DKIM
mailjet._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNAD…"
; Proprietà del dominio (solo se Mailjet la richiede)
mailjet._a1b2c3d4.example.com. TXT "a1b2c3d4e5f6…"
; DMARC
_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"
  • Se hai già v=spf1 include:_spf.google.com ~all, cambialo in v=spf1 include:_spf.google.com include:spf.mailjet.com ~all: non aggiungere un secondo record SPF.
  • Il mittente della busta di Mailjet è il suo dominio per i bounce, quindi l’allineamento DMARC si basa su DKIM: assicurati che DKIM risulti OK.
  • Inizia DMARC con p=none e rendilo più restrittivo in seguito.

Frontmail comunica con api.mailjet.com. Mailjet conserva i dati nell’UE per impostazione predefinita. Mailjet gestisce anche un’infrastruttura USA separata (api.us.mailjet.com) per gli account creati lì: al momento Frontmail supporta solo l’endpoint predefinito, quindi usa un account creato sulla piattaforma standard (UE).

  • Piano gratuito: 200 email al giorno, 6.000 al mese.
  • I piani a pagamento eliminano il limite giornaliero e vengono fatturati mensilmente.
  • I nuovi account possono essere messi sotto verifica dal team compliance di Mailjet se i tassi di bounce o di reclami sono alti; l’invio resta bloccato fino alla fine della verifica.
  • Il flag API SandboxMode di Mailjet valida i messaggi senza inviarli; Frontmail non lo usa.

Mailjet li chiama Event notifications (webhook).

  1. Copia l’URL del webhook dalla pagina del servizio in Frontmail (pulsante di copia):

    https://api.frontmail.dev/webhooks/providers/mailjet/<token>
  2. Consigliato: proteggilo con Basic auth. Mailjet non ha un campo separato per l’autenticazione, quindi inserisci le credenziali nell’URL e gli stessi valori nei campi Nome utente del webhook / Password del webhook di Frontmail:

    https://frontmail:long-random-string@api.frontmail.dev/webhooks/providers/mailjet/<token>
  3. In Mailjet apri Account settings → Event notifications (webhooks) e incolla l’URL per questi eventi:

Evento Mailjet Evento Frontmail
Sent (accettato dal server del destinatario) delivered
Bounce – hard_bounce: true bounced – aggiunto alla lista di soppressione
Bounce – soft, Blocked registrato come soft bounce
Spam complained – aggiunto alla lista di soppressione
Open opened
Click clicked
  1. Al salvataggio Mailjet invia una chiamata di prova; l’evento dovrebbe comparire nel registro eventi del servizio.

Verifica della firma: Mailjet non firma i payload degli eventi. Il token segreto nell’URL identifica il servizio e, se imposti una password del webhook, Frontmail rifiuta ogni richiesta la cui Basic auth non corrisponde.

Frontmail imposta il CustomID di Mailjet sull’ID del messaggio Frontmail, così gli eventi vengono associati al messaggio giusto.

  • auth – il servizio non funziona (API key/secret errati, 401/403, mittente o dominio non validato, account bloccato). Il servizio viene segnato come unhealthy; il proprietario riceve un’email e un banner nella dashboard. Subentra il servizio di riserva del modello, se c’è; altrimenti il credito viene rimborsato e il messaggio aspetta nella coda dei messaggi in attesa come held_service_error e viene inviato automaticamente dopo che avrai sistemato il servizio (ricontrollato al salvataggio e dal controllo di stato giornaliero).
  • permanent – questo messaggio non può essere inviato (destinatario non valido, validazione 400). Servizio di riserva se configurato, altrimenti failed e credito rimborsato.
  • transient – 5xx, 429, timeout. Ritentato con backoff esponenziale; dopo l’ultimo tentativo failed e rimborsato.
Risposta di Mailjet Classe Cosa fare
401 – API key authentication/authorization failure auth Controlla la coppia API key e secret key; se serve, rigenerala.
403 – Forbidden / account bloccato o sotto verifica auth Controlla la dashboard di Mailjet e contatta il supporto di Mailjet.
400 – “The sender … is not validated / not authorized” auth Valida l’indirizzo o il dominio mittente in Senders & Domains (nel sub-account giusto).
400 mj-0013 – “… is an invalid email address” permanent Vedi destinatario non valido.
400 – altri errori di validazione (oggetto troppo lungo, allegato troppo grande) permanent Correggi il modello; vedi Modelli HTML.
429 – Too many requests transient Raggiunto il limite di frequenza o giornaliero; Frontmail ritenta. Abbassa Max email al secondo.
500 / 503, timeout transient Disservizio di Mailjet: Frontmail ritenta.
  • Dominio aggiunto e autenticato in Mailjet (include SPF + mailjet._domainkey)
  • Un solo record SPF unificato; DMARC p=none
  • Coppia di chiavi API di un sub-account dedicato
  • Prova connessione va a buon fine
  • URL delle event notification con credenziali Basic auth, stessi valori in Frontmail
  • Eventi attivi: sent, bounce, blocked, spam (+ open, click)
  • Volume giornaliero entro il limite del tuo piano