Guia pilar · 24 min de leitura · Atualizado em May 2026

Entregabilidade de email em 2026 — os padrões, o warmup, o feedback loop.

Entregabilidade é a diferença entre uma campanha na caixa de entrada e a mesma campanha no spam. É função de três padrões de autenticação (SPF, DKIM, DMARC), uma pontuação de reputação (IP + From-domain) e duas disciplinas operacionais (higiene de lista, tratamento de bounces). Este guia percorre os seis — com sintaxe concreta, números de RFC, as ferramentas do AcelleMail e um cronograma de warmup por dia que você pode colar em um runbook.

Neste guia

  1. O que entregabilidade realmente é
  2. SPF — sender policy framework
  3. DKIM — assinatura criptográfica
  4. DMARC — alinhamento + relatórios
  5. BIMI + o bônus do logo da marca
  6. Reputação — pontuação de IP + domínio
  7. IP warmup — o cronograma de 6 semanas
  8. Bounces, reclamações, feedback loops
  9. Higiene de lista — suppression + opt-in
  10. Ferramentas de entregabilidade do AcelleMail
  11. Problemas comuns + correções
  12. FAQ

§1 · Definição

O que entregabilidade de email realmente é.

Entregabilidade é a taxa com que suas mensagens enviadas chegam à caixa de entrada principal do destinatário — distinta de entrega (a mensagem foi aceita pelo servidor de email do destinatário) e de envio (você entregou ao pipeline de envio). Uma mensagem pode ser enviada com sucesso, entregue ao servidor de email do destinatário e terminar no spam — isso é sucesso de entrega e falha de entregabilidade. Os números com que as pessoas se importam — taxa de abertura, taxa de clique, conversão — dependem de entregabilidade, não de entrega.

Provedores de caixa de entrada — Gmail, Outlook, Yahoo, Apple iCloud Mail, Proton, os principais provedores regionais — cada um roda um pipeline de pontuação em múltiplos estágios contra cada mensagem que chega. Os estágios são aproximadamente os mesmos entre os provedores, com diferenças de peso:

  1. Checagens em tempo de conexão. DNS reverso, sanidade de HELO/EHLO, suporte a TLS, listagem do IP em RBLs (Spamhaus, SpamCop, etc).
  2. Checagens de autenticação. SPF pass/fail (RFC 7208), validação de assinatura DKIM (RFC 6376), alinhamento DMARC (RFC 7489). Todos os três precisam passar limpos para a pontuação mais branda lá na frente.
  3. Pontuação de conteúdo. Densidade de palavras-chave de spam, reputação dos links, proporção imagem/texto, se o From-name combina com o From-address.
  4. Lookup de reputação. O registro interno do provedor sobre seu IP de envio e seu From-domain — taxa histórica de bounce, taxa de reclamação, engajamento em envios anteriores.
  5. Sinal de engajamento. O destinatário (ou destinatários da mesma coorte) abriu ou clicou em mensagens similares suas anteriormente? Engajamento recente é o sinal positivo individual mais forte.
  6. Disposição. Caixa de entrada, aba Promoções (Gmail), pasta de spam ou rejeitar. A disposição alimenta a reputação de volta.

As cinco seções abaixo tratam dos estágios 2 (autenticação) e 4 (reputação). O estágio 1 é majoritariamente trabalho do relay de envio; os estágios 3 e 5 são decisões de conteúdo + audiência fora do escopo de um guia de entregabilidade. O estágio 6 é o output. Para um remetente comercial típico, acertar os estágios 2 e 4 leva você de 60–80% de inboxing para 95%+.

Este guia é escrito para operadores auto-hospedados porque é você que ajusta os botões. Em SaaS a plataforma abstrai a maior parte disso; em auto-hospedado você é dono do registro SPF, do par de chaves DKIM, da política DMARC, do cronograma de IP warmup. A boa notícia: os padrões são públicos e estáveis. A má: não tem atalho.

§2 · SPF

SPF — Sender Policy Framework.

SPF (RFC 7208) é uma lista pública de endereços IP autorizados a enviar email em nome do seu domínio. Você publica como um único registro TXT no seu domínio de envio. Quando um provedor de caixa de entrada recebe uma mensagem dizendo ser de @suaempresa.com, ele faz lookup do registro SPF em suaempresa.com e pergunta: essa mensagem veio de um dos IPs listados? Se sim, SPF passa. Se não, SPF falha.

A sintaxe

v=spf1 include:amazonses.com ~all

Lê-se: "SPF versão 1, autorize qualquer coisa que o Amazon SES autorize, soft-fail qualquer outra coisa". O ~all no final é a cláusula catch-all. ~all = soft-fail (marca suspeito mas aceita), -all = hard-fail (rejeita), ?all = neutro (sem opinião). Use ~all até o DMARC estar saudável, depois aperte para -all.

Múltiplos remetentes (ex.: Google Workspace para saída + SES para marketing + Mailgun para transacional) encadeiam com múltiplos mecanismos include::

v=spf1 include:_spf.google.com include:amazonses.com include:mailgun.org ~all

O limite de 10 DNS lookups. RFC 7208 §4.6.4 limita a resolução SPF a 10 DNS lookups no total. Cada include: conta como um. Falha comum: encadear 5+ fornecedores e estourar o limite, depois do que o SPF resolve para permerror e é tratado como falha. Audite com dig TXT suaempresa.com + um SPF flattener se estiver perto do limite.

SPF no AcelleMail

O model SendingDomain do AcelleMail expõe getSpf() em app/Model/SendingDomain.php:154, que lê a configuração global spf_record e renderiza o valor do registro TXT. O método verifySpf(string $ipOrHostname) na linha 363 envelopa a biblioteca Mika56\SPFCheck — consulta o DNS ao vivo em runtime e afirma RESULT_PASS. A superfície de verificação na UI admin mostra verde quando o registro está presente e autoriza o IP de envio, vermelho caso contrário.

Dica prática: o SPF só autentica o envelope sender (o MAIL FROM em nível SMTP), não o cabeçalho From visível. Essa distinção é o que o alinhamento DMARC corrige — veja §4.

§3 · DKIM

DKIM — DomainKeys Identified Mail.

DKIM (RFC 6376) anexa uma assinatura criptográfica a cada mensagem de saída. O servidor receptor busca sua chave pública num registro TXT no DNS, verifica a assinatura contra cabeçalhos específicos da mensagem e o corpo, e aceita a mensagem como autêntica se a matemática funciona. SPF diz "esse IP tem permissão para enviar por nós"; DKIM diz "esse corpo e cabeçalho From não foram adulterados desde que assinamos".

O mecanismo

  1. Você gera um par de chaves RSA (mínimo 1024 bits, 2048 bits recomendado para novos setups).
  2. A chave pública vai para o DNS como registro TXT em {selector}._domainkey.{seudominio}. O selector é uma string arbitrária (ex. k1, mail, 20251208) que você escolhe para permitir rotacionar chaves sem quebrar mensagens em trânsito.
  3. A chave privada fica no seu servidor de envio. O MTA (ou relay de envio) assina cada mensagem de saída com ela, adicionando um cabeçalho DKIM-Signature.
  4. O servidor de email do destinatário lê os valores d= (domínio) e s= (selector) do cabeçalho da assinatura, faz lookup de {s}._domainkey.{d}, busca a chave pública e verifica.

DKIM no AcelleMail

SendingDomain::generateDkimKeys() em app/Model/SendingDomain.php:221 gera um par de chaves RSA de 1024 bits via os bindings OpenSSL do PHP, guarda a metade privada em dkim_private e a metade pública em dkim_public. O selector é lido de dkim_selector no model, com fallback para a configuração global dkim_selector. O valor do registro DNS renderiza via $this->getDomain()->getDkimDnsRecord() (linha 270) e é mostrado ao operador com um botão de copiar ao lado de "o valor a publicar".

O padrão de geração de chave (de generateDkimKeys()):

$config = [
    'digest_alg' => 'sha256',
    'private_key_bits' => 1024,
    'private_key_type' => OPENSSL_KEYTYPE_RSA,
];
$res = openssl_pkey_new($config);
openssl_pkey_export($res, $privKey);
$pubKey = openssl_pkey_get_details($res)['key'];

Verificação: $this->getDomain()->verifyDkim() consulta o DNS em {selector}._domainkey.{domain} e compara a chave pública publicada com o valor armazenado localmente. O método verify() completo no model orquestra checagens de identidade + DKIM + SPF + DMARC em uma única chamada (linha 300).

DKIM gerenciado pelo fornecedor

Se você envia pelo Amazon SES, SendGrid, Mailgun ou qualquer outro fornecedor que assina do lado deles, você publica o selector + chave pública do fornecedor em vez de gerar a sua. A capacidade SignsDkimOnServer no nível do driver do AcelleMail (veja app/SendingServers/Capabilities/SignsDkimOnServer.php) marca drivers que cuidam de DKIM remotamente; a UI então mostra os registros CNAME do fornecedor para publicar em vez de gerar um par de chaves local. O SES usa três CNAMEs que delegam _domainkey para amazonses.com — configure uma vez e o SES rotaciona a chave subjacente para você.

§4 · DMARC

DMARC — alinhamento, política e relatórios.

DMARC (RFC 7489) fica em cima do SPF e do DKIM. Faz três coisas que SPF e DKIM individualmente não fazem:

  1. Alinhamento. Exige que o domínio do envelope validado por SPF ou o domínio de assinatura DKIM combine com o domínio do cabeçalho From visível. Sem alinhamento, SPF e DKIM podem passar para um domínio diferente do que o destinatário vê — o gap que phishing explora.
  2. Política. Diz aos servidores receptores o que fazer quando o alinhamento falha: none (não faça nada, só relate), quarantine (entregue no spam), reject (recuse a mensagem no SMTP).
  3. Relatórios. Relatórios agregados (RUA — relatórios XML diários de todos os envios do seu domínio) e relatórios forenses (RUF — relatórios individuais por falha) enviados para os endereços que você especificar. Os relatórios dão visibilidade sobre quem está mandando email se dizendo você.

A sintaxe

_dmarc.yourcompany.com.    TXT    "v=DMARC1; p=quarantine; rua=mailto:dmarc@yourcompany.com; pct=100; aspf=s; adkim=s"

Lê-se: "DMARC versão 1, ponha em quarentena mensagens que falham o alinhamento, envie relatórios agregados para dmarc@suaempresa.com, aplique a política a 100% das mensagens falhando, exija alinhamento estrito tanto para SPF quanto para DKIM".

O rollout padrão

  1. Dia 0: publique p=none com rua= apontando para uma caixa monitorada. Aceite relatórios por 7–14 dias. Isso é só observação — nenhuma mensagem é rejeitada.
  2. Dia 14: revise os relatórios. Identifique remetentes legítimos (seu próprio SES, os IPs de envio do seu CRM, provedores transacionais) e traga todos para o alinhamento SPF + DKIM.
  3. Dia 30: aperte para p=quarantine; pct=10. Email desalinhado vai para o spam de 10% dos destinatários. Observe os relatórios por duas semanas.
  4. Dia 45: escale para pct=50, depois pct=100 ao longo de 2–4 semanas.
  5. Dia 60–90: aperte para p=reject. Agora email desalinhado faz bounce no SMTP — phishers usando seu domínio veem hard rejects.

Não pule o rollout. Ir direto de nenhum DMARC para p=reject é a causa mais comum de desastre auto-infligido de entregabilidade: um remetente transacional esquecido (seu CRM, sua ferramenta de suporte, seu sistema de billing) começa a bouncear hard no momento em que p=reject propaga.

Mandatos dos provedores de caixa de entrada

Desde fevereiro de 2024, Gmail e Yahoo exigem DMARC para qualquer remetente que envia > 5.000 mensagens por dia para seus domínios, além de SPF ou DKIM alinhado, mais List-Unsubscribe de um clique (RFC 8058). O Microsoft 365 está alinhado com o mesmo padrão neste momento. A barra para "envio comercial" se moveu permanentemente — DMARC não é mais opcional para qualquer lista acima de ~1.000 contatos. Configure cedo, mesmo que sua lista ainda seja pequena.

§5 · BIMI

BIMI — o bônus do logo da marca.

BIMI (Brand Indicators for Message Identification) exibe o logo da sua marca ao lado das suas mensagens na caixa de entrada do destinatário. Gmail, Yahoo, Apple Mail e Fastmail suportam desde 2025. É um recurso adjacente a entregabilidade — não autenticação propriamente — mas exige DMARC em p=quarantine ou p=reject como pré-requisito, e é por isso que ele vive neste guia.

Passos de setup (depois que o DMARC estiver em quarantine ou mais estrito):

  1. Crie uma versão SVG do seu logo seguindo a spec BIMI SVG Tiny PS — quadrada, sem texto fora da marca, paths simples.
  2. Hospede o SVG em uma URL HTTPS acessível publicamente.
  3. Opcionalmente, obtenha um Verified Mark Certificate (VMC) de uma CA — exigido pelo Gmail para exibir o badge com o check azul, ~$1.500/ano. Common Mark Certificates (CMC) são uma alternativa mais barata para marcas não registradas.
  4. Publique o registro BIMI: default._bimi.suaempresa.com TXT "v=BIMI1; l=https://seucdn/logo.svg; a=https://seucdn/vmc.pem"

O impacto do BIMI em entregabilidade é indireto mas mensurável: logos de marca na caixa de entrada elevam taxas de abertura em 5–20% em estudos de caso publicados (dados do piloto do Yahoo Mail, relatório BIMI do Mailchimp). Também é uma forte função forçante — você não consegue ativar BIMI sem antes endurecer o DMARC, então os times usam isso como cenoura para uma faxina de autenticação.

§6 · Reputação

Reputação — o que os provedores de caixa de entrada realmente pontuam.

Autenticação é binária — um registro ou resolve e alinha, ou não. Reputação é contínua: uma pontuação de 0 a 100 mantida por cada provedor de caixa de entrada, contra seu IP de envio e seu From-domain independentemente. As duas pontuações se combinam na decisão de roteamento (inbox vs Promoções vs spam vs reject).

Os sinais

Positivo mais forte

Engajamento

Destinatários abrindo, clicando, respondendo, movendo mensagens para fora do spam. O maior sinal positivo individual na pontuação moderna (pós-2020) dos provedores.

Sinal de volume

Consistência de envio

Um envio semanal estável (10K toda terça) sinaliza operação legítima. Um pico de 50K sem histórico dispara detecção de anomalia de volume.

Negativo mais forte

Taxa de reclamação

Destinatários clicando em "denunciar como spam". Meta < 0,1% (um a cada mil). Acima de 0,3% e o roteamento desmorona entre os provedores em 48 horas.

Negativo

Taxa de bounce

Hard bounces (5xx — endereço não existe) sinalizam pouca higiene de lista. Meta < 2%. Acima de 5% sustentado e a maioria dos provedores faz throttle agressivamente.

Falha dura

Acertos em spam-trap

Envio para endereços que os provedores semeiam em fontes de compra de lista ou reativam de caixas abandonadas. Um trap pristine = blocklist instantâneo na maioria dos provedores grandes.

Neutro mas observado

Taxa de descadastramento

Listas saudáveis rodam 0,1–0,5% por envio. Unsubs são melhores do que reclamações — são a versão educada de "isso não é relevante". Não deixe difícil.

Onde ler sua pontuação de reputação

  • Google Postmaster Tools (postmaster.google.com) — reputação de IP e domínio pela visão do Gmail, mais conformidade de autenticação, taxa de criptografia, taxa de spam. Grátis.
  • Microsoft SNDS (postmaster.live.com/snds/) — dados em nível de IP do Outlook.com, classificações de reputação do remetente. Grátis, exige cadastro.
  • Yahoo Sender Hub — mais novo, cadastro via página Yahoo Postmaster. Estatísticas agregadas por domínio.
  • Dashboards de provedor — o Reputation Dashboard do Amazon SES expõe taxas de bounce + reclamação com thresholds. SparkPost, Mailgun, SendGrid todos têm dashboards similares.

Cheque pelo menos um por semana. Os indicadores líderes (tendência da taxa de spam, queda da reputação do IP) aparecem dias antes dos efeitos a jusante (taxa de abertura caindo) — quando você nota uma campanha sub-performando, o problema de reputação já tem duas semanas.

§7 · IP warmup

IP warmup — o cronograma de 6 semanas.

Um IP de envio novo começa com reputação zero. Provedores de caixa de entrada fazem throttle de volumes altos vindos de IPs novos por design — é a defesa principal contra snowshoe spammers subindo instâncias na nuvem e disparando. Warmup é a prática de aumentar gradualmente o volume de envio ao longo de 4–6 semanas, ficando dentro dos limites por dia e por hora de throttle, construindo reputação organicamente.

Você só faz isso uma vez por IP. A maioria dos times nunca faz porque os IPs compartilhados do Amazon SES, SendGrid e Mailgun vêm pré-aquecidos. Os casos em que warmup importa: IP dedicado no SES (tipicamente > 1M envios/mês justifica um), MTA Postal auto-hospedado em uma instância de nuvem nova, migração de um ESP para outro com mudança de domínio.

O cronograma

Dia Volume diário Coorte de audiência Métrica observada
150Top 5% mais engajadosTaxa de abertura > 30%
2100Top 5% mais engajadosBounce < 2%
3–4200–500Top 10% de engajamentoColocação na caixa (ferramentas do provedor)
5–71K–2KTop 25%Reclamação < 0,1%
8–145K → 20KTop 50%Reputation dashboard do SES verde
15–2125K → 100KTop 75%Postmaster Tools spam < 0,1%
22–42Volume diário completoLista cheia (excluindo inativos de 6mo+)Taxa de abertura estável, bounce baixo

Cronograma baseado nas recomendações de warmup publicadas por SparkPost / Postmark / SES, consolidadas em uma tabela semanal única. Rampa mais devagar do que isso se você ver a taxa de reclamação subindo; rampa mais rápido só se você tiver luz-verde de reputação confirmada pelo provedor em cada passo.

Rastreamento de warmup no AcelleMail

O model SendingServer do AcelleMail tem estado de warmup de primeira classe. warmup_enabled, warmup_strategy_id e warmup_started_at vivem na tabela sending_servers; isWarmupEnabled() em app/Model/SendingServer.php:333 controla decisões em tempo de envio. A tabela companheira SendingServerWarmupLog registra cada envio durante a janela de warmup com data, status e um payload meta serializado — veja app/Model/SendingServerWarmupLog.php.

O padrão: atribua uma WarmupStrategy (uma linha que define a curva de volume por dia) a um servidor de envio, vire warmup_enabled = true, configure warmup_started_at = now(). O SendingServerWarmupUsage do pipeline de envio rastreia a contagem do dia e recusa despachar além do teto diário da estratégia. Quando o teto de dia-N da estratégia excede seu volume diário completo, o servidor se forma e o modo warmup auto-desativa.

As classes DynamicRateTracker e InMemoryRateTracker (app/Library/) cuidam de rate limiting por minuto / por hora no nível SMTP — mesmo fora do warmup, o AcelleMail impõe os tetos de taxa publicados pelo relay para que um surto de fila não tropece em throttling do lado do provedor.

§8 · Bounces + reclamações

Bounces, reclamações e o feedback loop.

Hard vs soft bounces

Um hard bounce é uma falha permanente — tipicamente um código SMTP 5xx: o endereço não existe, o domínio não resolve, a caixa do destinatário está desativada permanentemente. O model BounceLog do AcelleMail define as constantes HARD e SOFT em app/Model/BounceLog.php:33; um hard bounce suprime o endereço imediatamente. Um soft bounce é transitório — um código 4xx: caixa cheia, servidor temporariamente indisponível, mensagem muito grande. Soft bounces tentam de novo num cronograma de backoff; endereços que dão soft bounce repetidamente entre envios são eventualmente rebaixados para hard.

O mapa de classificação para notificações de bounce do AWS SES (a fonte que a documentação de BounceLog.php:32 do AcelleMail cita): tipos de bounce incluem Permanent (hard) com sub-tipos General / NoEmail / Suppressed / OnAccountSuppressionList; Transient (soft) com sub-tipos General / MailboxFull / MessageTooLarge / ContentRejected / AttachmentRejected; mais Undetermined (tratar como soft, retry).

Reclamações

Uma reclamação é um destinatário clicando em "denunciar como spam" no seu cliente de email. Reclamações chegam via Feedback Loops (FBLs) — um canal de notificação por provedor onde os ISPs encaminham para você as mensagens reportadas como abusivas. O FeedbackLoopHandler do AcelleMail em app/Model/FeedbackLoopHandler.php processa mensagens FBL de entrada via IMAP/POP e parseia os cabeçalhos do Abuse Reporting Format (ARF, RFC 5965) para extrair o message ID original e o tipo de feedback.

Tipos de feedback ARF que o AcelleMail trata (por FeedbackLoopHandler::FEEDBACK_TYPES na linha 35):

  • abuse — destinatário marcou explicitamente como spam. Suprima imediatamente.
  • fraud — destinatário marcou como phishing. Suprima + logue para revisão de segurança.
  • virus — antivírus do destinatário sinalizou um payload. Suprima + audite o conteúdo.
  • other — reclamação genérica. Suprima.
  • not-spam — relatório explícito "isso não é spam" (raro). Excluído da supressão — veja EXCLUDED_FEEDBACK_TYPES.

Principais provedores de caixa de entrada participantes de FBLs: AOL, Yahoo, Microsoft (via JMRP), Comcast, BlueTie. O Gmail não roda um FBL público — entrega o feedback "marcado como spam" pelo dashboard do Postmaster Tools e por relatórios DMARC agregados.

Regras de supressão

  1. Hard bounce → suprima permanentemente. Nunca tente de novo; o endereço está morto.
  2. Reclamação → suprima permanentemente. O destinatário pediu ativamente para parar. Reenvio é ilegal na maioria das jurisdições e queima reputação.
  3. Soft bounce ×3 em 30 dias → rebaixe para hard, suprima. Soft bounces persistentes são caixa cheia ou problemas de conectividade persistentes — trate como morto.
  4. Descadastramento → suprima para marketing, não para transacional. Recibos de pedido e password resets continuam; campanhas param.
  5. Acerto em spam-trap → escalone para investigação. Puxe toda a fonte de aquisição daquele assinante. A lista foi provavelmente contaminada com endereços comprados ou raspados.

§9 · Higiene de lista

Higiene de lista — a disciplina que mantém a reputação alta.

Autenticação é setup único. Reputação é disciplina operacional. Os sete hábitos que movem o ponteiro:

  1. Duplo opt-in para todas as inscrições de marketing. Um clique de confirmação antes que o endereço entre na lista ativa. Elimina typos, endereços de papel (info@, sales@) e endereços coletados. Adiciona 10–20% de fricção à inscrição; subtrai 50–80% do risco de bounce/reclamação.
  2. Descadastramento em um clique (RFC 8058). Cabeçalho List-Unsubscribe apontando para uma URL de um clique. Exigido por Gmail e Yahoo para remetentes > 5K/dia para seus domínios desde fevereiro de 2024. Torne o unsub mais fácil do que a reclamação — destinatários que iam clicar em "spam" clicam em "descadastrar".
  3. Reengajamento antes da supressão. Assinantes que não abriram em 90 dias recebem uma campanha "queremos continuar sendo relevantes". Abriu → mantém. Não abriu → vai para uma fila de sunset. Sem abrir após 180 dias → suprima.
  4. Auto-supressão de bounces. Processe o webhook de bounce em minutos; remova da lista de envio ativa antes da próxima campanha. BounceLog::record() do AcelleMail e handlers de bounce-webhook estilo vbrandsync fazem isso automaticamente.
  5. Não importe listas compradas. Nunca. Listas compradas vêm semeadas com spam traps. Um acerto em trap e seu domínio entra para o Spamhaus por 30+ dias. A matemática nunca fecha — listas compradas são um sumidouro permanente de reputação.
  6. Segmente por engajamento. Envie campanhas para os 50% engajados o dobro de vezes, para os 50% frios metade. Eleva a taxa de abertura geral, derruba a taxa de reclamação e dá aos provedores um sinal forte de "esse remetente é relevante".
  7. Limite a cadência de automações. Uma série de boas-vindas + carrinho abandonado + pós-compra + aniversário + reengajamento pode produzir 8 mensagens em uma única semana. Limite o total de mensagens de automação a uma a cada 48 horas por destinatário, com exceções duras para transacional (recibos, password resets).

§10 · Ferramentas do AcelleMail

As ferramentas de entregabilidade do AcelleMail — o que o código-fonte entrega.

Puxado diretamente da árvore do código-fonte em app/Model/ e app/Library/. Cada entrada é um model real, interface de capacidade ou classe de biblioteca — não marketing.

app/Model/SendingDomain.php

Verificação de DKIM / SPF / DMARC

generateDkimKeys() na linha 221 (RSA 1024 bits via OpenSSL). verifySpf() na linha 363 envelopando Mika56\SPFCheck. verify() na linha 300 orquestra identidade + DKIM + SPF + DMARC em uma chamada.

app/Model/BounceLog.php

Classificação de bounce

Constantes HARD / SOFT / UNKNOWN. BounceHandler processa email de bounce de entrada; payloads de webhook do SES decodificam para a taxonomia de tipo de bounce do AWS diretamente.

app/Model/FeedbackLoopHandler.php

Processamento de FBL (ARF / RFC 5965)

Trata feedback loops de AOL, Yahoo, Microsoft JMRP via IMAP. Parseia cabeçalhos ARF para recuperar message ID original + tipo de feedback. Auto-suprime em abuse / fraud / virus / other.

app/Model/SendingServerWarmupLog.php

Rastreamento de estado de warmup

Log de envio por dia contra uma WarmupStrategy. Pareia com SendingServerWarmupUsage para imposição de teto diário. isWarmupEnabled() em SendingServer controla o caminho de despacho.

app/Library/DynamicRateTracker.php

Rate limiting por minuto / por hora

quota_value / quota_base / quota_unit em cada servidor de envio. Tetos padrão — 100/min, 1K/hora, 10K/dia — batem com os caps do modo sandbox do SES. Ajuste por servidor à medida que os relays aumentam seus limites.

app/Library/IdentityStore.php

Registry de remetente verificado

Cacheia estado de verificação por domínio + por email entre drivers que expõem SupportsRemoteDomainVerify. Evita re-checar um domínio verificado a cada envio; atualiza num TTL.

app/SendingServers/Capabilities/

Flags de capacidade do driver

SignsDkimOnServer, SupportsRemoteDomainVerify, ReceivesWebhooks, SendsCustomVerificationEmail, SupportsCustomReturnPath, AllowsCrossSendingDomain. A UI mostra só os passos que cada driver de fato exige.

app/Model/TrackingDomain.php

Domínio customizado de tracking de cliques

Permite servir click-redirects de links.suaempresa.com em vez do domínio de tracking padrão do relay. Melhora consistência de marca na caixa de entrada; isola a reputação de link da infraestrutura genérica de ESP.

§11 · Troubleshooting

Problemas comuns de entregabilidade e correções.

"Taxa de abertura caiu 30% do dia pra noite"

Primeira checagem: Apple Mail Privacy Protection (MPP). A Apple abre emails nos servidores proxy dela, inflando taxa de abertura em 20–40% de baseline; updates do iOS podem resetar o proxy e parecer uma queda real.

Segunda checagem: spike da taxa de spam no Postmaster Tools. Se > 0,1% você está em território de spam-folder no Gmail.

Correção: Se for MPP, está tudo bem — pivote para taxa de clique como sinal de engajamento. Se for reputação, pause a coorte fria e reconstrua engajamento com uma cadência de 2 semanas só-engajados.

"O Gmail está mandando para Promoções, não para a Caixa de entrada"

Realidade: Promoções É a caixa de entrada para remetentes comerciais no Gmail desde 2013. Destinatários que abrem email da aba Promoções contam como engajamento positivo. Não desperdice reputação perseguindo a aba principal; otimize para engajamento dentro de Promoções.

"Relatórios DMARC mostram terceiros enviando como nós"

Quase sempre: um remetente transacional esquecido (Salesforce, Zendesk, recibos do Stripe) em um domínio que você possui. Correção: identifique cada um, adicione o include: deles no SPF e os CNAMEs deles no DKIM, retest. Uma vez alinhado, escale o DMARC para p=reject.

"Estamos numa blocklist do Spamhaus"

Pare de enviar imediatamente. Identifique a classe da listagem (ZEN, SBL, XBL, PBL) em spamhaus.org/lookup. PBL é baseado em política e facilmente resolvido; SBL é reputação; XBL é relacionado a malware.

Correção: peça remoção via formulário de remoção do Spamhaus, documente a ação corretiva (suprima agressivamente, audite a fonte de aquisição, pause envios por 24h). A maioria das listagens limpa em 24–72 horas se você agir rápido e documentar. Re-listagens limpam mais devagar.

"Taxa de bounce pulou de 1% para 8%"

Ou uma importação de lista contaminou o conjunto ativo, ou você enviou para uma coorte dormente há muito tempo e colheu todos os endereços mortos de uma vez. Correção: pause os envios, suprima retroativamente os endereços que deram bounce, audite a fonte de aquisição mais recente, envie só para a coorte engajada-90-dias pelas próximas 2 semanas enquanto a taxa de bounce se recupera.

"O Outlook.com está entregando em Lixo enquanto o Gmail está OK"

Reputação por provedor é diferente. O Outlook tende a ser mais estrito com domínios novos; o Gmail pesa mais o engajamento. Correção: registre-se no Microsoft SNDS, identifique a classificação de listagem do seu IP, envie uma campanha de rampa lenta só para destinatários Outlook engajados, observe o SNDS ficar verde em 2–4 semanas.

§12 · FAQ

FAQ de entregabilidade de email.

Preciso de SPF e DKIM e DMARC, ou um basta?

Os três. SPF autentica o IP de envio; DKIM autentica o corpo da mensagem e os cabeçalhos; DMARC amarra o cabeçalho From a um dos dois e diz aos receptores o que fazer quando o alinhamento falha. Qualquer remetente comercial moderno que não publique os três é tratado como suspeito por Gmail, Yahoo e Outlook. Os requisitos de bulk-sender de fevereiro de 2024 do Gmail/Yahoo tornaram isso piso duro, não recomendação.

Posso pular o warmup se estou usando IPs compartilhados no SES ou SendGrid?

Sim — esse é o valor dos IPs compartilhados. IPs de produção do SES vêm pré-aquecidos com reputação madura; você herda. O warmup é exigido só quando você muda para um IP dedicado (tipicamente > 1M envios/mês justifica um) ou quando sobe um MTA Postal auto-hospedado numa instância de nuvem nova.

Qual uma boa taxa de reclamação?

Abaixo de 0,1% (uma a cada mil) é saudável. Abaixo de 0,05% é excelente. Acima de 0,3% sustentado e o roteamento se degrada entre os provedores em 48 horas. O Amazon SES impõe um teto duro de 0,1% de taxa de reclamação — ultrapasse e sua conta é pausada para revisão.

Existe uma forma de testar entregabilidade antes de enviar uma campanha?

Duas ferramentas práticas: uma seed list (você mantém contas no Gmail, Outlook, Yahoo, Apple, Proton; envia a campanha para a seed list primeiro; cheque inbox vs spam). E serviços de seed de terceiros (GlockApps, Mailtrap, Litmus) que dão um relatório de colocação em 30+ provedores por $50–$100 por envio. A seed list é grátis + mais lenta; a de terceiros é paga + abrangente.

Quanto tempo demora para resolver um problema de entregabilidade?

Misconfigurações de autenticação são 1–4 horas mais propagação de DNS. Recuperação de reputação é 2–6 semanas de envio disciplinado — só coorte engajada, cadência baixa, observando as métricas reconstruírem. Listagens do Spamhaus limpam em 24–72 horas se você agir rápido. A cauda mais longa é reconstruir após um spike de taxa de reclamação — o spike é rápido, a subida de volta é lenta.

Devo usar um subdomínio para email de marketing?

Sim. Envie marketing de marketing.suaempresa.com ou news.suaempresa.com; transacional de notify.suaempresa.com; email corporativo do domínio apex. Reputação é por domínio — isolar marketing impede que um spike de taxa de reclamação numa campanha afete a entregabilidade do seu password-reset. Prática padrão em todos os principais remetentes SaaS.

O que é BIMI e vale o custo?

O BIMI exibe o logo da sua marca ao lado das mensagens em clientes suportados (Gmail, Yahoo, Apple, Fastmail). Custo de setup $0 para hospedar o SVG mais $1.500/ano por um Verified Mark Certificate (VMC) se você quer o check azul do Gmail. Elevações de taxa de abertura de 5–20% documentadas nos dados do piloto do Yahoo e do Mailchimp. Vale para remetentes B2C > 100K assinantes; marginal abaixo disso.

O Apple Mail Privacy Protection (MPP) quebra tracking de abertura?

O MPP roteia o pixel de abertura pelo proxy da Apple, então cada mensagem do Apple Mail parece "aberta" no momento em que é entregue. Taxa de abertura vira métrica de entrega para leitores Apple, não métrica de engajamento. Pivote para taxa de clique, taxa de resposta e conversão como sinais de engajamento; trate a taxa de abertura geral só como indicador leading com baseline deslocada. Estimados 30–40% das aberturas de email de consumidor fluem pelo MPP.

Descadastramento em um clique é mesmo exigido?

Para remetentes > 5.000 mensagens por dia para Gmail ou Yahoo: sim, desde fevereiro de 2024. O requisito técnico é um cabeçalho List-Unsubscribe apontando para uma URL POST de um clique (RFC 8058). O botão precisa processar o unsub sem exigir login ou página de confirmação. Falhar é motivo para roteamento ao spam.

Consigo melhorar a entregabilidade trocando o IP de envio?

Raramente é o movimento certo. Trocar IPs exige um warmup novo (4–6 semanas de volume degradado) e o problema de reputação subjacente normalmente vem do From-domain ou da qualidade da lista, não do IP. As exceções: listagem RBL confirmada no IP que não limpa, ou migração de ESP em que o novo ESP exige seus próprios IPs. Resolva qualidade de lista e autenticação primeiro.

Domínios autenticados. Bounces rastreados. Reputação nível caixa de entrada.

O AcelleMail entrega verificação SPF/DKIM/DMARC, processamento de feedback-loop ARF, máquina de estado de IP warmup e rate limiting por servidor na caixa. Cada afirmação neste guia mapeia para uma classe em app/Model/ ou app/Library/ do AcelleMail na árvore do código-fonte.

Testar demo ao vivo