Salta ai contenuti

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.

  • 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.
  1. Apri Servizi email → Aggiungi servizio → Postmark.
  2. 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
  1. Clicca Verifica e salva: Frontmail legge i dettagli del server con il token.
  2. Il servizio viene salvato quando il controllo va a buon fine. Le credenziali sono cifrate con AWS KMS (envelope encryption).

Dopo aver aggiunto un dominio, Postmark mostra due record da pubblicare:

; DKIM – il selettore contiene una parte basata sulla data, copiala da Postmark
20240101123456pm._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN…"
; Return-Path personalizzato – allinea SPF con il tuo dominio
pm-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.net non 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.

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.

  • 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_TEST accetta 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.

I webhook di Postmark si configurano per message stream.

  1. Copia l’URL del webhook dalla pagina del servizio in Frontmail (pulsante di copia):

    https://api.frontmail.dev/webhooks/providers/postmark/<token>
  2. 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)
  1. 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.

  • 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 come held_service_error e 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 failed e credito rimborsato.
  • transient – 5xx, timeout, 429. Ritentato con backoff esponenziale; esauriti i tentativi, failed e 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.
  • 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