guida · postmark api

Come dovrebbe implementare la Postmark API in sicurezza un team di prodotto?

Implementa la Postmark API dietro un worker server autorizzato. Verifica il dominio di invio o la sender signature, isola ogni ambiente e carico di lavoro nel server e nel message stream Postmark appropriati, conserva il server token in un secret manager e salva un job di invio applicativo persistente prima di chiamare POST /email. Invia solo i campi approvati, conserva il MessageID e l'ErrorCode esatto di Postmark e considera l'accettazione da parte dell'API come prova di elaborazione, non di consegna. Proteggi e deduplica i webhook di consegna e di bounce, applica le soppressioni dei destinatari prima di ogni invio, riconcilia i timeout ambigui e testa rotazione, errori parziali, nuovi tentativi ed esportazione prima della produzione.

Definisci il confine dell'applicazione prima di Postmark

Parti da un evento di business autorizzato, come una ricevuta, una verifica, un avviso richiesto o una notifica di sicurezza. Salva un job di invio persistente con una chiave di evento stabile, tenant, classe di messaggio, revisione del template, mittente e destinatari approvati, base di consenso o di necessità, decisione di soppressione attuale e stato iniziale. Browser, app mobili, template e input degli utenti non devono poter selezionare un server token Postmark, un'identità From arbitraria, un message stream, un webhook, un destinatario senza restrizioni o metadati del provider. Metti tutte le chiamate al provider dietro un unico adapter lato server. Separa il traffico transazionale da quello broadcast o di marketing secondo il modello di consenso e reputazione del prodotto. L'API di Postmark trasporta un messaggio; non stabilisce l'autorizzazione del tenant, il consenso del destinatario né l'idempotenza di business. Prendi in carico il job interno una sola volta, registra ogni tentativo verso il provider e conserva gli identificatori del provider come evidenze collegate all'evento applicativo, invece di usarli come unico sistema di riferimento.

Usa server token con un ambito operativo ristretto

L'Email API di Postmark documenta l'intestazione X-Postmark-Server-Token per l'accesso API a livello di server. Conserva ogni token in un servizio gestito di segreti ed esponilo solo al worker che ha bisogno di quel server e di quell'ambiente. Non inserire mai i token nel codice client, nel controllo di versione, negli URL, nei log, negli analytics, nei template, negli screenshot, nei ticket, nei prompt o nelle fixture di test. Separa la produzione dallo sviluppo e dai prodotti non correlati, così che una revoca o un uso improprio abbiano un impatto limitato. Prova la rotazione: crea un token sostitutivo tramite l'amministrazione approvata, aggiorna il worker, invia messaggi controllati, conferma le evidenze API e degli eventi, poi revoca il vecchio token. Tratta gli errori di autenticazione imprevisti come condizione di pausa, non come invito a ritentare rapidamente con le credenziali. Limita l'amministrazione della dashboard con un'autenticazione forte e ruoli. Un server token autorizza le operazioni API di Postmark per il relativo server; l'applicazione deve comunque autorizzare tenant, mittente, destinatario, template e classe di messaggio.

Verifica l'identità esatta del mittente

Usa una sender signature o un dominio verificato controllati dall'organizzazione e conferma l'indirizzo From esatto usato da ogni stream. Su campioni raw ricevuti, fai un inventario di dominio From visibile, return path SMTP, dominio d= e selettore DKIM, indirizzo di risposta e message stream di invio. Pubblica solo i record DNS attualmente richiesti da Postmark per la configurazione scelta, dopo aver verificato la gestione esistente di SPF, DKIM e DMARC. Conserva i valori precedenti e le istruzioni di rollback. La verifica del provider dimostra che il suo controllo di configurazione è stato superato; non dimostra che ogni percorso dell'applicazione usi quell'identità, che DMARC sia allineato, che i destinatari abbiano dato il consenso o che i messaggi arrivino in inbox. Mantieni nell'applicazione l'autorizzazione dei mittenti per tenant e blocca i valori From di altri tenant. Testa sottodomini, risposte, bounce, ambienti non di produzione e percorsi dei template. Non indebolire la policy SPF o DMARC dell'organizzazione solo per far diventare verde un indicatore della dashboard.

Costruisci un'unica richiesta POST email esplicita

Postmark documenta POST /email con campi JSON per mittente, destinatari, oggetto, corpo di testo o HTML, ReplyTo, intestazioni, tag o metadati, message stream, allegati e opzioni di tracciamento. Esponi solo i campi di cui il prodotto ha bisogno. Convalida e normalizza gli indirizzi, limita il numero di destinatari e allegati, rifiuta l'injection nelle intestazioni, esegui l'escape dei valori del template in base al contesto di output e genera testo e HTML da un'unica revisione approvata. Non inserire segreti o dati personali non necessari in tag, metadati, intestazioni, oggetti o nomi degli allegati, perché possono emergere nell'attività e negli eventi del provider. Seleziona MessageStream da una configurazione attendibile, mai da un input arbitrario della richiesta. Tieni il payload del provider in un unico adapter, così che il codice di business non dipenda da ogni campo di Postmark. Quando le esigenze di audit lo giustificano, conserva una revisione del contenuto o un hash sicuro per la privacy invece di registrare nei log l'intero corpo del messaggio.

Interpreta la risposta immediata in senso stretto

L'endpoint per l'invio di singole email di Postmark documenta campi di risposta come ErrorCode, Message, MessageID, SubmittedAt e informazioni sul destinatario. Salva lo stato HTTP esatto e la risposta strutturata del provider insieme al tentativo applicativo. Una risposta positiva e un MessageID mostrano che Postmark ha accettato la richiesta API secondo la semantica documentata; non mostrano che il server di destinazione abbia accettato il messaggio né che sia arrivato in inbox. Classifica gli errori di convalida, di sender signature, di autenticazione, di payload malformato, di quota e di policy prima di ritentare. Un timeout della richiesta è ambiguo, perché Postmark potrebbe aver accettato l'operazione mentre il client non ha ricevuto la risposta. Lascia quel tentativo in stato sconosciuto, cerca nell'attività del provider o negli eventi successivi usando dati di correlazione sicuri e applica una regola di riconciliazione specifica per la classe di messaggio prima di inviare di nuovo. Non promettere mai una consegna exactly-once e non creare un nuovo evento logico solo perché una richiesta HTTP è fallita.

Progetta i nuovi tentativi in base alle evidenze del provider e del trasporto

Ritenta solo gli errori di rete idonei, i limiti di frequenza (rate limit) e gli errori server del provider, con backoff esponenziale, jitter, un numero finito di tentativi e limiti sull'età in coda. Correggi gli errori permanenti di richiesta, mittente, destinatario, token, template e policy invece di riproporli. Mantieni la stessa chiave di evento applicativo e registra i tentativi collegati. Ricontrolla soppressione e autorizzazione subito prima di ogni nuovo tentativo, perché lo stato del destinatario o del business può cambiare mentre il job è in coda. Limita concorrenza e frequenza per server, tenant, message stream, dominio mittente e coorte di destinazione, così che un'interruzione non monopolizzi la capacità. Fermati in caso di eventi scaduti, identità del mittente revocata, segnalazione di spam, disiscrizione, errore permanente del destinatario o pausa per incidente. Monitora l'età dei tentativi, gli esiti sconosciuti, le classi di risposta, gli errori dei token e la latenza del provider. Se Postmark esegue già nuovi tentativi SMTP a valle dopo l'accettazione, non aggiungere sopra quel comportamento di trasporto un ciclo applicativo aggressivo che genera duplicati.

Proteggi i webhook di consegna e di bounce

Configura solo i tipi di webhook Postmark di cui l'applicazione ha bisogno e usa HTTPS. Applica i controlli di sicurezza dei webhook attualmente documentati, limita l'endpoint al server o allo stream previsti, imponi limiti su dimensione della richiesta e content type e non fidarti mai di identificatori dei messaggi, destinatari, tag, metadati o diagnostica solo perché il JSON viene analizzato correttamente. Salva o metti in coda l'evento autenticato, o comunque ammesso in modo sicuro, prima di restituire una risposta di successo. Deduplica in base a un identificatore di evento stabile del provider, quando disponibile, oppure a una chiave composita prudente che non possa unire destinatari, tipi di evento o tentativi diversi. Conserva separatamente l'ora in cui l'evento si è verificato e quella di elaborazione. Aspettati ritardi, nuovi tentativi, duplicati e consegne fuori ordine. Correla MessageID e metadati attendibili al tenant e al job interni prima di cambiare stato. Ruota le credenziali o gli URL dei webhook indipendentemente dai token API, monitora richieste non autorizzate e ritardi e conserva i payload raw solo per il tempo giustificato dalle esigenze operative e di policy.

Modella gli stati di consegna, bounce e soppressione

Mappa le evidenze di consegna e di bounce di Postmark su un modello interno a livello di destinatario, mantenendo il tipo originale del provider, il MessageID, il timestamp, lo stato o la classificazione del bounce e la diagnostica. Accettazione da parte dell'API, elaborazione di Postmark, accettazione da parte del server di destinazione, mancata consegna successiva, cartella nella casella ed engagement sono stati diversi. Un evento delivered riflette di norma l'osservazione del server di destinazione documentata dal provider, non una vista sulla cartella finale. Gli errori temporanei possono giustificare una gestione limitata del trasporto; gli errori permanenti confermati di un indirizzo dovrebbero creare una soppressione a livello di destinatario. Segnalazioni di spam e disiscrizioni devono aggiornare la sicurezza del destinatario prima dei job successivi. Proteggi la riattivazione manuale con autorizzazione, motivazione e cronologia di audit. Mantieni nel prodotto lo stato di consenso e di soppressione, così che una migrazione non cancelli le protezioni dei destinatari. Non dedurre la lettura da parte di una persona dal tracciamento di aperture o clic, che è uno strumento di misura dell'engagement e può essere influenzato dalle tecnologie per la privacy.

Testa sandbox, produzione e percorsi di errore

Per gli errori deterministici usa le funzionalità di test o sandbox documentate da Postmark e destinatari controllati dedicati, non indirizzi reali dei clienti. Testa token validi e non validi, identità From non autorizzate, destinatari approvati e bloccati, testo e HTML, Unicode, allegati, minimizzazione dei metadati, message stream, timeout della richiesta prima e dopo l'accettazione, risposte di rate limit, autenticazione dei webhook, consegne duplicate, eventi fuori ordine, classificazioni dei bounce, soppressione e rotazione dei token. Verifica le intestazioni raw ricevute, l'allineamento DKIM e DMARC, il Reply-To, la configurazione del tracciamento e la correlazione del MessageID. Conferma che gli ambienti non di produzione non possano raggiungere destinatari di produzione. Esegui test di esportazione e migrazione per soppressioni ed evidenze operative. Blocca il lancio in caso di accesso a mittenti o eventi di altri tenant, applicazione delle soppressioni non disponibile, ammissione ambigua dei webhook, segreti nei log, tentativi illimitati o impossibilità di mettere in pausa in sicurezza il server o lo stream interessato.

Come si inserisce SendHQ

SendHQ è un'API email con ambito limitato al workspace per comunicazioni di prodotto previste. La documentazione pubblica copre l'invio da domini verificati, le email in entrata, i template ospitati, gli eventi di consegna, le soppressioni e una dashboard web.

Domande frequenti

Quale endpoint invia una singola email tramite Postmark?

L'attuale Email API di Postmark documenta POST /email con un server token e campi del messaggio in JSON strutturato. Chiamalo solo da codice server autorizzato.

Dove va conservato un server token di Postmark?

In un sistema gestito di segreti lato server, con ambito ristretto per ambiente e carico di lavoro, accessi sottoposti ad audit, rotazione testata e nessuna esposizione al client.

Una risposta positiva della Postmark API dimostra la consegna?

No. Registra l'accettazione da parte del provider secondo il contratto API immediato. Accettazione da parte del server di destinazione, bounce, posizionamento nella casella ed engagement richiedono evidenze successive con un ambito preciso.

Come vanno ritentati i timeout delle richieste a Postmark?

Tratta come ambiguo un timeout avvenuto dopo un possibile invio. Riconcilia l'attività del provider o gli eventi successivi prima di inviare di nuovo, usando la stessa chiave persistente dell'evento di business.

Si può presumere che i webhook di Postmark siano univoci e ordinati?

No. Progetta tenendo conto di ritardi, nuovi tentativi, duplicati e arrivi fuori ordine. Ammetti gli eventi in modo sicuro, salvali in modo persistente, deduplicali e applica transizioni monotone a livello di destinatario.

I metadati di Postmark possono contenere segreti dei clienti?

No. Usa valori di correlazione limitati e sicuri per la privacy. Metadati, tag, intestazioni, viste di attività, eventi, log ed esportazioni possono esporre quei campi a livello operativo.

Un evento delivered dimostra l'arrivo in inbox?

No. È un'evidenza del provider con un ambito preciso, di solito l'accettazione da parte del server di destinazione. Filtri del destinatario, regole della casella, cartella finale ed engagement umano restano separati.

Dove posso trovare la documentazione API di SendHQ?

Consulta la documentazione pubblica di SendHQ per la sua API email, l'invio da domini verificati, le email in entrata, i template, gli eventi di consegna e le soppressioni.

Fonti