Mail API
E-mail transazionali tramite API HTTP: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.
Estensione
Mail API
E-mail transazionali tramite API HTTP: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp, Resend, SendGrid, MailerSend, Scaleway.
Descrizione
Mail API rende l’API HTTP del tuo provider e-mail il trasporto e-mail di EmDash. Link di accesso, inviti ed e-mail dei plugin partono tramite Brevo, Mailgun, Postmark o un altro servizio, senza server SMTP.
Funzionalità
- 10 provider: Brevo, Mailgun, Mailjet, Maileroo, Postmark, Mailchimp Transactional (Mandrill), Resend, SendGrid, MailerSend e Scaleway TEM.
- Mittenti verificati: scegli un indirizzo o un dominio verificato dal tuo provider, oppure digitane uno.
- Stato dell’account: piano, crediti, quote e reputazione, letti dall’API del provider.
- Errori su cui puoi agire: il messaggio del provider stesso, con lo stato HTTP, il codice di errore, un suggerimento, un link alla pagina che risolve il problema e la risposta grezza.
- Coda di nuovi tentativi: quando il provider non è disponibile o applica un limite di frequenza, l’e-mail attende in una coda cifrata e viene rinviata con un ritardo crescente.
- Cronologia e registri: ogni invio con il suo stato, ID del messaggio, tentativi e durata, con filtri, Reinvia, un grafico a 14 giorni e un widget della dashboard.
- Modulo di prova nella pagina di ogni provider.
- Cifrato: le chiavi API sono segreti di EmDash, il contenuto conservato delle e-mail è cifrato e le e-mail di accesso non vengono mai conservate.
- Amministrazione in inglese, francese e tedesco, utilizzabile da smartphone.
Provider
| Provider | Credenziali | Mittenti elencati | Stato dell’account |
|---|---|---|---|
| Brevo | Chiave API | Indirizzi | Piano, crediti |
| Mailgun | Chiave API, dominio, regione | Dominio | Stato del dominio |
| Mailjet | Chiave API, chiave segreta | Indirizzi, domini | No |
| Maileroo | Chiave di invio | No | No |
| Postmark | Token del server | No | Server, modalità |
| Mailchimp Transactional | Chiave Mandrill | Domini | Reputazione, quota |
| Resend | Chiave API | Domini | Piano, quote |
| SendGrid | Chiave API | Indirizzi, domini | Piano, crediti |
| MailerSend | Token API | Indirizzi, domini | Quota API |
| Scaleway TEM | Chiave segreta, ID progetto | Domini | Offerta, utilizzo |
Dove i mittenti non sono elencati, digita l’indirizzo.
Installazione
Requisiti
- EmDash 1.3.0 o successivo con un runner sandbox per i plugin: Cloudflare Worker Loader (piano Workers Paid) oppure
@emdash-cms/sandbox-workerdsu Node.js. EMDASH_ENCRYPTION_KEYsul sito: cifra le chiavi API. Creane una connpx emdash secrets generatee, su Cloudflare, salvala conwrangler secret put EMDASH_ENCRYPTION_KEY. Conserva una copia in un gestore di segreti: senza di essa un backup del database è inutile.- Uno scheduler per la coda di nuovi tentativi: integrato su Node.js. Su Cloudflare, un cron trigger
* * * * *e l’handlerscheduled(i modelli EmDash includono entrambi). - Un account e una chiave API presso uno dei provider supportati.
Installare
- Installa Mail API dal registro dei plugin.
- Controlla le autorizzazioni e conferma: richieste solo agli host API dei provider e consegna delle e-mail di EmDash.
In alternativa da npm: pnpm add @devbitme/emdash-plugin-apimail, poi aggiungi l’import predefinito a sandboxed: [...] nell’integrazione emdash() di astro.config.mjs.
Configurare
- Nell’amministrazione, apri Mail API, poi Configure sul tuo provider.
- Incolla la o le chiavi e salva. La sezione Account conferma che la chiave funziona.
- In Send a test email, scegli un mittente verificato, inserisci il tuo indirizzo e invia. Lascia attivo Use as the default sender per mantenere quel mittente.
- Fai clic su Activate sulla scheda del provider nell’elenco.
- Se sono installati più trasporti e-mail, seleziona Mail API in Settings → Email. Con
astro dev, il trasporto console di EmDash conta come uno.
Impostazioni
La scheda Queue & history imposta per quanto tempo un’e-mail può restare in coda (per impostazione predefinita 15 minuti per le e-mail di accesso, 24 ore per le altre), se conservare il contenuto delle e-mail e per quanto tempo conservare cronologia e registri (30 giorni per impostazione predefinita).
Documentazione completa: https://git.devbit.me/devbit.me/emdash-plugin-apimail
Domande frequenti
Mi serve un server SMTP?
No. Mail API chiama l’API HTTP del provider tramite HTTPS, quindi funziona anche dove SMTP non è disponibile, come su Cloudflare Workers.
«Send test email» di EmDash dice solo «Failed to send test email».
Usa il modulo Send a test email nella pagina del provider: mostra il messaggio del provider, un suggerimento e la risposta grezza. L’errore è anche in Logs e nel registro del server.
L’elenco dei mittenti è vuoto o mostra HTTP 401 o 403.
La chiave può inviare ma non elencare i mittenti. Resend richiede una chiave Full access, SendGrid l’accesso in lettura a Sender Authentication e User Account, MailerSend Domains e Sender identity, Scaleway TransactionalEmailReadOnly e Mailgun la chiave dell’account anziché una chiave di invio del dominio. Puoi comunque digitare l’indirizzo del mittente.
L’errore dice che l’indirizzo IP non è consentito.
Aggiungi l’IP in uscita del tuo host alla lista di autorizzazione del provider, oppure disattiva la restrizione. L’errore contiene un link alla pagina giusta.
Cosa succede quando il provider non è disponibile?
Errori di rete, timeout, HTTP 429 e 5xx mettono l’e-mail in una coda cifrata. Viene ritentata dopo 1, 5, 15 e 30 min, poi 1 h, 2 h e ogni 4 h, tramite il provider attivo in quel momento. Le e-mail di accesso scadono dopo 15 minuti, le altre dopo 24 ore. Gli errori permanenti, come una chiave non valida o un destinatario rifiutato, non vengono ritentati.
La coda non viene mai eseguita.
Apri la scheda Security di Mail API: elenca le attività pianificate e ha un pulsante Repair. Su Cloudflare, controlla il cron trigger e l’handler scheduled.
Il contenuto delle mie e-mail viene memorizzato?
Solo mentre attende in coda, oppure nella cronologia se attivi Keep email content in the history. In entrambi i casi è cifrato. Le e-mail di accesso e di invito non vengono mai conservate dopo l’invio.
Posso usare più provider?
Sì. Configurane diversi e fai clic su Activate su quello che invia. Durante un’interruzione, attivane un altro: le e-mail in coda vengono rinviate tramite quest’ultimo.
Sicurezza
Segnalare una vulnerabilità
Scrivi a [email protected]. Ti preghiamo di non aprire prima una issue pubblica.
Autorizzazioni
- Richieste di rete, limitate agli host API dei provider:
api.brevo.com,api.mailgun.net,api.eu.mailgun.net,api.mailjet.com,api.us.mailjet.com,smtp.maileroo.com,api.postmarkapp.com,mandrillapp.com,api.resend.com,api.sendgrid.com,api.eu.sendgrid.com,api.mailersend.com,api.scaleway.com. - Trasporto e-mail: EmDash consegna le sue e-mail in uscita al plugin, che le invia tramite il provider attivo.
Il plugin viene eseguito nella sandbox di EmDash e non può raggiungere nient’altro.
Chiavi API
Le chiavi API sono impostazioni segrete di EmDash, cifrate con AES-GCM tramite la EMDASH_ENCRYPTION_KEY del sito. Una chiave salvata non torna mai al browser: l’amministrazione ne mostra solo gli ultimi 5 caratteri. Qualsiasi segreto configurato che un provider ripete in un messaggio di errore viene mascherato.
Dati memorizzati
- Cronologia: destinatario, oggetto, provider, stato, ID del messaggio, tentativi, durata ed errore. Eliminata dopo 30 giorni per impostazione predefinita.
- Contenuto delle e-mail: conservato solo mentre l’e-mail attende in coda, oppure nella cronologia se lo attivi. È cifrato con AES-GCM tramite una chiave casuale a 256 bit, a sua volta memorizzata come segreto di EmDash. Le e-mail di accesso e di invito non vengono mai conservate dopo l’invio.
- Registri: errori, esecuzioni ed eliminazioni della coda, eliminati insieme alla cronologia.
- Mittenti verificati e stato dell’account: memorizzati nella cache dello storage del plugin con un’impronta delle impostazioni, mai una chiave.
Le e-mail vanno solo all’API del provider attivo. Nient’altro lascia il sito.
Route pubblica
Una route è pubblica: GET /_emdash/api/plugins/apimail/logo?p=. Serve i loghi dei provider inclusi nel plugin e non legge alcun dato.
Amministrazione
Le pagine di amministrazione usano una route privata: prima che il plugin venga eseguito, EmDash richiede un utente autenticato autorizzato a gestire i plugin e l’intestazione CSRF.
Registro delle modifiche
0.3.1
- Tre schede provider per riga invece di due: un elenco più compatto su desktop.
- Un link Website su ogni scheda provider, aperto in una nuova scheda.
- Set as default diventa Activate, abbastanza corto per una scheda su smartphone.
- La pagina di un provider si apre subito dai dati salvati, con la loro età. Il provider viene chiamato solo quando viene salvata una chiave o con **Refresh from **, e un messaggio indica quanto è durata la chiamata.
0.3.0
- Pulsante Set as default sulla scheda di ogni provider configurato.
- Una lettura non riuscita dei mittenti verificati o dello stato dell’account viene scritta nei registri e ritentata al successivo caricamento della pagina, a meno che alla chiave manchi l’autorizzazione.
- L’elenco dei mittenti mostra quando è stato letto, anche dopo un errore.
- Le pagine di amministrazione si adattano allo smartphone: due schede provider per riga, al massimo tre schede di statistiche, valori lunghi su una riga propria, meno colonne nella cronologia.
- Voci di menu più brevi: History, Queue, Logs.
- Trattini semplici invece di trattini lunghi in etichette, registri, errori e oggetto dell’e-mail di prova.
- Pacchetto più piccolo: i loghi dei provider sono tessere WebP senza perdita.
- Scheda del registro: schede per descrizione, installazione, FAQ, registro delle modifiche e sicurezza, e un banner.
0.2.0
- Scelta di un mittente verificato dal provider: un indirizzo verificato, qualsiasi indirizzo su un dominio verificato o inserimento manuale. Nella scheda Sender e in ogni modulo di prova.
- Stato dell’account nella pagina di ogni provider: piano, crediti, quote e reputazione.
- Una prova non richiede più un mittente configurato, e Use as the default sender conserva quello che ha funzionato.
- Una chiave salvata mostra gli ultimi 5 caratteri.
- Amministrazione in tedesco.