Ir para o conteudo principal

Postmark (ActiveCampaign): Guia tecnico completo para email transacional

Por CaptainDNS
Publicado em 28 de janeiro de 2026

Dashboard Postmark com Message Streams e configuracao DNS DKIM
TL;DR
  • Postmark, especializado em transacional, adquirido pela ActiveCampaign em 2022, aposta na entregabilidade excepcional com separacao rigorosa transacional/broadcast via Message Streams.
  • API REST simples em api.postmarkapp.com com header X-Postmark-Server-Token, 50 destinatarios max por email, 500 mensagens por batch.
  • DKIM 1024 bits com seletor timestampado ([timestamp]pm._domainkey), rotacao manual trimestral recomendada.
  • Return-Path customizado via CNAME pm-bounces.captaindns.compm.mtasv.net para alinhamento SPF DMARC relaxed apenas (nao strict).
  • IP dedicado a 50$/mes a partir de 300K emails/mes, warm-up automatico de 3-6 semanas.
  • Planos a partir de 15$/mes para 10K emails (Basic), plano Free Developer limitado a 100 emails/mes.

Introducao

Postmark construiu uma reputacao de excelencia em email transacional, com uma filosofia clara: entregabilidade acima de tudo. Adquirido pela ActiveCampaign em maio de 2022, o servico permanece como produto autonomo, mantendo sua equipe e DNA tecnico. A plataforma processa bilhoes de emails com foco exclusivo no transacional (confirmacoes de pedido, redefinicoes de senha, notificacoes).

A particularidade do Postmark reside na separacao rigorosa entre transacional e broadcast via Message Streams. Essa arquitetura garante que seus emails criticos nunca sejam impactados por campanhas de marketing. O pool de IP compartilhado e ativamente monitorado para manter uma reputacao impecavel.

Este guia e direcionado a desenvolvedores, DevOps e arquitetos de sistemas que buscam integrar o Postmark com uma compreensao completa da infraestrutura: configuracao DNS, escolha API vs SMTP, gestao de IPs, webhooks e limites tecnicos.

API REST vs SMTP Relay: arquitetura e escolha de integracao

Postmark oferece dois metodos de integracao, cada um adaptado a casos de uso especificos.

Comparacao entre API REST e SMTP Relay Postmark

Comparativo tecnico

CriterioAPI RESTSMTP Relay
EndpointPOST https://api.postmarkapp.com/emailsmtp.postmarkapp.com portas 587/2525
AutenticacaoHeader X-Postmark-Server-TokenUsername: API key / Password: API key
Destinatarios/email50 max (To + Cc + Bcc)50 max
Batch500 mensagens/chamada, 50 MB max1 email por conexao
Tamanho max10 MB por email10 MB por email
TemplatesMustachio (similar ao Handlebars)Conteudo inline apenas
SchedulingNao suportado nativamenteNao suportado nativamente
TrackingVia parametros JSONVia headers X-PM-*
Caso de uso idealApps modernas, batch, templatesLegacy, CMS, servidores de email existentes

Quando escolher a API REST?

A API REST e o metodo recomendado para qualquer nova integracao. Ela oferece controle preciso sobre cada aspecto do envio.

Endpoint principal: POST https://api.postmarkapp.com/email

Headers necessarios:

Content-Type: application/json
Accept: application/json
X-Postmark-Server-Token: seu-server-token

Exemplo de envio completo:

curl "https://api.postmarkapp.com/email" \
  -X POST \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Postmark-Server-Token: seu-server-token" \
  -d '{
    "From": "notifications@captaindns.com",
    "To": "cliente@captaindns.com",
    "Subject": "Sua analise DNS esta pronta",
    "TextBody": "Ola, seu relatorio DNS esta disponivel.",
    "HtmlBody": "<html><body><strong>Ola</strong>, seu relatorio DNS esta disponivel.</body></html>",
    "Tag": "dns-report",
    "TrackOpens": true,
    "TrackLinks": "HtmlAndText",
    "MessageStream": "outbound",
    "Metadata": {
      "report_id": "RPT-12345",
      "user_id": "USR-789"
    }
  }'

Resposta esperada (200 OK):

{
  "To": "cliente@captaindns.com",
  "SubmittedAt": "2026-01-28T10:30:00.1234567-05:00",
  "MessageID": "b7bc2f4a-e38e-4336-af7d-e6c392c2f817",
  "ErrorCode": 0,
  "Message": "OK"
}

Limites principais:

  • Rate limit: nao publicado explicitamente, monitoramento interno
  • Destinatarios: 50 max por email (To + Cc + Bcc)
  • Batch: 500 mensagens por chamada, 50 MB total
  • Tamanho email: 10 MB max

SDKs oficiais: Ruby, .NET, Java, PHP, Node.js. Nao ha SDK Python oficial (use postmarker ou python-postmark).

Quando escolher o SMTP Relay?

O SMTP Relay e ideal para sistemas legados ou aplicacoes que suportam apenas SMTP.

Configuracao oficial:

# Transacional
SMTP server: smtp.postmarkapp.com
Port: 587 (recomendado) ou 2525 (fallback)

# Broadcast
SMTP server: smtp-broadcasts.postmarkapp.com
Port: 587 ou 2525

# Autenticacao
Username: seu-server-api-token
Password: seu-server-api-token

Portas disponiveis:

PortaSuporteNotas
25SMTP padrao
465Implicit TLS nao suportado
587Recomendado - porta submission
2525Porta alternativa

Metodos de autenticacao: CRAM-MD5 (recomendado), DIGEST-MD5, PLAIN, LOGIN.

Headers proprietarios X-PM-*:

HeaderUsoExemplo
X-PM-TagCategorizacaoX-PM-Tag: password-reset
X-PM-Message-StreamEspecificar o streamX-PM-Message-Stream: outbound
X-PM-Metadata-*Metadados customizadosX-PM-Metadata-user-id: 12345
X-PM-TrackOpensTracking de aberturaX-PM-TrackOpens: true
X-PM-TrackLinksTracking de linksX-PM-TrackLinks: HtmlAndText

Domain Authentication: DKIM, Return-Path e alinhamento DMARC

A autenticacao de dominio no Postmark se baseia em DKIM e um Return-Path personalizavel. A configuracao e feita em Sender Signatures ou Domain Authentication.

Fluxo de autenticacao DNS com Postmark

Configuracao DKIM

Postmark gera uma chave DKIM de 1024 bits com um seletor unico baseado em timestamp.

Formato do seletor: [timestamp]pm._domainkey.captaindns.com

Exemplos de seletores:

  • 20260128pm._domainkey.captaindns.com
  • jan2026pm._domainkey.captaindns.com

Registro DNS a criar:

Type: TXT
Hostname: 20260128pm._domainkey.captaindns.com
Value: k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDO...

Caracteristicas:

  • Tamanho da chave: 1024 bits (nao 2048)
  • Rotacao: manual, trimestral recomendada
  • API de rotacao: POST /domains/{domainid}/rotatedkim

A rotacao utiliza o sistema de dois seletores: Postmark prepara o novo seletor antes de fazer a troca, garantindo uma transicao sem interrupcao.

SPF: necessario ou nao?

SPF nao e mais necessario para Postmark. Veja por que:

Por padrao, Postmark usa seu proprio dominio para o Return-Path:

Return-Path: <pm_bounces@pm.mtasv.net>

Os servidores receptores verificam SPF contra o dominio Return-Path (pm.mtasv.net), nao contra seu dominio From (captaindns.com). Seus emails passam automaticamente na verificacao SPF sem modificacao DNS do seu lado.

Include opcional (se voce quiser ser explicito):

v=spf1 a mx include:spf.mtasv.net ~all

Return-Path customizado e alinhamento DMARC

Para obter o alinhamento SPF DMARC, voce precisa configurar um Return-Path personalizado.

Registro DNS necessario:

Type: CNAME
Hostname: pm-bounces.captaindns.com
Value: pm.mtasv.net

Apos configuracao:

Return-Path: <pm_bounces@pm-bounces.captaindns.com>

Impacto no alinhamento DMARC:

ConfiguracaoSPF PassAlinhamento DMARC
Return-Path padrao✅ (dominio Postmark)❌ Falha
Return-Path customizado✅ (subdominio cliente)✅ Relaxed apenas

Ponto critico: o alinhamento strict (aspf=s) nao e possivel com Postmark porque o Return-Path sempre usa um subdominio (pm-bounces.captaindns.comcaptaindns.com).

Estrategia recomendada: confiar no DKIM para alinhamento DMARC, que suporta o modo strict (adkim=s).

Tabela resumo DNS completa

RegistroTipoHostnameValorObrigatorio
DKIMTXT[timestamp]pm._domainkey.captaindns.comk=rsa; p=[chave-publica]✅ Recomendado
Return-PathCNAMEpm-bounces.captaindns.compm.mtasv.netPara alinhamento DMARC
Link TrackingCNAME[custom].captaindns.com[valor-postmark]Opcional
SPFTXTcaptaindns.comv=spf1 include:spf.mtasv.net ~all❌ Nao necessario

Message Streams: transacional vs broadcast

Postmark impoe uma separacao rigorosa entre emails transacionais e broadcast via Message Streams. Essa arquitetura protege a reputacao dos seus emails criticos.

Arquitetura dos streams

AspectoTransacionalBroadcast
UsoEmails disparados por usuarioEmails em massa (newsletters)
SMTP hostsmtp.postmarkapp.comsmtp-broadcasts.postmarkapp.com
Link unsubscribeOpcionalObrigatorio
InfraestruturaPool IP dedicadoPool IP separado
Stream padraooutboundbroadcast

Para streams Broadcast, o link de descadastro e obrigatorio:

<a href="{{{ pm:unsubscribe }}}">Cancelar inscricao</a>

Gestao de descadastros:

  • UnsubscribeHandlingType: "Postmark": gerenciado automaticamente
  • UnsubscribeHandlingType: "None": gerenciado manualmente

Limites dos Message Streams

RecursoLimite
Streams por Server10 max (contatar suporte para mais)
Inbound Streams por Server1 apenas
Nome do stream100 caracteres max
Streams arquivadosExcluidos apos 45 dias

IP compartilhado vs IP dedicado

Pool IP compartilhado (todos os planos)

Por padrao, todos os clientes Postmark usam um pool de IP compartilhado de alta reputacao.

Filosofia Postmark: "Um pool IP de alta qualidade e alta reputacao oferece entregabilidade melhor e mais confiavel" para a maioria dos remetentes.

Caracteristicas:

  • Pool ativamente monitorado
  • Alertas de blacklist automaticos
  • Sem necessidade de warm-up
  • Adequado para a maioria dos volumes

IP dedicado

Para grandes volumes, Postmark oferece IPs dedicados.

CriterioValor
Volume minimo300.000 emails/mes
Custo50$/IP/mes (sem taxa de setup)
IP adicional100.000+ mensagens/dia necessarias
Warm-upAutomatico, 3-6 semanas
OverflowRoteado via pool compartilhado durante warm-up

Warm-up automatico:

  • Limites diarios definidos pelo Postmark
  • Ajuste conforme resposta dos receptores
  • Volume excedente enviado via pool compartilhado
  • Monitoramento continuo pela equipe Postmark

Re-warmup necessario: se o volume cair abaixo de 20.000 mensagens/semana por 4 semanas consecutivas.

Reverse DNS: gerenciado pelo Postmark (nao personalizavel pelo cliente).

Precos 2026

Planos e precos

PlanoPreco/mes (10K)Excedente /1000ServersDomainsStreamsIP dedicado
Free Developer0$N/A101030
Basic15$1,80$5515
Pro16,50$1,30$101030✅ (300K+)
Platform18$1,20$✅ (300K+)

Limites do plano Free Developer:

  • 100 emails/mes (limite fixo)
  • Sem possibilidade de excedente
  • Ideal para testes e desenvolvimento

Escala por volume

Volume mensalTarifa aproximada
10.00015-18$/mes
50.00050-60$/mes
125.000~100$/mes
300.000~200$/mes
700.000~400$/mes
5.000.000+Preco customizado

Add-ons opcionais

Add-onPreco
IP dedicado50$/mes/IP
Custom Activity RetentionA partir de 5$/mes
DMARC DigestsA partir de 14$/mes/dominio

Regras de contagem

  • Cada mensagem enviada = 1 email
  • Cada endereco Cc/Bcc = 1 email adicional
  • Mensagens sandbox = contabilizadas
  • Emails nao utilizados = nao acumulam

Webhooks e eventos

Postmark oferece um sistema completo de webhooks para acompanhar o ciclo de vida dos seus emails.

Arquitetura de webhooks Postmark

Eventos disponiveis

EventoDescricao
DeliveryEmail entregue ao servidor receptor
BounceEmail rejeitado (hard, soft, transient)
OpenDestinatario abriu o email
ClickDestinatario clicou em um link
SpamComplaintEmail marcado como spam
SubscriptionChangeAdicao/remocao da lista de Supressao
InboundEmail inbound recebido e parseado

Exemplo de payload Bounce

{
  "RecordType": "Bounce",
  "ID": 692560173,
  "Type": "HardBounce",
  "TypeCode": 1,
  "Name": "Hard bounce",
  "Tag": "dns-report",
  "MessageID": "2c1b63fe-43f2-4db5-91b0-8bdfa44a9316",
  "ServerID": 23,
  "MessageStream": "outbound",
  "Description": "The server was unable to deliver your message",
  "Email": "invalido@captaindns.com",
  "From": "notifications@captaindns.com",
  "BouncedAt": "2026-01-28T16:09:19Z",
  "Inactive": true,
  "CanActivate": true
}

Politica de retry

Tipo webhookPolitica de retry
Bounce, Inbound1 min → 5 min → 10 min (×3) → 15 min → 30 min → 1h → 2h → 6h = 10 retries em ~10,5h
Click, Open, Delivery1 min → 5 min → 15 min = 3 retries

Importante: uma resposta HTTP 403 interrompe imediatamente os retries.

Seguranca: assinatura HMAC-SHA256

Cada webhook e assinado com o header X-Postmark-Signature.

Verificacao (Node.js):

const crypto = require('crypto');

function verifyWebhookSignature(payload, signature, secret) {
  const computedSignature = crypto
    .createHmac('sha256', secret)
    .update(payload)
    .digest('base64');
  return crypto.timingSafeEqual(
    Buffer.from(computedSignature),
    Buffer.from(signature)
  );
}

Configuracao via API

curl "https://api.postmarkapp.com/webhooks" \
  -X POST \
  -H "Content-Type: application/json" \
  -H "X-Postmark-Server-Token: seu-server-token" \
  -d '{
    "Url": "https://captaindns.com/webhooks/postmark",
    "MessageStream": "outbound",
    "Triggers": {
      "Delivery": { "Enabled": true },
      "Bounce": { "Enabled": true, "IncludeContent": false },
      "SpamComplaint": { "Enabled": true },
      "Open": { "Enabled": true, "PostFirstOpenOnly": true },
      "Click": { "Enabled": true }
    }
  }'

Limites tecnicos e cotas

Tamanho das mensagens

LimiteValor
Tamanho max email (API)10 MB total
Tamanho max batch (Batch API)50 MB total
TextBody / HtmlBody5 MB cada
Armazenamento mensagem1 MB (truncado alem disso)

Cotas API

RecursoLimite
Destinatarios por email50 max (To + Cc + Bcc)
Mensagens por batch500 max
URLs webhook por stream10 max
Tamanho Tag1.000 caracteres
Busca bounces/mensagens10.000 resultados max

Retencao de dados

TipoDuracao
Retencao padrao45 dias
Retencao minima7 dias
Retencao maxima365 dias (add-on)
Bounce dumps30 dias max
Estatisticas agregadasIndefinidamente
Lista de supressaoIndefinidamente

Templates com Mustachio

Postmark usa Mustachio, uma linguagem de templating baseada em Mustache com melhorias especificas.

Sintaxe basica

<!-- Variavel com escape HTML -->
{{ primeiro_nome }}

<!-- Variavel sem escape (raw) -->
{{{ html_content }}}

<!-- Notacao ponto -->
{{ pedido.numero }}

Condicoes (blocos truthy/falsy)

{{#tem_desconto}}
  <p>Seu desconto: {{ valor_desconto }}</p>
{{/tem_desconto}}

{{^tem_desconto}}
  <p>Nenhum desconto aplicado</p>
{{/tem_desconto}}

Loops

{{#each items}}
  <li>{{ name }} - R$ {{ price }}</li>
{{/each}}

Limites:

  • Sem sintaxe if/else explicita
  • Logica complexa nao suportada
  • Tags <link> proibidas no <head>
  • CSS automaticamente inlined no envio

Seguranca e conformidade

Certificacoes

CertificacaoDetalhe
SOC 2 Type 2Nao - certificacoes no nivel do data center (AWS, Deft)
ISO 27017/27018Via AWS
PCI DSS Level 1Via Stripe (pagamentos)

LGPD/GDPR

AspectoDetalhe
DPA disponivelSim - com SCCs
URL DPAhttps://postmarkapp.com/dpa
Localizacao dadosEUA (sem opcao UE)
Representante UEEU-REP.Global

HIPAA

AspectoDetalhe
Conforme HIPAANAO
BAA disponivelNAO

Postmark declara explicitamente: "Postmark is not HIPAA-compliant so we do not recommend using our platform if you need to send HIPAA-compliant emails".

Autenticacao de conta

FuncionalidadeDisponibilidade
2FA✅ Todos os planos
SSO/SAML❌ Nao disponivel

Plano de acao: integrar Postmark passo a passo

  1. Criar uma conta em https://account.postmarkapp.com/sign_up
  2. Solicitar aprovacao via "Request approval" (~24h de revisao manual)
  3. Verificar seu dominio (Sender Signature individual ou dominio completo)
  4. Configurar os registros DNS:
    • DKIM: TXT [timestamp]pm._domainkey.captaindns.com
    • Return-Path: CNAME pm-bounces.captaindns.compm.mtasv.net
  5. Criar um Server API Token em Settings → API Tokens
  6. Testar com o token de teste: usar POSTMARK_API_TEST como token para validar sem enviar
  7. Configurar os webhooks para bounces e spam complaints
  8. Monitorar via Activity Feed e estatisticas

Guias tecnicos: outras plataformas de email transacional

Descubra nossos guias completos para outras solucoes de email transacional:

FAQ

Postmark e adequado para email marketing?

Nao, Postmark e especializado em email transacional. Emails broadcast (newsletters, anuncios) sao suportados via Message Streams separados, mas a plataforma nao oferece funcionalidades de marketing avancadas (segmentacao, testes A/B, automacao). Para marketing, considere solucoes dedicadas ou a plataforma mae ActiveCampaign.

Qual a diferenca entre Postmark e SendGrid?

Postmark foca exclusivamente na entregabilidade transacional com um pool IP muito controlado. SendGrid oferece mais flexibilidade (DKIM 2048 bits, rate limits publicados, mais SDKs) mas com um posicionamento mais generalista. Postmark usa chaves DKIM de 1024 bits e nao publica seus rate limits explicitamente.

Posso usar Postmark com uma politica DMARC strict?

Sim, via DKIM. O alinhamento DKIM suporta o modo strict (adkim=s). Por outro lado, o alinhamento SPF funciona apenas em modo relaxed (aspf=r) porque o Return-Path usa um subdominio. Configure sua politica DMARC para confiar no DKIM: p=reject; adkim=s; aspf=r.

Quanto custa um IP dedicado no Postmark?

50$/mes por IP, sem taxa de setup. Condicao: enviar no minimo 300.000 emails/mes. O warm-up e automatico em 3-6 semanas. Para um IP adicional, e necessario ultrapassar 100.000 mensagens/dia.

Existe um SDK Python oficial para Postmark?

Nao, Postmark nao mantem um SDK Python oficial. As alternativas da comunidade recomendadas sao postmarker e python-postmark. Os SDKs oficiais cobrem Ruby, .NET, Java, PHP e Node.js.

Postmark e conforme HIPAA?

Nao. Postmark recusa explicitamente assinar BAAs (Business Associate Agreements). Se voce precisa enviar PHI (Protected Health Information), use outra solucao conforme HIPAA.

Glossario

  • Message Stream: fluxo de envio separado que permite isolar emails transacionais de broadcasts, cada um com seu proprio pool de IP e suas metricas
  • Sender Signature: verificacao de um endereco de email remetente individual, alternativa a verificacao de dominio completo
  • Return-Path: endereco de bounce (Envelope From) usado pelos servidores receptores para SPF e notificacoes de bounce
  • Mustachio: linguagem de templating do Postmark baseada em Mustache, com suporte a condicoes, loops e variaveis

Fontes oficiais

Artigos relacionados