Hoje eu precisei melhorar o meu sistema de Antispam e extrai através do banco de dados todos os endereços de Spam, aqueles caras que ficam enviando propaganda para o meu servidor de e-mail.
Pois bem, o meu servidor de e-mail possui um sistema de Antispam muito bom, e barra 90% dos spam, ocorre que os e-mails de spam que ficam parados na Quarentena, fica ocupando espaço no meu HD e eu não quero isso.
Para resolver isso, criei um arquivo de texto com todos os endereços de e-mails dos remetentes de spams, e precisei encontrar uma forma de listar os domínios, ou seja, tudo que vem depois do "@" apos o nome do remetente.
Para isso, utilizei o nosso amigo cut no Linux com o comando abaixo:
cut -f2 -d\@ teste.txt
Na linha acima eu chamei o cut e falei pra ele, que dentro do arquivo teste.txt existe os nomes dos endereços de e-mail, falei pra ele que o meu delimitador é o "@", conforme a opção -d\@ essa barra é para falar para o bash não interpretar o "@" como sendo um comando, mas sim um simples caractere de teclado.
E na opção -f2, falei que quero que me traga o que vier depois do "@", ou seja, o segundo campo.
Ok, percebi que alguns domínios devem ser excluídos desse processamento, por exemplo, o do próprio gmail, para isso, alterei a linha de comando acima para:
cut -f2 -d\@ teste.txt | sed '/gmail/d' > blacklist.txt
Ok, agora eu consegui gerar o arquivo blacklist.txt com os domínios, com esse arquivo eu posso fazer um for, enviando domínio a domínio para o meu blacklist dentro do meu sistema de Antispam.