Existem diferentes abordagens utilizadas em programas e técnicas de combate ao spam. A mais simples é o bloqueio por palavras-chaves e endereço dos remetentes. Essa técnica é praticamente inútil hoje em dia, porque os spammers utilizam ferramentas que falsificam e deturpam essas informações de forma aleatória, enganando esse tipo de filtro.
Outro tipo de defesa é o "challenger", ou desafiador, que já é utilizado por alguns provedores nacionais. Quando uma mensagem é enviada para alguém que utiliza este sistema, o remetente recebe outra, na forma de um teste, uma questão, ou um "desafio", em que ele tem de informar palavras ou números formados aleatoriamente, ou confirmar que realmente enviou aquela mensagem, enviando-a de volta ou clicando em um link. Se passar no teste, coisa impossível para robôs e programas automáticos ou se o remetente é falso, o endereço fica registrado como vindo de uma pessoa real e as mensagens seguintes são autorizadas imediatamente.
Há ainda a possibilidade de usar endereços de e-mail descartáveis, temporários e específicos para determinados sites e serviços duvidosos. Apesar de ser possível fazê-lo com provedores de e-mail gratuito, existem serviços próprios para isso, que facilitam e automatizam o processo.
Uma técnica menos comum em softwares anti-spam domésticos, mas bastante utilizada em filtros de provedores, é a baseada em listas negras, que bloqueiam todo o tráfego de e-mails enviados a partir de determinados endereços ou redes que sejam fontes confirmadas de spam. Algumas dessas listas são rígidas ao extremo e acabam gerando grande número de "falsos positivos" - mensagens legítimas classificadas erroneamente como spam. Alguns provedores e programas permitem que o usuário estabeleça listas brancas, de "amigos", que se sobrepõem aos bloqueios padrões do servidor e são aceitas automaticamente.
A abordagem mais recente e que tem se mostrado bastante efetiva é a que avalia todo o conteúdo, tanto do cabeçalho, quanto do corpo da mensagem, para avaliar se se trata ou não de spam. São chamados de filtros "bayesianos" (inspirados no Teorema de Bayes (*)), ou adaptativos, porque "aprendem" com o passar do tempo o tipo de mensagem que o usuário deveria receber ou não.
Tome o exemplo de um spam clássico, o do golpe nigeriano. Sempre se trata de um suposto governante ou alto funcionário do governo que pretende fugir do país com milhões de dólares, mas precisa de um adiantamento para poder financiar a movimentação e a lavagem inicial do dinheiro. Para 99% das pessoas, qualquer mensagem que tenha "Nigéria", "dólar" e "governo" seria considerada spam.
Mas e se você for um funcionário de uma empresa com negócios na Nigéria, em que um dos principais clientes seja o governo do país? Um filtro baseado nas três palavras-chaves, por exemplo, eliminaria uma série de mensagens legítimas para este caso específico.
O sistema tem de ser treinado para entender o que é ou não spam para cada usuário. Esse processo leva alguns dias para se tornar eficaz e não pára nunca, já que os spammers estão em constante evolução. Mas uma vez treinados, os filtros bayesianos conseguem alcançar altos índices de eficiência, chegando a classificar corretamente mais de 98% das mensagens que chegam na caixa de correio dos internautas.