← Todos os textos

Combater o spam com IA: quando os filtros tradicionais não chegam

Nesta página

Uso o Fastmail há anos. Serviço excelente, preços sensatos, sem anúncios nem rastreio. Mas o filtro de spam? Incrivelmente inconsistente.

O problema não é o spam tradicional, que o Fastmail apanha sem dificuldade. Registos DKIM/SPF que não batem certo? Bloqueados. Domínios em listas negras? Filtrados. Isso tudo funciona.

O problema é todo o resto que passa. Um email de phishing, enviado de um endereço gmail.com legítimo, a fingir que é da Netflix. Uma campanha de marketing de uma empresa de que nunca ouvi falar e que, sabe-se lá como, arranjou o meu email. Passam todas as verificações técnicas, com autenticação certa e boa reputação do remetente, mas continuam a ser lixo indesejado a entulhar-me a caixa de entrada.

O problema moderno do spam

Isto é o que me aterra na caixa de entrada com regularidade:

  • Spam do género “redesenhámos o teu site”, vindo de agências que parecem legítimas
  • Empresas de SEO a prometer subir-me nos rankings
  • Emails de marketing a que tenho a certeza de que nunca me subscrevi
  • Spam de newsletters com design profissional, mas totalmente irrelevantes

Isto não ativa os filtros de spam tradicionais. Vem de domínios válidos, ou até de endereços gmail.com e outlook.com. Tem registos SPF e DKIM certos. A gramática é perfeita. Por todos os critérios técnicos são emails legítimos, só que completamente indesejados.

E é aqui que a coisa fica interessante: 89% dos emails maliciosos passam por autenticação SPF, DKIM e DMARC1. Estes protocolos de autenticação foram feitos para resolver a fraude por email, mas os spammers adaptaram-se. Agora usam infraestrutura legítima.

O que realmente precisa de filtragem

O problema não é só “reduzir o spam”. É mais subtil:

Phishing: emails fraudulentos com links que não correspondem à marca que invocam. Recebo um fluxo constante de falsos emails da “Netflix” e do “Spotify” a pedir para atualizar os dados de pagamento. Estão cada vez melhores, com boa formatação, linguagem convincente e domínios que parecem quase certos. Os filtros tradicionais apanham alguns, mas os sofisticados escapam. O Fastmail não apanha estes de todo.

Spam tradicional: falsificação de domínio, em que o email diz vir de um domínio mas vem de outro. As verificações SPF/DKIM apanham isto com facilidade. Não é o problema a sério.

Lixo: é aqui que tudo desanda. Emails com ar legítimo, de domínios reais (endereços gmail.com ou outlook.com verdadeiros), que são só marketing indesejado. “Reparámos que o teu site precisa de ser redesenhado.” “Deixa o teu SEO connosco.” “Oferta exclusiva para empresários.” Passam na autenticação porque são enviados de infraestrutura real. Estão gramaticalmente corretos. Parecem profissionais. Mas eu nunca os pedi, nunca me subscrevi, e entulham-me a caixa de entrada. Isto precisa de análise de conteúdo, não só de inspeção de cabeçalhos.

Os números contam a história

A escala do problema é enorme. Cerca de 47% de todo o tráfego de email é spam, em 20242. São 160 mil milhões de emails de spam enviados todos os dias em todo o mundo3. Só o Gmail bloqueia 15 mil milhões de emails de spam por dia com os seus filtros movidos a IA, com uma taxa de deteção de 99,9%4.

Mas o melhor vem agora: a Google bloqueou 265 mil milhões de emails sem autenticação em 20245 porque são fáceis de detetar. O spam autenticado? Esse é mais difícil.

Só 33,4% dos 1 milhão de domínios principais têm registos DMARC, e destes, 57,2% usam a política p=none, que não tem dentes e não faz nada6. Ou seja, 85,7% dos domínios não têm proteção DMARC eficaz. Os spammers sabem-no e exploram-no sem dó.

Mas o melhor vem agora: 89% dos emails maliciosos passam por autenticação SPF, DKIM e DMARC1. Estes protocolos de autenticação foram feitos para resolver a fraude por email, mas os spammers adaptaram-se. Agora usam infraestrutura legítima.

Os números são duros. Olhando para o que realmente passa, a divisão do spam conta uma história interessante:

A abordagem do Fastmail (e porque não chega)

O Fastmail usa o SpamAssassin combinado com o seu próprio filtro de conteúdo, o Vade7. É uma configuração sólida: o SpamAssassin existe desde sempre e funciona bem com spam tradicional. O filtro Vade acrescenta deteção de padrões e vai atualizando as regras de acordo com as ameaças do momento.

Mas é aqui que falha: a função de aprendizagem está ao contrário. Se usares um cliente de email como o Mail do iOS, não podes simplesmente carregar em “Spam” para treinar o filtro. Em vez disso, tens de8:

  1. Criar uma pasta especial
  2. Ir a Definições → Pastas e ativar “Scan this folder daily and learn any new messages”
  3. Configurá-la para aprender “as spam”
  4. Mover o spam para lá à mão

Não quero usar o cliente web do Fastmail. Quero usar o alojamento deles com o meu próprio cliente de email. Com este atrito, acabo por simplesmente não o treinar. E isso quer dizer que o filtro nunca melhora.

Porque é que a IA faz mesmo sentido aqui

Os filtros de spam tradicionais funcionam com regras e padrões. Mas esta zona cinzenta exige perceber contexto e intenção, exatamente aquilo em que os grandes modelos de linguagem são bons.

A IA lida bem com a ambiguidade. Consegue ler um email e perceber se é uma consulta comercial genuína ou mais uma proposta genérica do tipo “podemos redesenhar o teu site”. Percebe as táticas de urgência, nota os contextos que não batem certo, apanha as subtilezas que os sistemas baseados em regras deixam escapar.

Construí-lo

Queria testar a ideia antes de me comprometer com infraestrutura. Por isso exportei algumas centenas de ficheiros .eml da minha caixa de entrada do Fastmail e montei um banco de testes com o Ollama a correr o Llama 3.1 8B localmente.

O processo teve duas partes:

Classificação manual: passei pelos emails exportados e categorizei-os à mão: pessoal, transacional, newsletter, marketing, spam, phishing, etc. Isto deu-me a verdade de referência para testar.

Avaliação do modelo: passei os mesmos emails pelo LLM, com um prompt cuidadosamente trabalhado que lhe pedia para categorizar e pontuar cada um. Depois comparei as classificações do modelo com as minhas, para ver onde acertava e onde falhava.

Isto permitiu-me iterar no prompt sem gastar créditos de API nem lidar com a complexidade de um deployment. Quando tive uma exatidão acima de 85% e falsos positivos abaixo de 5%, soube que valia a pena pôr em produção.

A versão de produção é um Cloudflare Worker que:

  1. Intercepta o email recebido através do Cloudflare Email Routing
  2. Extrai remetente, assunto e corpo
  3. Analisa o conteúdo com @cf/meta/llama-3.1-8b-instruct através do Workers AI
  4. Categoriza o email e atribui uma pontuação de spam (0-10)
  5. Adiciona cabeçalhos: X-Wh-Spamscore, X-Wh-Category e X-Wh-Reasoning
  6. Reencaminha para o Fastmail com os cabeçalhos intactos

Uso o Llama 3.1 8B porque é rápido (inferência abaixo de um segundo) e suficientemente bom a perceber a nuance entre comunicação legítima e lixo de marketing.

Categorias e pontuação

A IA separa os emails em dez tipos:

  • personal: correspondência pessoal
  • transactional: confirmações de encomenda, redefinições de palavra-passe, recibos
  • newsletter: newsletters legítimas a que me subscrevi
  • marketing: emails promocionais, propostas comerciais
  • social: notificações de redes sociais
  • automated: notificações de sistemas, alertas de monitorização
  • phishing: suspeita de recolha de credenciais
  • scam: esquemas de enriquecimento rápido, pedidos de pagamento urgentes
  • spam: email em massa genérico e indesejado
  • suspicious: intenção pouco clara, mas potencialmente maliciosa

As pontuações de spam vão de 0 a 10:

  • 0-2: email limpo e legítimo
  • 3-4: provavelmente legítimo, mas comercial
  • 5-6: características suspeitas
  • 7-8: provável phishing ou burla
  • 9-10: ameaça certa

Primeiros resultados

Ainda não pus isto em produção, mas corri-o contra mensagens recentes da minha caixa de entrada, exportando os emails do Mac Mail.

Aqui ficam os resultados preliminares:

CategoriaContagemPontuação médiaFalsos positivos
Pessoal3260,881
Transacional7080,2810
Newsletter4621,552
Marketing3532,919
Social2720,629
Automático1631,839
Phishing2729,321
Burla828,692
Spam547,630
Suspeito275,762
Total2 719-45

A implementação

O worker trata da interceção do email, da análise por IA e do reencaminhamento. Funcionalidades principais:

  • Extrai o corpo do email com inteligência (lida com multipart, base64, quoted-printable)
  • Trunca em 2 500 caracteres por desempenho (preservando links e frases inteiros)
  • Engenharia de prompt exaustiva para guiar a análise da IA
  • Tratamento de erros robusto: se a IA falhar, reencaminha com valores por defeito seguros
  • Valida as saídas para garantir que as pontuações ficam entre 0 e 10 e que as categorias são válidas

O prompt explica todas as categorias, as regras de pontuação e os sinais de alerta. Insiste em poucos falsos positivos nos emails pessoais e transacionais, porque a última coisa que queres é um email legítimo marcado como spam.

Não incluí nenhum passo para detetar ataques de prompt injection, mas calculo que uma implementação comercial precise dessa camada de segurança.

Porque é que isto importa

A Google e o Yahoo exigem agora DMARC a quem envia em massa (5 000+ emails por dia)9. Aplicam um limite de 0,3% de queixas de spam10. A autenticação é hoje o mínimo exigido.

Mas a autenticação sozinha não chega. 89% dos emails maliciosos passam nas verificações de autenticação1. Os spammers usam infraestrutura legítima. Conhecem as regras e jogam dentro delas.

A peça que falta é a introspeção do conteúdo. Perceber o que um email realmente quer fazer, e não só de onde vem. É aí que entra a IA.

Pus o repositório no Github: willhackett/email-filtering, com instruções para o instalares tu e o testares contra a tua própria caixa de entrada.

Footnotes

  1. Keepnet, 2025 Phishing Statistics, August 2025 ↩ ↩2 ↩3

  2. Mailmodo, 23 Email Spam Statistics to Know in 2025, March 2025 ↩

  3. EmailToolTester, Spam Statistics 2025, October 2024 ↩

  4. SQ Magazine, Email Spam Statistics 2025, September 2025 ↩

  5. Keepnet, 2025 Phishing Statistics, August 2025 ↩

  6. DMARC Checker, SPF, DKIM, and DMARC in 2024: Analyzing the Top 1M Domains, 2024 ↩

  7. Fastmail, Spam filtering ↩

  8. Fastmail, Improving spam protection ↩

  9. PowerDMARC, Google and Yahoo Email Authentication Requirements 2025, August 2025 ↩

  10. Sinch Mailgun, State of email deliverability 2025, 2025 ↩