Validando lista de e-mail no MX
Publicado por Fábio Berbert de Paula 30/10/2003
[ Hits: 9.652 ]
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";
}
}
Notificador de Gmail no Conky.
Apagar spam na fila do postfix por palavra
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Desenvolvi um programa de hot corner (você colocar o mouse nos cantos)... (3)
Pendrive Bootable [RESOLVIDO] (4)









