Ir para o conteudo principal

Postmark (ActiveCampaign): Guia técnico completo para email transacional

Por CaptainDNS
Publicado em 28 de janeiro de 2026

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

Introdução

Postmark construiu uma reputação de excelência em email transacional, com uma filosofia clara: entregabilidade acima de tudo. Adquirido pela ActiveCampaign em maio de 2022, o serviço permanece como produto autônomo, mantendo sua equipe e DNA técnico. A plataforma processa bilhões de emails com foco exclusivo no transacional (confirmações de pedido, redefinições de senha, notificações).

A particularidade do Postmark reside na separação rigorosa entre transacional e broadcast via Message Streams. Essa arquitetura garante que seus emails críticos nunca sejam impactados por campanhas de marketing. O pool de IP compartilhado é ativamente monitorado para manter uma reputação impecável.

Este guia é direcionado a desenvolvedores, DevOps e arquitetos de sistemas que buscam integrar o Postmark com uma compreensão completa da infraestrutura: configuração DNS, escolha API vs SMTP, gestão de IPs, webhooks e limites técnicos.

API REST vs SMTP Relay: arquitetura e escolha de integração

Postmark oferece dois métodos de integração, cada um adaptado a casos de uso específicos.

Comparação entre API REST e SMTP Relay Postmark

Comparativo técnico

CritérioAPI RESTSMTP Relay
EndpointPOST https://api.postmarkapp.com/emailsmtp.postmarkapp.com portas 587/2525
AutenticaçãoHeader X-Postmark-Server-TokenUsername: API key / Password: API key
Destinatários/email50 max (To + Cc + Bcc)50 max
Batch500 mensagens/chamada, 50 MB max1 email por conexão
Tamanho max10 MB por email10 MB por email
TemplatesMustachio (similar ao Handlebars)Conteúdo inline apenas
SchedulingNão suportado nativamenteNão suportado nativamente
TrackingVia parâmetros JSONVia headers X-PM-*
Caso de uso idealApps modernas, batch, templatesLegacy, CMS, servidores de email existentes

Quando escolher a API REST?

A API REST é o método recomendado para qualquer nova integração. Ela oferece controle preciso sobre cada aspecto do envio.

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

Headers necessários:

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: não publicado explicitamente, monitoramento interno
  • Destinatários: 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. Não há SDK Python oficial (use postmarker ou python-postmark).

Quando escolher o SMTP Relay?

O SMTP Relay é ideal para sistemas legados ou aplicações que suportam apenas SMTP.

Configuração 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 disponíveis:

PortaSuporteNotas
25SMTP padrão
465Implicit TLS não suportado
587Recomendado - porta submission
2525Porta alternativa

Métodos de autenticação: CRAM-MD5 (recomendado), DIGEST-MD5, PLAIN, LOGIN.

Headers proprietários X-PM-*:

HeaderUsoExemplo
X-PM-TagCategorizaçãoX-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 autenticação de domínio no Postmark se baseia em DKIM e um Return-Path personalizável. A configuração é feita em Sender Signatures ou Domain Authentication.

Fluxo de autenticação DNS com Postmark

Configuração DKIM

Postmark gera uma chave DKIM de 1024 bits com um seletor único 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...

Características:

  • Tamanho da chave: 1024 bits (não 2048)
  • Rotação: manual, trimestral recomendada
  • API de rotação: POST /domains/{domainid}/rotatedkim

A rotação utiliza o sistema de dois seletores: Postmark prepara o novo seletor antes de fazer a troca, garantindo uma transição sem interrupção.

SPF: necessário ou não?

SPF não é mais necessário para Postmark. Veja por quê:

Por padrão, Postmark usa seu próprio domínio para o Return-Path:

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

Os servidores receptores verificam SPF contra o domínio Return-Path (pm.mtasv.net), não contra seu domínio From (captaindns.com). Seus emails passam automaticamente na verificação SPF sem modificação DNS do seu lado.

Include opcional (se você quiser ser explícito):

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

Return-Path customizado e alinhamento DMARC

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

Registro DNS necessário:

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

Após configuração:

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

Impacto no alinhamento DMARC:

ConfiguraçãoSPF PassAlinhamento DMARC
Return-Path padrão✅ (domínio Postmark)❌ Falha
Return-Path customizado✅ (subdomínio cliente)✅ Relaxed apenas

Ponto crítico: o alinhamento strict (aspf=s) não é possível com Postmark porque o Return-Path sempre usa um subdomínio (pm-bounces.captaindns.comcaptaindns.com).

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

Tabela resumo DNS completa

RegistroTipoHostnameValorObrigatório
DKIMTXT[timestamp]pm._domainkey.captaindns.comk=rsa; p=[chave-pública]✅ 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❌ Não necessário

Message Streams: transacional vs broadcast

Postmark impõe uma separação rigorosa entre emails transacionais e broadcast via Message Streams. Essa arquitetura protege a reputação dos seus emails críticos.

Arquitetura dos streams

AspectoTransacionalBroadcast
UsoEmails disparados por usuárioEmails em massa (newsletters)
SMTP hostsmtp.postmarkapp.comsmtp-broadcasts.postmarkapp.com
Link unsubscribeOpcionalObrigatório
InfraestruturaPool IP dedicadoPool IP separado
Stream padrãooutboundbroadcast

Para streams Broadcast, o link de descadastro é obrigatório:

<a href="{{{ pm:unsubscribe }}}">Cancelar inscrição</a>

Gestão 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 arquivadosExcluídos após 45 dias

IP compartilhado vs IP dedicado

Pool IP compartilhado (todos os planos)

Por padrão, todos os clientes Postmark usam um pool de IP compartilhado de alta reputação.

Filosofia Postmark: "Um pool IP de alta qualidade e alta reputação oferece entregabilidade melhor e mais confiável" para a maioria dos remetentes.

Características:

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

IP dedicado

Para grandes volumes, Postmark oferece IPs dedicados.

CritérioValor
Volume mínimo300.000 emails/mês
Custo50$/IP/mês (sem taxa de setup)
IP adicional100.000+ mensagens/dia necessárias
Warm-upAutomático, 3-6 semanas
OverflowRoteado via pool compartilhado durante warm-up

Warm-up automático:

  • Limites diários definidos pelo Postmark
  • Ajuste conforme resposta dos receptores
  • Volume excedente enviado via pool compartilhado
  • Monitoramento contínuo pela equipe Postmark

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

Reverse DNS: gerenciado pelo Postmark (não personalizável pelo cliente).

Preços 2026

Planos e preços

PlanoPreço/mês (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/mês (limite fixo)
  • Sem possibilidade de excedente
  • Ideal para testes e desenvolvimento

Escala por volume

Volume mensalTarifa aproximada
10.00015-18$/mês
50.00050-60$/mês
125.000~100$/mês
300.000~200$/mês
700.000~400$/mês
5.000.000+Preço customizado

Add-ons opcionais

Add-onPreço
IP dedicado50$/mês/IP
Custom Activity RetentionA partir de 5$/mês
DMARC DigestsA partir de 14$/mês/domínio

Regras de contagem

  • Cada mensagem enviada = 1 email
  • Cada endereço Cc/Bcc = 1 email adicional
  • Mensagens sandbox = contabilizadas
  • Emails não utilizados = não 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 disponíveis

EventoDescrição
DeliveryEmail entregue ao servidor receptor
BounceEmail rejeitado (hard, soft, transient)
OpenDestinatário abriu o email
ClickDestinatário clicou em um link
SpamComplaintEmail marcado como spam
SubscriptionChangeAdição/remoção da lista de Supressão
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
}

Política de retry

Tipo webhookPolítica 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.

Segurança: assinatura HMAC-SHA256

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

Verificação (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)
  );
}

Configuração 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 técnicos 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 além disso)

Cotas API

RecursoLimite
Destinatários 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

Retenção de dados

TipoDuração
Retenção padrão45 dias
Retenção mínima7 dias
Retenção máxima365 dias (add-on)
Bounce dumps30 dias max
Estatísticas agregadasIndefinidamente
Lista de supressãoIndefinidamente

Templates com Mustachio

Postmark usa Mustachio, uma linguagem de templating baseada em Mustache com melhorias específicas.

Sintaxe básica

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

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

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

Condições (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 explícita
  • Lógica complexa não suportada
  • Tags <link> proibidas no <head>
  • CSS automaticamente inlined no envio

Segurança e conformidade

Certificações

CertificaçãoDetalhe
SOC 2 Type 2Não - certificações no nível do data center (AWS, Deft)
ISO 27017/27018Via AWS
PCI DSS Level 1Via Stripe (pagamentos)

LGPD/GDPR

AspectoDetalhe
DPA disponívelSim - com SCCs
URL DPAhttps://postmarkapp.com/dpa
Localização dadosEUA (sem opção UE)
Representante UEEU-REP.Global

HIPAA

AspectoDetalhe
Conforme HIPAANÃO
BAA disponívelNÃO

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

Autenticação de conta

FuncionalidadeDisponibilidade
2FA✅ Todos os planos
SSO/SAML❌ Não disponível

Plano de ação: integrar Postmark passo a passo

  1. Criar uma conta em https://account.postmarkapp.com/sign_up
  2. Solicitar aprovação via "Request approval" (~24h de revisão manual)
  3. Verificar seu domínio (Sender Signature individual ou domínio 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 estatísticas

Guias técnicos: outras plataformas de email transacional

Descubra nossos guias completos para outras soluções de email transacional:

FAQ

Postmark é adequado para email marketing?

Não, Postmark é especializado em email transacional. Emails broadcast (newsletters, anúncios) são suportados via Message Streams separados, mas a plataforma não oferece funcionalidades de marketing avançadas (segmentação, testes A/B, automação). Para marketing, considere soluções dedicadas ou a plataforma mãe ActiveCampaign.

Qual a diferença 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 não publica seus rate limits explicitamente.

Posso usar Postmark com uma política 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 subdomínio. Configure sua política DMARC para confiar no DKIM: p=reject; adkim=s; aspf=r.

Quanto custa um IP dedicado no Postmark?

50$/mês por IP, sem taxa de setup. Condição: enviar no mínimo 300.000 emails/mês. O warm-up é automático em 3-6 semanas. Para um IP adicional, é necessário ultrapassar 100.000 mensagens/dia.

Existe um SDK Python oficial para Postmark?

Não, Postmark não mantém um SDK Python oficial. As alternativas da comunidade recomendadas são postmarker e python-postmark. Os SDKs oficiais cobrem Ruby, .NET, Java, PHP e Node.js.

Postmark é conforme HIPAA?

Não. Postmark recusa explicitamente assinar BAAs (Business Associate Agreements). Se você precisa enviar PHI (Protected Health Information), use outra solução conforme HIPAA.

Glossário

  • Message Stream: fluxo de envio separado que permite isolar emails transacionais de broadcasts, cada um com seu próprio pool de IP e suas métricas
  • Sender Signature: verificação de um endereço de email remetente individual, alternativa à verificação de domínio completo
  • Return-Path: endereço de bounce (Envelope From) usado pelos servidores receptores para SPF e notificações de bounce
  • Mustachio: linguagem de templating do Postmark baseada em Mustache, com suporte a condições, loops e variáveis

Fontes oficiais

Artigos relacionados