Postmark
Postmark se concentre exclusivement sur l’e-mail transactionnel et est réputé pour une remise en boîte de réception rapide et fiable. Il sépare le trafic transactionnel et le trafic en masse en message streams, ce qui protège la réputation de vos e-mails importants.
Choisissez Postmark si la délivrabilité et la rapidité de vos e-mails transactionnels (réinitialisations de mot de passe, reçus, confirmations de formulaire) comptent avant tout et que cela ne vous dérange pas que Postmark examine les nouveaux comptes avant de les laisser envoyer librement. Postmark n’autorise pas la prospection à froid ni le marketing vers des listes achetées. Consultez la présentation des services d’envoi pour d’autres options.
Prérequis
Section intitulée « Prérequis »- Un compte Postmark et un server (le nom que Postmark donne à un projet), p. ex. « Website ».
- Un expéditeur vérifié : soit une Sender Signature pour une adresse unique, soit – mieux – un domaine vérifié (Sender Signatures → Add Domain or Signature).
- L’approbation du compte avant d’envoyer à des destinataires hors de votre propre domaine – voir Sandbox et limites.
- Le Server API token de ce server (Servers → votre server → API Tokens). Un token de server peut uniquement envoyer et lire les données de son propre server – c’est l’option aux droits minimaux. N’utilisez pas l’Account API token.
Connexion dans Frontmail
Section intitulée « Connexion dans Frontmail »- Ouvrez Services d’envoi → Ajouter un service → Postmark.
- Remplissez les champs :
| Champ | Où le trouver | Exemple |
|---|---|---|
| Jeton Server API | Servers → votre server → API Tokens | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
| Message stream | Servers → votre server → Message Streams ; utilisez un stream Transactional | outbound |
| Nom d’utilisateur du webhook | Facultatif – le nom d’utilisateur Basic auth défini sur le webhook Postmark | frontmail |
| Mot de passe du webhook | Facultatif – le mot de passe correspondant | s3cr3t-long-random |
| E-mails par seconde (max.) | Facultatif ; 10/s par défaut | 10 |
- Cliquez sur Vérifier et enregistrer – Frontmail lit les informations du server avec le token.
- Le service est enregistré une fois la vérification réussie. Les identifiants sont chiffrés avec le chiffrement d’enveloppe d’AWS KMS.
DNS : SPF, DKIM et DMARC
Section intitulée « DNS : SPF, DKIM et DMARC »Après l’ajout d’un domaine, Postmark affiche deux enregistrements à publier :
; DKIM – le sélecteur contient une partie basée sur la date, copiez-le depuis Postmark20240101123456pm._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN…"
; Return-Path personnalisé – aligne SPF sur votre domainepm-bounces.example.com. CNAME pm.mtasv.net.
; DMARC – d’abord en surveillance_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"- L’hôte DKIM ressemble à
<timestamp>pm._domainkey; copiez toujours la valeur exacte depuis Postmark. - Avec le CNAME Return-Path vers
pm.mtasv.net, vous n’avez pas besoin d’ajouter Postmark à l’enregistrement SPF de votre domaine racine – SPF est vérifié sur le sous-domaine Return-Path, que Postmark gère. - Cliquez sur Verify à côté de chaque enregistrement dans Postmark. Durcissez DMARC en
p=quarantine/p=rejectune fois les rapports propres.
Postmark a un point de terminaison d’API unique (api.postmarkapp.com) et aucune région à choisir. Les données sont traitées aux États-Unis ; consultez le DPA de Postmark si la localisation des données dans l’UE est importante pour vous.
Sandbox et limites
Section intitulée « Sandbox et limites »- En attente d’approbation : un nouveau compte ne peut envoyer qu’à des adresses du même domaine que l’expéditeur vérifié tant que Postmark ne l’a pas approuvé. Les tentatives d’envoi ailleurs échouent avec le code d’erreur
412. Demandez l’approbation dans le tableau de bord Postmark ; elle est généralement traitée sous un jour ouvré. - Mode test : le token spécial
POSTMARK_API_TESTaccepte les messages sans les envoyer – pratique pour les tests en local, mais Tester la connexion dans Frontmail le refusera, car aucun server ne se trouve derrière. - Offre développeur gratuite : 100 e-mails par mois.
- Postmark tient sa propre liste de destinataires inactifs (rebonds définitifs, plaintes) par stream ; l’envoi vers ces adresses échoue avec le code
406.
Webhooks (suivi de livraison)
Section intitulée « Webhooks (suivi de livraison) »Les webhooks Postmark se configurent par message stream.
-
Copiez l’URL du webhook depuis la page du service dans Frontmail (bouton de copie) :
https://api.frontmail.dev/webhooks/providers/postmark/<token> -
Dans Postmark, ouvrez Servers → votre server → le stream (p. ex. Default Transactional Stream) → Webhooks → Add webhook, collez l’URL et sélectionnez les événements :
| Événement Postmark | Événement Frontmail |
|---|---|
| Delivery | delivered |
Bounce – définitif (HardBounce, BadEmailAddress, ManuallyDeactivated) |
bounced – ajoutée à la liste de suppression |
Bounce – temporaire (SoftBounce, Transient, DnsError) |
enregistré sur le message |
| Spam Complaint | complained – ajoutée à la liste de suppression |
| Open | opened (activez le suivi des ouvertures sur le stream) |
| Link Click | clicked (activez le suivi des liens sur le stream) |
- Protégez le webhook par Basic auth (recommandé) : dans le formulaire du webhook, renseignez les Basic auth credentials (nom d’utilisateur + mot de passe long et aléatoire) et saisissez les mêmes valeurs dans les champs Nom d’utilisateur du webhook / Mot de passe du webhook du service Frontmail.
Vérification de la signature : Postmark ne signe pas le contenu des webhooks. Le token secret dans l’URL identifie le service et, si vous définissez un mot de passe de webhook, Frontmail refuse toute requête sans identifiants Basic auth correspondants. Utilisez le bouton Send test dans Postmark pour le vérifier.
Frontmail ajoute un en-tête X-Frontmail-Message-Id à chaque message pour que les événements correspondent au bon message.
Erreurs courantes
Section intitulée « Erreurs courantes »- auth – le service est cassé (token invalide, expéditeur non confirmé, compte non approuvé, stream inconnu). Le service est marqué
unhealthy; le propriétaire reçoit un e-mail et une bannière dans le tableau de bord. Un service de secours défini sur le modèle prend le relais ; sinon le crédit est remboursé et le message attend dans la file d’attente des e-mails retenus enheld_service_error, puis part automatiquement une fois le service réparé (revérifié à l’enregistrement et lors de la vérification d’état quotidienne). - permanent – ce message ne peut pas être envoyé (destinataire invalide ou inactif, erreur de validation). Service de secours s’il est configuré, sinon
failedet crédit remboursé. - transient – 5xx, délais dépassés, 429. Relancé avec un délai exponentiel ; une fois les tentatives épuisées,
failedet remboursé.
| Erreur Postmark | Catégorie | Que faire |
|---|---|---|
10 – Bad or missing Server API token (HTTP 401) |
auth | Copiez de nouveau le token Server (pas le token Account). |
400 – Sender signature not defined for From address |
auth | Vérifiez le domaine ou l’adresse d’expéditeur dans Sender Signatures, ou modifiez l’expéditeur du modèle. |
401 – Sender signature not confirmed |
auth | Cliquez sur le lien de confirmation que Postmark a envoyé à l’adresse de l’expéditeur. |
412 – Account pending approval, recipients restricted to your domain |
auth | Demandez l’approbation du compte dans Postmark. |
1235 – Message stream not found |
auth | Corrigez l’identifiant du Message stream (p. ex. outbound). |
406 – Inactive recipient |
permanent | L’adresse a déjà généré un rebond ou une plainte ; Postmark la bloque. Ne la réactivez dans Postmark que si vous êtes sûr de vous. |
300 / 422 – Invalid email request / adresse invalide |
permanent | Voir destinataire invalide. |
HTTP 429 / 500 / 503 |
transient | Limite de débit ou panne – Frontmail relance automatiquement. |
Liste de contrôle
Section intitulée « Liste de contrôle »- Domaine vérifié dans Postmark (DKIM TXT + CNAME Return-Path
pm.mtasv.net) - Enregistrement DMARC publié, en commençant par
p=none - Compte approuvé par Postmark
- Token API Server (pas le token Account) saisi
- Message stream = un stream transactionnel (
outbound) - Tester la connexion réussit
- Webhook sur le stream avec Delivery, Bounce, Spam Complaint (+ Open/Click)
- Basic auth sur le webhook, mêmes identifiants dans Frontmail