Aller au contenu

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.

  • 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.
  1. Ouvrez Services d’envoi → Ajouter un service → Postmark.
  2. 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
  1. Cliquez sur Vérifier et enregistrer – Frontmail lit les informations du server avec le token.
  2. Le service est enregistré une fois la vérification réussie. Les identifiants sont chiffrés avec le chiffrement d’enveloppe d’AWS KMS.

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 Postmark
20240101123456pm._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN…"
; Return-Path personnalisé – aligne SPF sur votre domaine
pm-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=reject une 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.

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

Les webhooks Postmark se configurent par message stream.

  1. Copiez l’URL du webhook depuis la page du service dans Frontmail (bouton de copie) :

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

  • 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 en held_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 failed et crédit remboursé.
  • transient – 5xx, délais dépassés, 429. Relancé avec un délai exponentiel ; une fois les tentatives épuisées, failed et 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.
  • 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