Postmark
Postmark si concentra esclusivamente sulle email transazionali ed è noto per una consegna in casella veloce e affidabile. Separa il traffico transazionale da quello massivo in message stream, proteggendo così la reputazione delle tue email importanti.
Scegli Postmark quando per te contano soprattutto la recapitabilità e la velocità della posta transazionale (reimpostazioni della password, ricevute, conferme dei moduli) e non ti dispiace che Postmark esamini i nuovi account prima che possano inviare liberamente. Postmark non consente il marketing a freddo o verso liste acquistate. Per le alternative vedi la panoramica dei servizi.
Prerequisiti
Sezione intitolata “Prerequisiti”- Un account Postmark e un server (il nome che Postmark dà a un progetto), ad es. «Sito web».
- Un mittente verificato: una Sender Signature per un singolo indirizzo oppure, meglio, un dominio verificato (Sender Signatures → Add Domain or Signature).
- L’approvazione dell’account prima di inviare a destinatari fuori dal tuo dominio: vedi Sandbox e limiti.
- Il Server API token di quel server (Servers → il tuo server → API Tokens). Un server token può solo inviare e leggere i dati del proprio server: è l’opzione con i privilegi minimi. Non usare l’Account API token.
Collegamento in Frontmail
Sezione intitolata “Collegamento in Frontmail”- Apri Servizi email → Aggiungi servizio → Postmark.
- Compila i campi:
| Campo | Dove trovarlo | Esempio |
|---|---|---|
| Token Server API | Servers → il tuo server → API Tokens | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
| Message stream | Servers → il tuo server → Message Streams; usa uno stream Transactional | outbound |
| Nome utente del webhook | Facoltativo – il nome utente Basic auth impostato sul webhook di Postmark | frontmail |
| Password del webhook | Facoltativa – la password corrispondente | s3cr3t-long-random |
| Max email al secondo | Facoltativo; predefinito 10/s | 10 |
- Clicca Verifica e salva: Frontmail legge i dettagli del server con il token.
- Il servizio viene salvato quando il controllo va a buon fine. Le credenziali sono cifrate con AWS KMS (envelope encryption).
DNS: SPF, DKIM e DMARC
Sezione intitolata “DNS: SPF, DKIM e DMARC”Dopo aver aggiunto un dominio, Postmark mostra due record da pubblicare:
; DKIM – il selettore contiene una parte basata sulla data, copiala da Postmark20240101123456pm._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN…"
; Return-Path personalizzato – allinea SPF con il tuo dominiopm-bounces.example.com. CNAME pm.mtasv.net.
; DMARC – prima il monitoraggio_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"- L’host DKIM ha la forma
<timestamp>pm._domainkey; copia sempre il valore esatto da Postmark. - Con il CNAME del Return-Path verso
pm.mtasv.netnon devi aggiungere Postmark al record SPF del dominio principale: SPF viene controllato sul sottodominio del Return-Path, gestito da Postmark. - Clicca Verify accanto a ogni record in Postmark. Rendi DMARC più restrittivo (
p=quarantine/p=reject) quando i report sono puliti.
Regioni
Sezione intitolata “Regioni”Postmark ha un unico endpoint API (api.postmarkapp.com) e nessuna regione da scegliere. I dati vengono trattati negli USA; se per te conta la residenza dei dati nell’UE, controlla il DPA di Postmark.
Sandbox e limiti
Sezione intitolata “Sandbox e limiti”- In attesa di approvazione: un nuovo account può inviare solo a indirizzi dello stesso dominio del mittente verificato finché Postmark non lo approva. I tentativi di inviare altrove falliscono con il codice di errore
412. Richiedi l’approvazione dalla dashboard di Postmark; di solito viene gestita entro un giorno lavorativo. - Modalità di test: il token speciale
POSTMARK_API_TESTaccetta i messaggi senza inviarli, utile per i test in locale, ma Prova connessione di Frontmail lo rifiuterà perché non ha un server dietro. - Piano gratuito per sviluppatori: 100 email al mese.
- Postmark mantiene una propria lista di destinatari inattivi (hard bounce, reclami) per stream; l’invio verso di loro fallisce con il codice
406.
Webhook (tracciamento della consegna)
Sezione intitolata “Webhook (tracciamento della consegna)”I webhook di Postmark si configurano per message stream.
-
Copia l’URL del webhook dalla pagina del servizio in Frontmail (pulsante di copia):
https://api.frontmail.dev/webhooks/providers/postmark/<token> -
In Postmark apri Servers → il tuo server → lo stream (ad es. Default Transactional Stream) → Webhooks → Add webhook, incolla l’URL e seleziona gli eventi:
| Evento Postmark | Evento Frontmail |
|---|---|
| Delivery | delivered |
Bounce – hard (HardBounce, BadEmailAddress, ManuallyDeactivated) |
bounced – aggiunto alla lista di soppressione |
Bounce – soft/temporaneo (SoftBounce, Transient, DnsError) |
registrato sul messaggio |
| Spam Complaint | complained – aggiunto alla lista di soppressione |
| Open | opened (attiva il tracciamento delle aperture sullo stream) |
| Link Click | clicked (attiva il tracciamento dei link sullo stream) |
- Proteggi il webhook con Basic auth (consigliato): nel modulo del webhook compila Basic auth credentials (nome utente + una password lunga e casuale) e inserisci gli stessi valori nei campi Nome utente del webhook / Password del webhook del servizio in Frontmail.
Verifica della firma: Postmark non firma i payload dei webhook. Il token segreto nell’URL identifica il servizio e, quando imposti una password del webhook, Frontmail rifiuta qualsiasi richiesta senza credenziali Basic auth corrispondenti. Per verificarlo usa il pulsante Send test in Postmark.
Frontmail aggiunge a ogni messaggio un’intestazione X-Frontmail-Message-Id, così gli eventi vengono associati al messaggio giusto.
Errori comuni
Sezione intitolata “Errori comuni”- auth – il servizio non funziona (token non valido, mittente non confermato, account non approvato, stream sconosciuto). Il servizio viene segnato come
unhealthy; il proprietario riceve un’email e un banner nella dashboard. Subentra il servizio di riserva del modello, se c’è; altrimenti il credito viene rimborsato e il messaggio aspetta nella coda dei messaggi in attesa comeheld_service_errore viene inviato automaticamente dopo che avrai sistemato il servizio (ricontrollato al salvataggio e dal controllo di stato giornaliero). - permanent – questo messaggio non può essere inviato (destinatario non valido o inattivo, errore di validazione). Servizio di riserva se configurato, altrimenti
failede credito rimborsato. - transient – 5xx, timeout, 429. Ritentato con backoff esponenziale; esauriti i tentativi,
failede rimborsato.
| Errore Postmark | Classe | Cosa fare |
|---|---|---|
10 – Bad or missing Server API token (HTTP 401) |
auth | Copia di nuovo il token del Server (non quello dell’account). |
400 – Sender signature not defined for From address |
auth | Verifica il dominio/indirizzo mittente in Sender Signatures o cambia il mittente del modello. |
401 – Sender signature not confirmed |
auth | Clicca il link di conferma che Postmark ha inviato all’indirizzo del mittente. |
412 – Account pending approval, recipients restricted to your domain |
auth | Richiedi l’approvazione dell’account in Postmark. |
1235 – Message stream not found |
auth | Correggi l’ID del Message stream (ad es. outbound). |
406 – Inactive recipient |
permanent | L’indirizzo ha generato un bounce o un reclamo in passato; Postmark lo blocca. Riattivalo in Postmark solo se ne sei sicuro. |
300 / 422 – Invalid email request / indirizzo non valido |
permanent | Vedi destinatario non valido. |
HTTP 429 / 500 / 503 |
transient | Limite di frequenza o disservizio: Frontmail ritenta automaticamente. |
Checklist
Sezione intitolata “Checklist”- Dominio verificato in Postmark (DKIM TXT + CNAME del Return-Path
pm.mtasv.net) - Record DMARC pubblicato, partendo da
p=none - Account approvato da Postmark
- Inserito il token API del Server (non quello dell’account)
- Message stream = uno stream transazionale (
outbound) - Prova connessione va a buon fine
- Webhook sullo stream con Delivery, Bounce, Spam Complaint (+ Open/Click)
- Basic auth sul webhook, stesse credenziali in Frontmail