Email da un modello
notify.email_template invia email a partire da un modello con segnaposto — {{nome}}, {{importo}}, {{scadenza}} — così la struttura resta identica e cambiano solo i dati. Definisci il modello una volta, poi lo richiami passando i valori: stesso prezzo di un’email normale.
Un modello, infiniti destinatari
Se mandi cento email quasi identiche — cambia solo il nome, l’importo o la data — scrivere il testo ogni volta è tempo perso e rischio di errori. Con un modello definisci la struttura una sola volta, con segnaposto tra doppie graffe come {{nome}} o {{scadenza}}, e a ogni invio passi solo i valori che cambiano. Il resto — layout, tono, firma — resta identico e coerente.
Come si richiama il modello
Salvi il modello con un identificativo, poi lo richiami passando una coppia chiave-valore per ogni segnaposto: il sistema sostituisce {{nome}} con «Marco» o {{importo}} con «120,00 €» e invia il risultato. Funziona dalla pagina web o via API, con lo stesso formato di richiesta di un’email normale, solo con un livello di riutilizzo in più: definisci una volta il testo attorno ai segnaposto, poi riusi la struttura tutte le volte che serve.
Dove conviene davvero
Il modello ha senso quando il messaggio si ripete con dati diversi: conferme d’ordine, promemoria di scadenza, benvenuto a un nuovo utente. Per un’email unica, scritta una volta sola, basta notify.email senza segnaposto. Il vantaggio cresce con il numero di invii: meno probabilità di refusi, tono sempre uguale, meno tempo speso a riscrivere lo stesso paragrafo ogni volta che cambia solo il destinatario o l’importo.
Il prezzo non cambia rispetto a un’email normale
Un’email da modello costa come una email normale: $0.002 a chiamata più $0.0035 per email inviata, $0.0055 in totale. Il modello in sé non ha un costo separato: paghi solo gli invii effettivi, al prezzo pubblicato in dollari, senza canone per mantenerlo salvato. Mille email da modello, come mille email normali, costano $5.50 in totale, comprese di chiamata e consegna.
Casi d'uso
Benvenuto ai nuovi iscritti alla newsletter
La Libreria Bianchi di Genova manda un’email di benvenuto a ogni nuovo iscritto con lo stesso layout e il nome inserito automaticamente: Francesca Colombo lo riceve un attimo dopo aver lasciato l’indirizzo.
Promemoria di rinnovo abbonamento
Consulenza IT Marchetti S.r.l. di Trento usa un modello con {{cliente}}, {{scadenza}} e {{importo}} per avvisare ogni cliente del rinnovo annuale, senza scrivere una riga diversa per ciascuno.
Conferma di prenotazione in agriturismo
L’Agriturismo Il Casale Verde di Siena invia la conferma di prenotazione con date, numero ospiti e indicazioni stradali sempre nello stesso formato: cambia solo ciò che riguarda l’ospite, come Luca Esposito.
Domande frequenti
Quanti segnaposto posso usare in un modello?
Quanti ne servono al messaggio: nome, importo, data, link personalizzato. Ogni segnaposto tra doppie graffe viene sostituito con il valore che passi alla chiamata.
Il modello resta salvato per i prossimi invii?
Sì, lo definisci una volta e lo richiami ogni volta che serve, passando solo i dati che cambiano. Non serve riscriverlo a ogni email.
Cosa succede se dimentico di passare un valore per un segnaposto?
L’invio segnala l’errore prima di partire, così non arriva un’email con {{nome}} scritto alla lettera al posto del destinatario vero.
Costa di più di un’email normale scritta a mano?
No, il prezzo è identico: $0.002 a chiamata più $0.0035 per email, $0.0055 in totale. Il modello è comodità, non un servizio a parte.
Serve un account per salvare i modelli?
Oggi non c’è un sistema di account: il modello viaggia con la chiamata stessa. Se ti serve un modello riutilizzabile su molti invii, scrivici e vediamo la soluzione più comoda per il tuo caso.
Posso usare HTML nel modello, non solo testo semplice?
Sì, il corpo può essere testo semplice o HTML, segnaposto compresi. Il rendering finale dipende dal client email del destinatario, come per qualsiasi email HTML.
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/notify/email-template \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"input":"…"}'const res = await fetch("https://api.kit.forhosting.com/notify/email-template", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"input": "…"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/notify/email-template",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"input": "…"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/notify/email-template", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"input":"…"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"input":"…"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/notify/email-template", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"input": "…"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "notify.email_template",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |