Postmark
Postmark se centra exclusivamente en el correo transaccional y es conocido por una entrega en la bandeja de entrada rápida y fiable. Separa el tráfico transaccional y el masivo en message streams, lo que protege la reputación de tus correos importantes.
Elige Postmark si lo que más te importa es la entregabilidad y la velocidad del correo transaccional (restablecimiento de contraseñas, recibos, confirmaciones de formularios) y no te importa que Postmark revise las cuentas nuevas antes de dejarlas enviar libremente. Postmark no permite el marketing en frío ni el envío a listas compradas. Consulta el resumen de los servicios para ver alternativas.
Requisitos previos
Sección titulada «Requisitos previos»- Una cuenta de Postmark y un server (el nombre que da Postmark a un proyecto), p. ej. «Website».
- Un remitente verificado: una Sender Signature para una sola dirección o, mejor, un dominio verificado (Sender Signatures → Add Domain or Signature).
- Aprobación de la cuenta antes de enviar a destinatarios fuera de tu propio dominio; consulta Sandbox y límites.
- El Server API token de ese server (Servers → tu servidor → API Tokens). Un token de servidor solo puede enviar y leer los datos de su propio servidor: es la opción con menos privilegios. No uses el Account API token.
Conectar en Frontmail
Sección titulada «Conectar en Frontmail»- Abre Servicios de correo → Añadir servicio → Postmark.
- Rellena los campos:
| Campo | Dónde encontrarlo | Ejemplo |
|---|---|---|
| Token de Server API | Servers → tu servidor → API Tokens | a1b2c3d4-e5f6-7890-abcd-ef1234567890 |
| Message stream | Servers → tu servidor → Message Streams; usa un stream Transactional | outbound |
| Usuario del webhook | Opcional: el usuario de Basic auth que configuraste en el webhook de Postmark | frontmail |
| Contraseña del webhook | Opcional: la contraseña correspondiente | s3cr3t-long-random |
| Máx. de correos por segundo | Opcional; por defecto 10/s | 10 |
- Haz clic en Verificar y guardar: Frontmail lee los datos del servidor con el token.
- El servicio se guarda cuando la comprobación es correcta. Las credenciales se cifran con cifrado de sobre de AWS KMS.
DNS: SPF, DKIM y DMARC
Sección titulada «DNS: SPF, DKIM y DMARC»Después de añadir un dominio, Postmark te muestra dos registros para publicar:
; DKIM: el selector incluye una parte basada en la fecha; cópialo desde Postmark20240101123456pm._domainkey.example.com. TXT "k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GN…"
; Return-Path personalizado: alinea SPF con tu dominiopm-bounces.example.com. CNAME pm.mtasv.net.
; DMARC: primero supervisión_dmarc.example.com. TXT "v=DMARC1; p=none; rua=mailto:dmarc@example.com"- El host DKIM tiene la forma
<timestamp>pm._domainkey; copia siempre el valor exacto desde Postmark. - Con el CNAME del Return-Path apuntando a
pm.mtasv.net, no necesitas añadir Postmark a tu registro SPF principal: SPF se comprueba en el subdominio del Return-Path, que gestiona Postmark. - Haz clic en Verify junto a cada registro en Postmark. Endurece DMARC a
p=quarantine/p=rejectcuando los informes estén limpios.
Regiones
Sección titulada «Regiones»Postmark tiene un único endpoint de API (api.postmarkapp.com) y no hay región que elegir. Los datos se procesan en EE. UU.; revisa el DPA de Postmark si te importa que los datos se queden en la UE.
Sandbox y límites
Sección titulada «Sandbox y límites»- Pendiente de aprobación: una cuenta nueva solo puede enviar a direcciones del mismo dominio que el remitente verificado hasta que Postmark la aprueba. Los intentos de enviar a otras direcciones fallan con el código de error
412. Solicita la aprobación en el panel de Postmark; suele resolverse en un día laborable. - Modo de prueba: el token especial
POSTMARK_API_TESTacepta mensajes sin enviarlos; útil para pruebas locales, pero Probar conexión de Frontmail lo rechazará porque no tiene ningún servidor detrás. - Plan gratuito para desarrolladores: 100 correos al mes.
- Postmark mantiene su propia lista de destinatarios inactivos (rebotes permanentes, quejas) por stream; enviarles falla con el código
406.
Webhooks (seguimiento de la entrega)
Sección titulada «Webhooks (seguimiento de la entrega)»Los webhooks de Postmark se configuran por message stream.
-
Copia la URL del webhook de la página del servicio en Frontmail (botón de copiar):
https://api.frontmail.dev/webhooks/providers/postmark/<token> -
En Postmark, abre Servers → tu servidor → el stream (p. ej. Default Transactional Stream) → Webhooks → Add webhook, pega la URL y selecciona los eventos:
| Evento de Postmark | Evento de Frontmail |
|---|---|
| Delivery | delivered |
Bounce – permanente (HardBounce, BadEmailAddress, ManuallyDeactivated) |
bounced: se añade a la lista de supresión |
Bounce – temporal (SoftBounce, Transient, DnsError) |
se registra en el mensaje |
| Spam Complaint | complained: se añade a la lista de supresión |
| Open | opened (activa el seguimiento de aperturas en el stream) |
| Link Click | clicked (activa el seguimiento de enlaces en el stream) |
- Protege el webhook con Basic auth (recomendado): en el formulario del webhook, rellena Basic auth credentials (usuario + una contraseña aleatoria larga) e introduce los mismos valores en los campos Usuario del webhook / Contraseña del webhook del servicio en Frontmail.
Verificación de la firma: Postmark no firma los payloads de los webhooks. El token secreto de la URL identifica el servicio y, si configuras una contraseña del webhook, Frontmail rechaza cualquier solicitud sin las credenciales de Basic auth correctas. Usa el botón Send test de Postmark para comprobarlo.
Frontmail añade a cada mensaje una cabecera X-Frontmail-Message-Id para que los eventos se asocien al mensaje correcto.
Errores habituales
Sección titulada «Errores habituales»- auth: el servicio no funciona (token no válido, remitente sin confirmar, cuenta sin aprobar, stream desconocido). El servicio se marca como
unhealthy; el propietario recibe un correo y un aviso en el panel. Si la plantilla tiene un servicio de respaldo, este toma el relevo; si no, se devuelve el crédito y el mensaje espera en la cola de correos retenidos comoheld_service_errory se envía automáticamente cuando arreglas el servicio (se vuelve a comprobar al guardar y en la comprobación de estado diaria). - permanent: este mensaje no se puede enviar (destinatario no válido o inactivo, error de validación). Servicio de respaldo si está configurado; si no,
failedy se devuelve el crédito. - transient: 5xx, tiempos de espera agotados, 429. Se reintenta con espera exponencial; cuando se agotan los reintentos,
failedy se devuelve el crédito.
| Error de Postmark | Clase | Qué hacer |
|---|---|---|
10 – Bad or missing Server API token (HTTP 401) |
auth | Vuelve a copiar el token del Server (no el de la cuenta). |
400 – Sender signature not defined for From address |
auth | Verifica el dominio o la dirección From en Sender Signatures, o cambia el From de la plantilla. |
401 – Sender signature not confirmed |
auth | Haz clic en el enlace de confirmación que Postmark envió a la dirección del remitente. |
412 – Account pending approval, recipients restricted to your domain |
auth | Solicita la aprobación de la cuenta en Postmark. |
1235 – Message stream not found |
auth | Corrige el ID del Message stream (p. ej. outbound). |
406 – Inactive recipient |
permanent | La dirección rebotó o presentó una queja antes; Postmark la suprime. Reactívala en Postmark solo si estás seguro. |
300 / 422 – Invalid email request / dirección no válida |
permanent | Consulta destinatario no válido. |
HTTP 429 / 500 / 503 |
transient | Límite de velocidad o caída: Frontmail reintenta automáticamente. |
Lista de comprobación
Sección titulada «Lista de comprobación»- Dominio verificado en Postmark (TXT de DKIM + CNAME de Return-Path
pm.mtasv.net) - Registro DMARC publicado, empezando con
p=none - Cuenta aprobada por Postmark
- Token de API del Server (no el de la cuenta) introducido
- Message stream = un stream transaccional (
outbound) - Probar conexión funciona
- Webhook en el stream con Delivery, Bounce, Spam Complaint (+ Open/Click)
- Basic auth en el webhook y las mismas credenciales en Frontmail