Email per sviluppatori frontend
Invia email direttamente dal frontend.Paga i tuoi picchi, non tutto l’anno.
Collega il provider email che usi già, crea modelli HTML con parametri tipizzati e chiama send() dal browser. Quando un picco stagionale supera la tua quota, non si perde nulla: i messaggi restano nella coda dei messaggi in attesa e partono non appena ricarichi.
Piano Free con 300 email al mese. Nessuna carta richiesta.
contact.js
import { init, sendForm } from '@frontmail/browser';
init({ publicKey: 'pk_live_2Jx8…' });
const form = document.querySelector('#contact');
form.addEventListener('submit', async (event) => {
event.preventDefault();
const { status } = await sendForm('svc_default', 'tpl_contact', form);
// 'queued' – or 'held' when you're out of credits. Never dropped.
});ContactForm.tsx
import { FrontmailProvider, useSendEmail } from '@frontmail/react';
function ContactForm() {
const { send, status } = useSendEmail('svc_default', 'tpl_contact');
return (
<form
onSubmit={(event) => {
event.preventDefault();
const { email, message } = Object.fromEntries(new FormData(event.currentTarget));
send({ email, message });
}}
>
<input name="email" type="email" required />
<textarea name="message" required />
<button disabled={status === 'sending'}>Send</button>
</form>
);
}
const options = { publicKey: 'pk_live_2Jx8…' };
// <FrontmailProvider options={options}><ContactForm /></FrontmailProvider>ContactForm.vue
<script setup lang="ts">
import { reactive } from 'vue';
import { useSendEmail } from '@frontmail/vue';
const { send, status } = useSendEmail('svc_default', 'tpl_contact');
const form = reactive({ email: '', message: '' });
</script>
<template>
<form @submit.prevent="send(form)">
<input v-model="form.email" type="email" required />
<textarea v-model="form.message" required />
<button :disabled="status === 'sending'">Send</button>
</form>
</template>ContactForm.svelte
<script lang="ts">
import { createFrontmail, frontmailForm } from '@frontmail/svelte';
const frontmail = createFrontmail({ publicKey: 'pk_live_2Jx8…' });
const { status } = frontmail;
</script>
<form use:frontmailForm={{ serviceId: 'svc_default', templateId: 'tpl_contact', frontmail }}>
<input name="email" type="email" required />
<textarea name="message" required></textarea>
<button disabled={$status === 'sending'}>Send</button>
</form>order-confirmation.ts
import { Frontmail } from '@frontmail/node';
const frontmail = new Frontmail({ privateKey: process.env.FRONTMAIL_PRIVATE_KEY });
await frontmail.send({
serviceId: 'svc_transactional',
templateId: 'tpl_order_confirmation',
params: {
customer_name: 'Jana',
order_id: 'A-1042',
items: [{ title: 'Ceramic mug', qty: 2 }],
},
});Come funziona
Dal modulo alla casella di posta in tre passaggi
Collega un servizio
Collega SMTP, Gmail, Outlook o un provider transazionale come Mailgun, Postmark o SES. Le credenziali sono cifrate e verificate ogni giorno.
Crea un modello HTML
Scrivi HTML completo con Handlebars, definisci parametri tipizzati e guarda l’anteprima dal vivo su desktop e mobile, in tema chiaro e scuro.
Invia dal tuo codice
Chiama send() con la tua chiave pubblica da qualsiasi framework, oppure dal server con una chiave privata. Tentativi ripetuti e idempotenza sono già inclusi.
Nessuna email persa
Finire i crediti non significa mai perdere un messaggio
Le quote si esauriscono e i token OAuth scadono. Per Frontmail sono entrambi un motivo per aspettare, mai per scartare un’email.
frontmail.send()- Crediti disponibili?
- SìIn coda e inviatoPrima la quota, poi il pacchetto che scade per primo.
- NoMargine di scoperto+10% della quota mensile sui piani a pagamento, addebitato nella fattura successiva.
- In attesa, non scartatoL’API risponde 202 con stato "held". I messaggi attendono fino a 3 giorni sul piano Free o 14 giorni sui piani a pagamento.
- Rilasciati automaticamenteL’acquisto di un pacchetto, la ricarica automatica, un upgrade o un nuovo periodo di fatturazione inviano i messaggi in attesa, dal più vecchio.
- Il provider rifiuta le tue credenziali?
- Subentra il servizio di riservaOgni modello può indicare un servizio di riserva per errori di autenticazione o permanenti.
- In attesa fino alla correzioneSenza un servizio di riserva, i messaggi restano in attesa e vengono reinviati quando il servizio torna a funzionare.
Coda dei messaggi in attesa
Niente crediti? La richiesta viene accettata e salvata. Ricevi un’email prima che qualcosa scada e puoi rilasciare o scartare i messaggi in attesa in blocco.
Margine di scoperto
I piani a pagamento hanno un margine pari al 10% della quota mensile, così un mese un po’ più intenso continua semplicemente a inviare.
Ricarica automatica
Scegli un pacchetto e una soglia, oppure ricarica al primo messaggio in attesa. I limiti di spesa evitano sorprese sulla carta.
Controlli di stato e failover
Ogni servizio viene verificato ogni giorno e a ogni errore di autenticazione. Credenziali non valide attivano un avviso, un banner nella dashboard e il servizio di riserva.
Avvisi di utilizzo al 50, 80 e 100% e al primo messaggio in attesa.
Pacchetti di crediti
Tieni un piano piccolo. Compra pacchetti per i mesi intensi.
I pacchetti sono acquisti una tantum validi da 3 a 12 mesi e funzionano con ogni piano, Free compreso. Inserisci il volume previsto per ogni mese e troveremo la combinazione più economica.
5000 email
valido 3 mesi
10 €
2 € ogni 1.000
Acquista questo pacchetto25.000 email
valido 6 mesi
39 €
1,56 € ogni 1.000
Acquista questo pacchetto100.000 email
valido 12 mesi
129 €
1,29 € ogni 1.000
Acquista questo pacchetto
Il nostro consiglio
Piano Free
Pacchetti da acquistare
- gennaio: 1× pacchetto da 5000 email10 €
- marzo: 1× pacchetto da 25.000 email39 €
- luglio: 1× pacchetto da 25.000 email39 €
- dicembre: 1× pacchetto da 25.000 email39 €
- Piano
- 0 €
- Pacchetti
- 127 €
- Totale annuo
- 127 €
Un piano che copra tutto l’anno il tuo picco di 25.000 email (Business 50k) costerebbe 468 €. Risparmi 341 € (73%).
Inizia gratisFunzionalità
Tutto ciò che serve a un modulo di contatto – e molto di più
Modelli HTML con anteprima dal vivo
HTML completo, condizioni e cicli Handlebars, parametri tipizzati con validazione, versioni con diff e rollback.
Il tuo provider, la tua reputazione
SMTP, Gmail, Outlook, Mailgun, SES, Postmark, Mailjet, Brevo e Resend, con un servizio di riserva per ogni modello.
Protezione antispam integrata
Cloudflare Turnstile su tutti i tuoi moduli con un clic, elenco dei domini consentiti, rate limit per IP e per chiave, blocco dei browser headless e avvisi sulle anomalie.
Cronologia ricercabile
Contenuto renderizzato, parametri e cronologia degli eventi per ogni messaggio. Reinvio con un clic, esportazione in CSV.
Tracciamento della consegna
Consegnato, rimbalzato, segnalato come spam, aperto e cliccato – direttamente dai webhook del tuo provider, con gli hard bounce soppressi automaticamente.
Team, ruoli e MFA
Invita i colleghi come proprietario, admin, sviluppatore, osservatore o fatturazione. TOTP, codici di backup e un registro di audit per le azioni sensibili.
SDK con parametri tipizzati
Vanilla JS, React, React Native, Vue, Svelte e Node. Esegui npx frontmail types e il tuo editor conosce ogni parametro dei modelli.
Errori che si spiegano da soli
Un unico formato di errore con codice, messaggio e link alla documentazione. Gli SDK ripetono gli errori di rete e 5xx senza inviare due volte.
Provider
Funziona con il servizio email che hai già
Caselle personali per i siti piccoli, provider transazionali per crescere – con una guida passo passo per ciascuno nella documentazione.
- SMTPAruba, Libero, Zoho, il tuo server…SMTP
- GmailOAuth
- Outlook / Microsoft 365OAuth
- Amazon SESAPI
- MailgunEU / USAPI
- PostmarkAPI
- MailjetAPI
- BrevoAPI
- ResendAPI
Perché non chiamare direttamente l’API del tuo provider?
Amazon SES, Mailgun, Postmark o l’API di Gmail consegnano l’email. Tutto ciò che ruota attorno a un modulo pubblico – chiavi, bot, disservizi, modelli, cronologia – resta però a carico del tuo backend. Frontmail è quel backend e continua a inviare tramite il tuo provider.
| Cosa ti serve | Solo l’API del provider | Con Frontmail |
|---|---|---|
| Inviare da un sito o da un’app mobile | Serve una chiave API segreta o un token OAuth che non deve mai arrivare nel browser, quindi devi creare e gestire un tuo backend. | Una chiave pubblica e SDK per web, React Native, Kotlin e Swift. Nessun server da sviluppare o gestire. |
| Fermare i bot su un modulo pubblico | Il tuo backend deve aggiungere CAPTCHA, rate limit e controllo dell’origine. | Turnstile, domini consentiti, limiti per IP e per chiave e contenuto bloccato ogni volta che il destinatario arriva dal modulo. |
| Credenziali scadute o disservizio del provider | L’invio fallisce e decide il tuo codice che fine fa l’email. | Controllo giornaliero dei servizi, un servizio di riserva per ogni modello e le email non inviate restano in attesa e partono dopo la riconnessione. |
| Modelli | Ogni provider ha il proprio formato e la propria API per i modelli, oppure l’HTML vive nel tuo codice. | Editor HTML con anteprima dal vivo, parametri tipizzati, versioni e varianti di lingua. Lo stesso modello funziona con ogni provider. |
| Cronologia ed eventi di consegna | Ogni provider segnala gli eventi a modo suo (webhook, notifiche SNS) e devi salvarli tu. | Un’unica cronologia dei messaggi con ricerca e stati consegnato, respinto, segnalato, aperto e cliccato per ogni provider. |
| Cambiare provider | Riscrivere l’integrazione. | Cambi il servizio nella dashboard e il codice resta lo stesso. |
Frontmail non sostituisce il tuo provider: le email partono sempre dal tuo dominio tramite il tuo account. Se hai già un backend che invia grandi volumi, chiamare direttamente il provider può costare meno. I nomi dei prodotti sono marchi dei rispettivi proprietari.
Passare da EmailJS
Cambia un solo import
Il pacchetto @frontmail/emailjs-compat espone le stesse funzioni di @emailjs/browser. Ricrea servizio e modello in Frontmail, sostituisci l’import e tieni il tuo codice.
- 1Collega il tuo servizio email e importa l’HTML del tuo modello.
- 2Sostituisci l’import del pacchetto e le tue chiavi.
- 3Pubblica. Se vuoi, passa in seguito a @frontmail/browser per avere i parametri tipizzati.
- import emailjs from '@emailjs/browser';
+ import emailjs from '@frontmail/emailjs-compat';
emailjs.init({ publicKey: 'YOUR_PUBLIC_KEY' });
emailjs
.sendForm('YOUR_SERVICE_ID', 'YOUR_TEMPLATE_ID', '#contact-form')
.then((response) => console.log('SUCCESS', response.status));Come si confrontano i due servizi
| Situazione | EmailJS* | Frontmail |
|---|---|---|
| Quota mensile esaurita | Le richieste successive non vengono inviate finché la quota non si azzera o il piano non cambia. | Le richieste vengono accettate e tenute in attesa fino a 14 giorni (3 giorni sul piano Free), poi inviate automaticamente dopo una ricarica. |
| Rate limit della REST API | 1 richiesta al secondo. | Da 2 a 50 richieste al secondo a seconda del piano, più un endpoint batch. |
| Picco stagionale | Passare a un piano superiore. | Mantieni il tuo piano e acquista un pacchetto di crediti valido da 3 a 12 mesi. |
* Informazioni su EmailJS aggiornate a settembre 2026, secondo emailjs.com/pricing. EmailJS è un marchio del rispettivo titolare; Frontmail non è affiliato a EmailJS.
Confronta Frontmail con altri serviziPrezzi
Piani semplici. Pacchetti per i picchi.
Inizia gratis, passa a un piano superiore quando ti serve di più. Con la fatturazione annuale risparmi il 20%.
Free
300 email / mese
0 €/ mese
Gratis per sempre
Inizia gratis- 3 modelli
- Nessun allegato
- Cronologia: 7 giorni
- 1 utente
- 2 richieste / secondo
- Coda dei messaggi in attesa: 3 giorni
- Domini consentiti e Turnstile
- Piè di pagina “Inviato con Frontmail”
Starter
3000 email / mese
7 €/ mese
84 € fatturati annualmente
Scegli Starter- 10 modelli
- Allegati fino a 1 MB per richiesta
- Cronologia: 30 giorni
- 1 utente
- 5 richieste / secondo
- Coda dei messaggi in attesa: 14 giorni
- Margine di scoperto del 10%
- Domini consentiti e Turnstile
- Il più scelto
Pro
10.000 email / mese
15 €/ mese
180 € fatturati annualmente
Scegli Pro- Modelli illimitati
- Allegati fino a 5 MB per richiesta
- Cronologia: 90 giorni
- 5 utenti
- 20 richieste / secondo
- Coda dei messaggi in attesa: 14 giorni
- Margine di scoperto del 10%
- Domini consentiti e Turnstile
Business
50.000 email / mese
39 €/ mese
468 € fatturati annualmente
Scegli Business 50k- Modelli illimitati
- Allegati fino a 25 MB per richiesta
- Cronologia: 180 giorni
- Utenti illimitati
- 50 richieste / secondo
- Coda dei messaggi in attesa: 14 giorni
- Margine di scoperto del 10%
- Domini consentiti e Turnstile
Livelli Business
Pacchetti di crediti
Acquisto una tantum, disponibile con ogni piano. Usati dopo la quota mensile, a partire da quelli che scadono prima.
Confronta tutti i piani
| Piano | Free | Starter | Pro | Business 50k | Business 100k | Business 200k |
|---|---|---|---|---|---|---|
| Prezzo / mese | 0 € | 7 € | 15 € | 39 € | 71 € | 127 € |
| Email / mese | 300 | 3000 | 10.000 | 50.000 | 100.000 | 200.000 |
| Modelli | 3 | 10 | Illimitati | Illimitati | Illimitati | Illimitati |
| Allegati | – | 1 MB | 5 MB | 25 MB | 25 MB | 25 MB |
| Cronologia | 7 giorni | 30 giorni | 90 giorni | 180 giorni | 180 giorni | 180 giorni |
| Utenti | 1 | 1 | 5 | Illimitati | Illimitati | Illimitati |
| Rate limit | 2 rps | 5 rps | 20 rps | 50 rps | 50 rps | 50 rps |
| Scoperto | – | 10% | 10% | 10% | 10% | 10% |
| Messaggi in attesa | 3 giorni | 14 giorni | 14 giorni | 14 giorni | 14 giorni | 14 giorni |
Prezzi IVA esclusa. Alle aziende dell’UE con partita IVA valida fatturiamo in regime di inversione contabile (reverse charge).
Domande sulla fatturazione
La quota non utilizzata passa al mese successivo?
No: la quota mensile si azzera a ogni periodo di fatturazione. I pacchetti di crediti funzionano diversamente: restano validi per 3, 6 o 12 mesi, quindi acquistali quando ti servono.
Cosa succede quando finisco i crediti?
I piani a pagamento usano prima il margine di scoperto. Dopo, i nuovi messaggi vengono messi in attesa (non rifiutati) e partono automaticamente appena acquisti un pacchetto, scatta la ricarica automatica, passi a un piano superiore o inizia un nuovo periodo. Se preferisci un rifiuto netto, imposta la tua organizzazione in modalità di rifiuto e l’API risponderà 402.
Come viene addebitato lo scoperto?
I crediti di scoperto effettivamente usati vengono aggiunti alla fattura successiva. Lo scoperto non usato non costa nulla.
Posso cambiare o disdire il mio piano?
Gli upgrade si applicano subito con un addebito proporzionale. Downgrade e disdette hanno effetto alla fine del periodo già pagato. I pacchetti già acquistati restano validi fino alla scadenza.
In quale valuta pagherò?
I clienti fatturati nell’UE pagano in euro, tutti gli altri in dollari USA. L’IVA viene calcolata al checkout in base al paese di fatturazione e alla partita IVA.
Come posso pagare?
Con carta, Apple Pay o Google Pay e, dove disponibile, con addebito diretto SEPA. Ogni pagamento ha una fattura che puoi scaricare dalla dashboard.
FAQ
Domande frequenti
È sicuro mettere una chiave pubblica nel frontend?
Sì. Una chiave pubblica può inviare solo con i tuoi modelli, solo dai domini consentiti e dietro Turnstile e rate limit. Le chiavi private sono solo per i server e non vanno mai nel codice del browser.
Mi serve un provider email mio?
Sì: Frontmail invia tramite un servizio che colleghi tu, quindi i messaggi partono dal tuo dominio e con la tua reputazione. Per un sito piccolo va benissimo un account Gmail o Outlook personale.
Cosa include il piano Free?
300 email al mese, 3 modelli, protezione antispam e 7 giorni di cronologia. Le email includono un piccolo piè di pagina “Inviato con Frontmail”. Anche sul piano Free puoi acquistare pacchetti di crediti.
Dove vengono conservati i miei dati?
Nella regione AWS eu-central-1 (Francoforte, Germania). Le credenziali dei provider sono cifrate con AWS KMS. La cronologia dei messaggi viene conservata solo per il periodo previsto dal tuo piano.
E se la connessione a Gmail o Outlook scade?
Verifichiamo ogni servizio ogni giorno e subito dopo un errore di autenticazione. Ricevi un’email e un banner nella dashboard; i messaggi usano il servizio di riserva oppure restano in attesa finché non ricolleghi l’account.
Posso inviare anche da un server?
Sì. L’SDK per Node e la REST API accettano una chiave privata, che salta il controllo dell’origine e il CAPTCHA e sblocca l’invio in batch fino a 100 messaggi per richiesta.
Perché Frontmail invece di Amazon SES, Mailgun o l’API di Gmail?
Li usi insieme. Quelle API richiedono una chiave segreta, quindi non si possono chiamare da un browser o da un’app. Frontmail sta nel mezzo: custodisce le credenziali, protegge il modulo dai bot, genera i tuoi modelli e invia tramite il provider che colleghi.
Posso inviare email con Amazon SNS?
SNS è un servizio di notifiche: le sue sottoscrizioni email inviano avvisi in testo semplice agli indirizzi che hanno confermato la sottoscrizione. Va bene per gli avvisi, non per le email ai tuoi clienti. Per inviare dal tuo dominio collega Amazon SES: Frontmail trasforma le sue notifiche di consegna SNS negli stati dei messaggi.
Pubblica il modulo oggi. Smetti di preoccuparti dell’alta stagione.
Piano Free, nessuna carta, API completa. Passa a un piano superiore o aggiungi un pacchetto quando il traffico lo richiede.