guía · API de Postmark
¿Cómo debería implementar un equipo de producto la API de Postmark de forma segura?
Implemente la API de Postmark detrás de un worker de servidor autorizado. Verifique el dominio de envío o la firma de remitente, aísle cada entorno y cada carga de trabajo en el servidor y el message stream de Postmark que correspondan, guarde el token de servidor en un gestor de secretos y persista un trabajo de envío duradero en la aplicación antes de llamar a POST /email. Envíe solo los campos aprobados, conserve el MessageID y el ErrorCode exacto de Postmark, y trate la aceptación por la API como evidencia de procesamiento, no de entrega. Proteja y elimine duplicados de los webhooks de entrega y de rebote, aplique las supresiones de destinatarios antes de cada envío, concilie los tiempos de espera ambiguos y pruebe la rotación, los fallos parciales, los reintentos y la exportación antes de pasar a producción.
Defina el límite de la aplicación antes de Postmark
Parta de un evento de negocio autorizado, como un recibo, una verificación, una alerta solicitada o un aviso de seguridad. Persista un trabajo saliente duradero con una clave de evento estable, el inquilino, la clase de mensaje, la revisión de la plantilla, el remitente y los destinatarios aprobados, la base de consentimiento o necesidad, la decisión de supresión vigente y el estado inicial. Ni el navegador, ni la aplicación móvil, ni la plantilla, ni la entrada del usuario deben poder seleccionar un token de servidor de Postmark, una identidad From arbitraria, un message stream, un webhook, un destinatario sin restricciones o metadatos del proveedor. Coloque todas las llamadas al proveedor detrás de un único adaptador del lado del servidor. Separe el tráfico transaccional del de difusión o marketing según el modelo de consentimiento y reputación del producto. La API de Postmark transporta un mensaje; no establece la autorización del inquilino, el consentimiento del destinatario ni la idempotencia de negocio. Reclame el trabajo interno una sola vez, registre cada intento con el proveedor y conserve los identificadores del proveedor como evidencia vinculada al evento de la aplicación, en lugar de usarlos como único sistema de registro.
Use tokens de servidor con un alcance operativo estrecho
La API de correo de Postmark documenta el encabezado X-Postmark-Server-Token para el acceso a la API con alcance de servidor. Guarde cada token en un servicio de secretos gestionado y expóngalo solo al worker que necesita ese servidor y ese entorno. Nunca ponga tokens en el código del cliente, el control de versiones, las URL, los registros, las analíticas, las plantillas, las capturas de pantalla, los tickets, los prompts o los fixtures de prueba. Separe producción de desarrollo y de productos no relacionados, para que una revocación o un uso indebido tengan un impacto acotado. Ensaye la rotación: aprovisione un reemplazo mediante la administración aprobada, actualice el worker, envíe mensajes controlados, confirme la evidencia de la API y de los eventos y, por último, revoque el token antiguo. Trate los errores de autenticación inesperados como una condición para pausar, no como una invitación a reintentar credenciales rápidamente. Restrinja la administración del panel con autenticación sólida y roles. Un token de servidor autoriza operaciones de la API de Postmark para su servidor; la aplicación sigue teniendo que autorizar el inquilino, el remitente, el destinatario, la plantilla y la clase de mensaje.
Verifique la identidad exacta del remitente
Use una firma de remitente o un dominio verificado que controle la organización y confirme la dirección From exacta que usa cada flujo. Haga un inventario, a partir de muestras recibidas sin procesar, del dominio From visible, el return path SMTP, el dominio d= y el selector de DKIM, la dirección de respuesta y el message stream de envío. Publique solo los registros DNS que Postmark exige actualmente para la configuración elegida, después de revisar quién controla SPF, DKIM y DMARC. Conserve los valores anteriores y las instrucciones de reversión. La verificación del proveedor es evidencia de que se superó su comprobación de configuración; no demuestra que todas las rutas de la aplicación usen esa identidad, que DMARC esté alineado, que los destinatarios hayan dado su consentimiento ni que los mensajes lleguen a la bandeja de entrada. Mantenga en la aplicación la autorización de remitentes por inquilino y bloquee los valores From de otros inquilinos. Pruebe los subdominios, las respuestas, los rebotes, los entornos inferiores y las rutas de plantillas. No debilite la política SPF o DMARC de la organización solo para que un indicador del panel se ponga en verde.
Construya una única solicitud POST explícita de correo
Postmark documenta POST /email con campos JSON para el remitente, los destinatarios, el asunto, los cuerpos de texto o HTML, ReplyTo, los encabezados, las etiquetas o metadatos, el message stream, los adjuntos y las opciones de seguimiento. Exponga solo los campos que el producto necesita. Valide y normalice las direcciones, limite el número de destinatarios y de adjuntos, rechace la inyección de encabezados, escape los valores de las plantillas según el contexto de salida y genere el texto y el HTML a partir de una misma revisión aprobada. No ponga secretos ni datos personales innecesarios en etiquetas, metadatos, encabezados, asuntos o nombres de adjuntos, porque pueden aparecer en la actividad y los eventos del proveedor. Seleccione MessageStream a partir de una configuración de confianza, nunca de una entrada arbitraria de la solicitud. Mantenga el payload del proveedor en un solo adaptador para que el código de negocio no dependa de cada campo de Postmark. Guarde una revisión del contenido o un hash seguro para la privacidad cuando las necesidades de auditoría lo justifiquen, en lugar de registrar el cuerpo completo del mensaje.
Interprete la respuesta inmediata de forma restrictiva
El endpoint de correo individual de Postmark documenta campos de respuesta como ErrorCode, Message, MessageID, SubmittedAt e información de los destinatarios. Persista el estado HTTP exacto y la respuesta estructurada del proveedor junto con el intento de la aplicación. Una respuesta exitosa y un MessageID muestran que Postmark aceptó la solicitud de API según su semántica documentada; no muestran que el servidor de destino haya aceptado el mensaje ni que haya llegado a una bandeja de entrada. Clasifique los errores de validación, firma de remitente, autenticación, payload mal formado, cuota y política antes de reintentar. Un tiempo de espera agotado en la solicitud es ambiguo, porque Postmark podría haber aceptado la operación aunque el cliente no recibiera la respuesta. Mantenga ese intento como desconocido, busque en la actividad del proveedor o en los eventos posteriores usando datos de correlación seguros y aplique una regla de conciliación específica para la clase de mensaje antes de reenviar. Nunca prometa una entrega exactamente una vez ni cree un nuevo evento lógico solo porque falló una solicitud HTTP.
Diseñe los reintentos según la evidencia del proveedor y del transporte
Reintente solo los fallos de red, los límites de frecuencia y los errores de servidor del proveedor que lo permitan, con backoff exponencial, jitter, un número finito de intentos y límites de antigüedad en la cola. Corrija los errores permanentes de solicitud, remitente, destinatario, token, plantilla y política en lugar de repetirlos. Mantenga la misma clave de evento de la aplicación y registre los intentos vinculados. Vuelva a comprobar la supresión y la autorización justo antes de cada reintento, porque el estado del destinatario o del negocio puede cambiar mientras el trabajo está en cola. Limite la concurrencia y la frecuencia por servidor, inquilino, message stream, dominio remitente y cohorte de destino, para que una interrupción no pueda acaparar la capacidad. Deténgase ante eventos vencidos, una identidad de remitente revocada, una queja, una baja, un fallo permanente del destinatario o una pausa por incidente. Monitoree la antigüedad de los reintentos, los resultados desconocidos, las clases de respuesta, los fallos de token y la latencia del proveedor. Si Postmark ya realiza reintentos SMTP posteriores tras la aceptación, no cree un bucle agresivo de duplicados en la aplicación por encima de ese comportamiento de transporte.
Proteja los webhooks de entrega y de rebote
Configure solo los tipos de webhook de Postmark que la aplicación necesite y use HTTPS. Aplique los controles de seguridad de webhooks documentados actualmente, restrinja el endpoint al servidor o al flujo esperados, aplique límites de tamaño y de content-type a las solicitudes y nunca confíe en identificadores de mensaje, destinatarios, etiquetas, metadatos o diagnósticos solo porque el JSON se analiza correctamente. Persista o ponga en cola el evento autenticado, o admitido de otra forma segura, antes de devolver una respuesta de éxito. Elimine duplicados según un identificador de evento del proveedor estable, cuando exista, o según una combinación conservadora que no pueda fusionar destinatarios, tipos de evento o intentos. Conserve por separado la hora del suceso y la hora de procesamiento. Cuente con retrasos, reintentos, duplicados y entregas desordenadas. Correlacione el MessageID y los metadatos de confianza con el inquilino y el trabajo internos antes de cambiar el estado. Rote las credenciales o las URL de los webhooks de forma independiente de los tokens de la API, monitoree las solicitudes no autorizadas y el retraso, y conserve los payloads sin procesar solo el tiempo que justifiquen las necesidades operativas y las políticas.
Modele los estados de entrega, rebote y supresión
Asigne la evidencia de entrega y de rebote de Postmark a un modelo interno por destinatario, conservando el tipo original del proveedor, el MessageID, la marca de tiempo, el estado o la clasificación del rebote y el diagnóstico. La aceptación por la API, el procesamiento de Postmark, la aceptación por el servidor de destino, la no entrega posterior, la carpeta del buzón en la que acaba el mensaje y la interacción son estados distintos. Un evento de entrega normalmente refleja la observación documentada del proveedor sobre el servidor de destino, no una vista de la carpeta final. Los fallos temporales pueden justificar un manejo acotado en el transporte; los fallos permanentes de dirección confirmados deberían crear una supresión con alcance por destinatario. Las quejas y las bajas deben actualizar la seguridad del destinatario antes de los trabajos posteriores. Proteja la reactivación manual con autorización, un motivo e historial de auditoría. Mantenga el estado de consentimiento y supresión en el producto para que una migración no elimine la protección de los destinatarios. No deduzca la lectura humana a partir del seguimiento de aperturas o clics, que es instrumentación de interacción y puede verse afectada por las tecnologías de privacidad.
Pruebe el sandbox, la producción y las rutas de fallo
Use las funciones de prueba o de sandbox documentadas por Postmark y destinatarios controlados dedicados, no direcciones reales de clientes, para los fallos deterministas. Pruebe tokens válidos y no válidos, identidades From no autorizadas, destinatarios aprobados y bloqueados, texto y HTML, Unicode, adjuntos, minimización de metadatos, message streams, tiempos de espera antes y después de la aceptación, respuestas de límite de frecuencia, autenticación de webhooks, entregas duplicadas, eventos desordenados, clasificaciones de rebotes, supresión y rotación de tokens. Verifique los encabezados recibidos sin procesar, la alineación DKIM y DMARC, Reply-To, la configuración de seguimiento y la correlación del MessageID. Confirme que los entornos inferiores no pueden llegar a destinatarios de producción. Haga pruebas de exportación y migración de las supresiones y de la evidencia operativa. Bloquee el lanzamiento si hay acceso a remitentes o eventos entre inquilinos, si no se pueden aplicar las supresiones, si la admisión de webhooks es ambigua, si hay secretos en los registros, si los reintentos no tienen límite o si no es posible pausar de forma segura el servidor o el flujo afectados.
Cómo encaja SendHQ
SendHQ es una API de correo electrónico con alcance por espacio de trabajo para comunicaciones de producto esperadas. Su documentación pública cubre el envío desde dominios verificados, correo entrante, plantillas alojadas, eventos de entrega, supresiones y un panel web.
Preguntas frecuentes
¿Qué endpoint envía un correo individual a través de Postmark?
La API de correo actual de Postmark documenta POST /email con un token de servidor y campos de mensaje JSON estructurados. Llámela solo desde código de servidor autorizado.
¿Dónde se debe guardar un token de servidor de Postmark?
Guárdelo en un sistema de secretos gestionado del lado del servidor, con un alcance estrecho por entorno y carga de trabajo, acceso auditado, rotación probada y sin exposición al cliente.
¿Una respuesta exitosa de la API de Postmark demuestra la entrega?
No. Registra la aceptación por el proveedor según el contrato inmediato de la API. La aceptación por el servidor de destino, el rebote, la llegada al buzón y la interacción requieren evidencia posterior y acotada.
¿Cómo se deben reintentar los tiempos de espera agotados en Postmark?
Trate como ambiguo un tiempo de espera agotado después de un posible envío. Concilie la actividad del proveedor o los eventos posteriores antes de reenviar, usando la misma clave duradera de evento de negocio.
¿Se debe suponer que los webhooks de Postmark son únicos y llegan en orden?
No. Diseñe teniendo en cuenta retrasos, reintentos, duplicados y llegadas desordenadas. Admita los eventos de forma segura, captúrelos de forma duradera, elimine duplicados y aplique transiciones monótonas por destinatario.
¿Los metadatos de Postmark deben contener secretos de clientes?
No. Use valores de correlación acotados y seguros para la privacidad. Los metadatos, las etiquetas, los encabezados, las vistas de actividad, los eventos, los registros y las exportaciones pueden exponer esos campos en la operación.
¿Un evento de entrega demuestra la llegada a la bandeja de entrada?
No. Es evidencia acotada del proveedor, normalmente la aceptación por el servidor de destino. El filtrado del receptor, las reglas del buzón, la carpeta final y la interacción humana son cuestiones aparte.
¿Dónde puedo encontrar la documentación de la API de SendHQ?
Consulte la documentación pública de SendHQ sobre su API de correo electrónico, envío desde dominios verificados, correo entrante, plantillas, eventos de entrega y supresiones.
Fuentes
- Email API de Postmark — Postmark
- Descripción general de la API de Postmark — Postmark
- Descripción general de los webhooks de Postmark — Postmark
- Webhook de rebotes de Postmark — Postmark
- RFC 5321: protocolo simple de transferencia de correo (SMTP) — RFC Editor