Validando lista de e-mail no MX
Publicado por Fábio Berbert de Paula 30/10/2003
[ Hits: 9.723 ]
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";
}
}
Retornar somente e-mails válidos
Notificador de Gmail no Conky.
Adicionar conta de e-mail - Postfix com domínios virtuais no MySQL
Papagaiando o XFCE com temas e recursos
WhatsApp com Chamadas no Linux via Waydroid
XFCE - quase um Gnome ou Plasma mas muito mais leve
LXQT - funcional para máquinas pererecas e usuários menos exigentes
Como cortar as partes de um vídeo com passagens de áudio em branco
Tiling automático no KDE Plasma
SNMP Scan no OCS Inventory só funciona com HTTPS corretamente configurado
Alguém tem que acabar com ANATEL!!! (1)
GOG confirma suporte oficial ao sistema Linux: "o trabalho começo... (4)









