Infra - Linux

Limpando as Suas Listas de Email

Às vezes precisamos remover de nossas listas de distribuição, para reduzir a carga do sistema, os endereços eletrônicos que não são mais válidos.

por Rubens Queiroz de Almeida



Às vezes precisamos remover de nossas listas de distribuição, para reduzir a carga do sistema, os endereços eletrônicos que não são mais válidos.

Em sistemas Debian e derivados, o registro de atividades do sistema de correio eletrônico, fica no diretório /var/log e as mensagens são arquivadas em arquivos chamados maillog e maillog.*.

Uma mensagem de erro tem o seguinte formato:

  Apr 25 04:13:35 XXXCNN0236 postfix/smtp[24984]: 87C994B1CAF:
  to=<wal@example.com>, relay=bacuri.example.com[192.169.10.32]:25,
   delay=94674, delays=94672/0.25/0.53/1, dsn=4.1.1, status=deferred (host
   bacuri.example.com[192.169.10.32] said: 450 4.1.1 <wa
  l@example.com>: Recipient address rejected: User unknown in local recipient
  table (in reply to RCPT TO command))
  

O que vemos no quadro acima é apenas uma linha, que podemos processar com o seguinte comando:

  grep "User unknown" /var/log/maillog         
| awk "{print $7}"         
| sed "s/to=.//;s/>,//"         
| sort         
| uniq > lista

Buscamos, no arquivo /var/log/maillog, por linhas que contenham a expressão "User Unknown". Nesta linha, o email com problemas está no sétimo campo, se considerarmos os espaços em branco como separadores (awk "{print $7}". Como podemos ver, o sétimo campo é to=<wal@example.com>. Para obtermos o valor do email puro, precisamos eliminar os caracteres em excesso, o que fazemos com o comando sed "s/to=.//;s/>,//". Em seguida, para eliminar duplicatas, ordenamos o resultado e passamos pelo filtro do comando uniq. Está criada a nossa lista.

Certamente, este é o tipo de coisa para a qual devem existir dezenas de formas alternativas, inclusive programas que fazem isto. Mas eu ainda não encontrei nenhum. Se alguém conhecer uma solução melhor, agradecemos se puder compartilhar conosco, usando o espaço de comentários para esta dica.

Rubens Queiroz de Almeida

Rubens Queiroz de Almeida - Mantenedor do site Dicas-L (http://www.dicas-l.com.br).