Salta ai contenuti

Migrare da EmailJS

Frontmail è stato progettato perché il passaggio da EmailJS richieda pochi minuti: l’SDK per browser ha le stesse firme delle funzioni, l’API REST accetta gli stessi campi e, per i modelli semplici, la sintassi è compatibile.

Registrati su app.frontmail.dev e collega lo stesso provider email che usi in EmailJS (vedi Servizi). Se usavi un servizio Gmail o Outlook, ricollegalo tramite OAuth; per i provider SMTP o API inserisci le stesse credenziali.

Crea un modello per ogni modello di EmailJS. Copia oggetto, To, From, Reply-To e contenuto. Poi clicca su Rileva dal modello e imposta tipi e obbligatorietà dei parametri – le differenze sono descritte più sotto in Sintassi dei modelli.

EmailJS Frontmail Dove trovarlo
Public Key (user_id) Chiave pubblica pk_… Sicurezza → Chiave pubblica
Private Key (accessToken) Chiave privata sk_… – solo per il server Sicurezza → Chiavi private (mostrata una sola volta)
Service ID ID servizio svc_… Servizi email
Template ID ID modello tpl_… Modelli
Domain allowlist Siti consentiti Sicurezza → Siti consentiti
reCAPTCHA Cloudflare Turnstile con il tuo widget gratuito Chiavi in Sicurezza → Protezione dai bot (Turnstile), per ogni modello Impostazioni → Protezione → Richiedi CAPTCHA (Turnstile)
import emailjs from '@emailjs/browser';
import emailjs from '@frontmail/emailjs-compat';

Le tue chiamate emailjs.init(), emailjs.send() ed emailjs.sendForm() continuano a funzionare – cambiano solo gli ID e la chiave. Vedi Compatibilità con EmailJS.

Usi lo script dalla CDN? Sostituisci lo <script> di EmailJS con la build compat, che espone lo stesso oggetto globale emailjs, così le tue chiamate restano invariate:

<script
src="https://cdn.jsdelivr.net/npm/@frontmail/emailjs-compat@0.1.0/dist/emailjs-compat.umd.js"
integrity="sha384-RH+fuNzBqTKgxDJBHRmWfOn37fs33L+Or1ujDV7wThynx9FxD9uPptLu80LpCrEc"
crossorigin="anonymous"></script>

Fissa la versione esatta e mantieni l’attributo integrity – vedi Fissa la versione per sapere dove trovare l’hash delle versioni più recenti.

In alternativa, carica l’SDK nativo (@frontmail/browser, con la stessa versione fissata) e rinomina le chiamate emailjs. in frontmail. – gli argomenti sono gli stessi, ma la promise si risolve con status: 'queued' o 'held' invece di 200.

Chiami direttamente l’API REST? Cambia l’host in https://api.frontmail.dev. I percorsi /api/v1.0/email/send e /api/v1.0/email/send-form e i campi del corpo restano gli stessi.

Se i tuoi modelli usavano reCAPTCHA, rimuovi il widget reCAPTCHA e aggiungi Turnstile. Proprio come con reCAPTCHA, usi chiavi del tuo account: crea un widget Turnstile gratuito in Cloudflare, incolla le sue chiavi in Sicurezza → Protezione dai bot (Turnstile) e clicca su Attiva il CAPTCHA per tutti i modelli; da quel momento i nuovi modelli lo richiedono per impostazione predefinita. Metti nel modulo il widget con la tua chiave del sito – vedi Turnstile. Il campo g-recaptcha-response non viene usato.

Invia una prova dall’editor dei modelli, pubblica e tieni d’occhio Cronologia. Mantieni il tuo account EmailJS finché non hai visto passare del traffico reale.

@frontmail/browser o un SDK per framework ti danno parametri tipizzati, lo stato held, getStatus() ed errori tipizzati.

Frontmail usa Handlebars; EmailJS usa una sintassi simile a Mustache. I casi più comuni:

EmailJS Frontmail Note
{{name}} {{name}} Uguale. In Frontmail sempre con escaping HTML.
{{{html_content}}} {{html_content}} con parametro di tipo html In Frontmail le triple graffe non disattivano l’escaping; usa il tipo html ripulito.
Sezioni in stile {{#if}} dal Mustache {{#name}}…{{/name}} {{#if name}}…{{/if}} Usa blocchi Handlebars espliciti.
Sezione invertita di Mustache {{^name}}…{{/name}} {{#unless name}}…{{/unless}}
Elenchi tramite sezioni {{#each items}}…{{/each}} con un parametro list Definisci itemFields per la validazione.
– {{formatDate}}, {{formatMoney}}, {{eq}}… Helper aggiuntivi.

I valori predefiniti impostati nei campi dei modelli EmailJS corrispondono al default del parametro in Frontmail.

Un confronto oggettivo delle funzionalità rilevanti per la migrazione, aggiornato a settembre 2026. Prezzi e limiti di entrambi i servizi cambiano nel tempo – prima di decidere controlla le pagine dei rispettivi fornitori.

EmailJS Frontmail
Quando la quota mensile è esaurita Le richieste vengono rifiutate fino al periodo successivo o a un upgrade I messaggi vengono messi in attesa e inviati automaticamente quando aggiungi crediti; scoperto e ricarica automatica facoltativi
Pacchetti di crediti prepagati con validità Non disponibili Pacchetti da 5k / 25k / 100k validi 3–12 mesi, con ogni piano
Rate limit dell’API REST 1 richiesta al secondo 2–50 richieste al secondo a seconda del piano, più /v1/send-batch
Linguaggio dei modelli Variabili con sezioni semplici Handlebars con condizioni, cicli, helper e parametri tipizzati e validati
CAPTCHA reCAPTCHA v2 Cloudflare Turnstile, attivabile per tutti i modelli con un clic
Failover del provider Non disponibile Servizio di riserva per ogni modello, controlli di stato giornalieri
Tracciamento della consegna Non disponibile Recapitata / non recapitata / segnalata / aperta / cliccata tramite i webhook del provider
Nuovi tentativi e idempotenza nell’SDK Non documentati Nuovi tentativi automatici con chiavi di idempotenza
SDK per framework SDK per browser, SDK per React Native Browser, React, React Native, Vue, Svelte, Node, compatibile con EmailJS

Se trovi un’affermazione non più aggiornata, scrivici a support@frontmail.dev e la correggeremo.