De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 01 de maio de 2010
À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.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários