Descrizione
Connettore enterprise per SendGrid (la piattaforma email transazionale acquisita da Twilio nel 2019, 80k+ paying customer, leader della categoria insieme a Postmark/Mailgun/SES per ESP managed cloud) via Mail Send API v3 ufficiale. Due operazioni atomiche coprono i pattern principali di sending: sendEmail (invio diretto con to+from+subject+body sia text plain sia HTML rich con embedded CSS), sendTemplate (usa Dynamic Template SendGrid creato nella web UI con Handlebars syntax + passa dynamic_template_data JSON per substitution dei placeholder server-side — pattern recommended enterprise per separare logic invio dal template design che è managed dal marketing team senza dover deploy codice). Auth via API Key Bearer (formato SG.xxxxx generato dall'admin SendGrid in Settings → API Keys con scope mail.send.full o granular permission slug) stored nel vault integration FlowForge. Multi-key supportato per separazione production vs dev environment o per agency con N customer subaccount. Validation pre-send enterprise: email destinatario validato sintatticamente con regex RFC 5322 simplified per detect typo ([email protected] → flag warning typo "did you mean gmail.com?"), supporto reply-to header indipendente dal from (pattern critico per "no-reply@" sender ma reply al support box), nome mittente custom ("Acme Customer Service <[email protected]>" → friendly UI display per ricevente). Pipeline anti-vulnerability: tutte le request transitano via il SSRF-safe gateway HTTP del runtime (safeFetchWithRedirects) per evitare di chiamare endpoint interni privati 192.168.* per misconfig; circuit-breaker dedicato per SendGrid evita di hammer l'API durante upstream outage (stato open dopo 8 fail in 60s → cooldown 30s → half-open probe); retry exponential backoff su 5xx e 429 transitori. Gestione semantica robusta della response 202: SendGrid ritorna HTTP 202 Accepted SENZA body (Mail Send è asincrono server-side, il delivery vero avviene minuti dopo) — il nodo NON tenta di parsare response body inesistente e ritorna success se status=202. Output: { accepted (bool), to, from, operation (sendEmail|sendTemplate), messageId? (header X-Message-Id se SendGrid lo ritorna), durationMs }. Use case enterprise transazionali standard: conferma ordine/registrazione user post-signup; reset password con link UUID firmato + TTL 1h; ricevuta pagamento Stripe webhook → invio receipt PDF allegato al cliente; newsletter transazionale (non marketing — solo update operativi del servizio); notifica scadenza abbonamento +30/+7gg con template brandizzato Dynamic Template; onboarding drip campaign multi-step (giorno 1, giorno 3, giorno 7, giorno 14) con sequence configurabile; alert sistema agli amministratori del cliente customer-facing per monitoraggio operativo.
