Validando lista de e-mail no MX
Publicado por Fábio Berbert de Paula 30/10/2003
[ Hits: 9.433 ]
Homepage: https://fabio.automatizando.dev
Este script recebe como argumento um arquivo texto contendo uma lista de e-mails, um por linha e retorna a lista de somente os e-mails válidos. Ele verifica se a sintaxe do e-mail está correta e se o usuário existe no servidor de e-mail do domínio. Forma de uso:
./valida_email.pl arquivo_lista > nova_lista.txt
#!/usr/bin/perl # valida_email.pl # Este script recebe como argumento um arquivo texto contendo # uma lista de e-mails, um por linha e retorna a lista de # somente os e-mails válidos. Ele verifica se a sintaxe do # e-mail está correta e se o usuário existe no servidor de # e-mail do domínio. # # Por: Fábio Berbert de Paula <fabio@vivaolinux.com.br> # Rio de Janeiro, 30 de Outubro de 2003. use strict; use Mail::Address; use MIME::Entity; use Tie::DNS; my $lista = shift; if (! -f $lista) { print "Use: $0 <arquivo_lista>\n"; exit; } my %dns = (); tie(%dns, 'Tie::DNS', { 'type' => 'MX' } ); my $res = Net::DNS::Resolver->new; # converter a lista de e-mail para um hash e remover os # e-mails duplicados my %lista_email = (); open(READ, $lista); while (<READ>) { chomp; if (!defined($lista_email{$_})) { $lista_email{$_} = 1; } } close(READ); foreach my $email (keys %lista_email) { my @addrs = Mail::Address->parse($email); foreach my $addr (@addrs) { my $user = $addr->user; my $domain = $addr->host; if(!$user) { next;} if(!$domain) { next;} if ($user =~ m/\^/) { next;} if ($user =~ m/\@/) { next;} if ($domain =~ m/\@/) { next;} if ($domain =~ m/\.$/) { next;} if ($domain =~ m/^\./) { next;} if ($domain =~ m/_/) { next;} my $mx = $dns{$domain}; if (!$mx) { next; }; print $addr->format,"\n"; } }
Apagar spam na fila do postfix por palavra
Apagar MAILER-DAEMON da fila de email
Retorna apenas emails válidos com MX válidos
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Como atribuir corretamente o CNES final baseado nas regras de certific... (1)
Suporte a Markdown ou BBCODE para o VOL (0)
Ubuntu 24 [ Wireless sendo atacada ] (2)