Validando lista de e-mail no MX
Publicado por Fábio Berbert de Paula 30/10/2003
[ Hits: 9.631 ]
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";
}
}
Retorna apenas emails válidos com MX válidos
Retornar somente e-mails válidos
Apagar spam na fila do postfix por palavra
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Eu queria adicionar a incon do wifi e deixa transparente no fluxbox no... (1)
Erro ao tentar ativar o secure boot no arch (1)









