Mailjet
A cosa serve
Mailjet è il provider per form di iscrizione ospitato, contatti e consenso, Campaign Draft, scheduling e delivery email.
flowchart TB
publish["Pubblicazione Issue in D1"] --> public["Issue pubblicato"]
public -.->|"non avvia Mailjet"| intent["Intento Campaign Draft separato in D1"]
intent --> prepare["Preparazione esplicita"]
prepare --> draft["Campaign Draft Mailjet"]
draft --> content["Upload contenuto esplicito"]
content --> schedule["Scheduling esplicito"]
schedule --> delivery["Delivery provider"]
reader["Lettore"] --> form["Form Mailjet ospitato"]
form --> contacts["Contatti, consenso e suppression Mailjet"]
contacts --> delivery
Componenti che lo usano
Provider Campaign Draft, servizio Campaign Draft, consumer Queue dedicato, provider di delivery e pagina newsletter che può collegare il form ospitato.
Dati e artefatti scambiati
Architecture Coffee invia subject, HTML/testo renderizzati, target list referenziato e scheduling autorizzato. Mailjet restituisce identificatori e stati provider, conservati solo in forma necessaria e sanitizzata. Gli indirizzi destinatario restano in Mailjet.
Autenticazione e autorizzazione
Le credenziali Mailjet sono secret Worker e non raggiungono il browser. Access
autentica l'Admin; l'API richiede campaign:draft e proietta target e azioni.
Il consenso destinatario è gestito dal form e dal lifecycle Mailjet.
Cosa possiede il provider
Mailjet possiede contatti, liste, double opt-in, unsubscribe, bounce, suppression, scheduling provider e stato di delivery destinatario.
Cosa possiede Architecture Coffee
D1 possiede Issue Content canonico, stato editoriale, intento Campaign Draft, aggregate e attempt, target alias/mask e audit sanitizzato. La pubblicazione non possiede o modifica destinatari.
Operazioni automatiche, manuali e protette
La Queue può eseguire un comando Campaign Draft già autorizzato. Preparazione, upload contenuto, scheduling e delivery sono operazioni distinte. Pubblicazione e approvazione non chiamano Mailjet. La modalità live resta fail-closed se disabilitata o incompleta.
Fallimenti e comportamento fail-closed
Configurazione target o live incompleta, risposta non conforme, timeout o status ambiguo producono errore sanitizzato. Retry crea un attempt collegato; mock/dry-run non provano delivery reale. Nessun destinatario viene copiato in D1 come recovery.
Verifiche operative
- modalità provider e azioni proiettate;
- target mostrato solo come alias e riferimento mascherato;
- attempt distinti per preparazione e contenuto;
- riconciliazione dello stato Campaign Draft;
- assenza di chiamate Mailjet durante pubblicazione;
- prova live soltanto da evidenza provider autorizzata.