Como verificar se existe um endereço de email?

26

Estou tentando verificar 2.000 endereços de email para ver se eles existem. Existem maneiras de verificar se um endereço de email é válido sem enviar email para cada endereço ?.

Encontrei um serviço online Email Unlimited , mas ele só verifica 20 endereços de email antes de comprar a versão completa.

tintincutes
fonte

Respostas:

37

Apenas por uma questão de exaustividade: alguns servidores SMTP que indicar se existe um endereço de e-mail. Seguindo um exemplo completo em outra resposta :

telnet gmail-smtp-in.l.google.com 25

helo example.com
mail from: <[email protected]>
rcpt to: <[email protected]>
550-5.1.1 The email account that you tried to reach does not exist. Please try
550-5.1.1 double-checking the recipient's email address for typos or
550-5.1.1 unnecessary spaces. Learn more at
550 5.1.1 http://mail.google.com/support/bin/answer.py?answer=6596

Em caso de sucesso, e em servidores que não podem ou não querem dizer se um endereço é válido, o último comando renderia:

250 2.1.5 OK

Pode-se simplesmente chamar quitsem enviar nenhum email. Ainda assim, ao tentar vários endereços, isso também pode te bloquear.

(O Gmail não suporta o vrfycomando. No site, ele também possui um botão "verificar disponibilidade" ao se inscrever em uma nova conta do Gmail. Isso também pode fornecer algumas informações, mas os endereços antigos ficam indisponíveis por algum tempo.)

Arjan
fonte
11
O SMTP define o VRFYcomando para esse fim.
grawity
@rawrawity, isso pode ser verdade em teoria, mas VRFYNÃO funciona com o Gmail. (Veja meu comentário na resposta de Michael .)
Arjan
2
Nem todos os servidores respondem com um erro "não existe" por contas ausentes, portanto, isso não é totalmente confiável. Se o servidor for um proxy (e / ou servidor secundário externo) para vários outros servidores, ele poderá não saber quais contas são válidas no próximo salto, fornecendo "250 OK" para qualquer coisa e alguns servidores são configurados dessa maneira em para impedir que os spammers tentem enumerar contas válidas. Um teste rápido de alguns dos servidores de correio de nossos clientes mostrou que 1 dos 5 que eu tentei não deu uma resposta 5xx para uma conta inexistente.
David Spillett
(. @ David, eu sei É por isso que eu usei a palavra "alguns" acima ... Mas eu tenho enfatizado que um pouco.)
Arjan
@Arjan Eu escrevi um pequeno script python para automatizar este gist.github.com/arulrajnet/c613bd0fad5de00bab2e
Arul
23

Se isso fosse possível, os remetentes de spam em todo o mundo estariam cantando de alegria.

Desculpe, mas não, não é possível saber se existe um endereço de email específico ou não.

Na minha opinião, este é um recurso!

  • Se você conhece seus correspondentes, você saberá as informações de contato deles.
  • Se você não conhece seus correspondentes, então você é um estranho e eles não vão gostar de receber e-mails não solicitados.
  • Se você conhecia seus correspondentes e eles não o mantinham informado sobre as alterações de endereço, eles tomaram uma decisão (in?) Consciente de não receber seu e-mail.

O melhor que você pode fazer é enviar um email para sua lista e remover os que retornam (= aqueles que não puderam ser entregues).

Seja cuidadoso! Em alguns países, é ilegal enviar emails em massa não solicitados para pessoas que não permitiram explicitamente isso com antecedência.

Torben Gundtofte-Bruun
fonte
Obrigado por isso. Mas sim, conhecemos os contatos, mas alguns deles não atualizaram seus detalhes de contato conosco quando mudaram de posição ou empresa. Enviamos boletim informativo da última vez e ele devolve endereços de e-mail e nossa conta foi reativada devido à alta porcentagem de devoluções de e-mails. Eu encontrei um na internet, mas não tenho certeza se isso é confiável: confirm-email.org
tintincutes
2
+1 - se funcionasse, seria rapidamente abusado. É por isso que não podemos ter coisas boas!
David Spillett
2
Não sei por que isso é fortemente votado. A lição de ética 101? Eu já vi algo parecido com o que o OP quer que seja usado, e nem mesmo para fins nefastos. As outras respostas e comentários sugerem que é possível para muitos servidores de correio, especialmente corporativos / fora do Google.
Daniel Beck
11
@ Daniel: certamente é possível para alguns ( muitos , de fato) servidores / serviços de correio - mas não é confiável nem é necessariamente confiável para um determinado endereço. Eu votei pela correção técnica de "você não pode ter certeza" e não por qualquer aspecto ético.
David Spillett
11
As pessoas que foram usadas como remetentes falsos de spam não ficarão muito felizes com esse "recurso" ao receberem muitos retrocessos . (Além da mensagem de salto ocasional de corridas que usam um diferente From, Reply-toou Return-Pathpara cada mensagem, que tenho recebido milhares de mensagens de retorno em duas ocasiões facilmente filtrada, ainda não muito agradável..)
Arjan
7

Realmente não existe uma boa maneira de fazê-lo. Existe um comando 'VRFY' no protocolo SMTP, mas não conheço ninguém que permita que isso funcione mais - é muito útil para remetentes de spam. A maioria dos hosts apenas recusará mais o comando.

O melhor que você pode fazer agora é enviar o e-mail e registrar o que é devolvido (observando que alguns hosts de e-mail apenas travam mensagens não entregues em vez de devolvê-las).

Não sei qual é o seu negócio ou objetivo nessa lista, mas você deve saber que, se enviar um email para 2000 pessoas de uma só vez, provavelmente será sinalizado como spammer por alguns hosts de email.

Michael Kohne
fonte
11
Provavelmente mais como limpar uma lista de contatos. Os correios saltam de qualquer maneira.
Daniel Beck
Tentando limpar os contatos; Preciso criar um novo banco de dados de contatos. Temos muitos clientes de empresas diferentes, não tenho certeza se preciso categorizá-los em um banco de dados ou criaria um banco de dados diferente para empresas diferentes. Qual seria o melhor caminho?
Tintincutes
Se eu entendi corretamente, vrfy seria necessário um nome de usuário , não um endereço de e-mail? Se for verdade, acho que está sendo desativado principalmente por motivos de segurança, não para combater spammers? No Gmail, ambos vrfy existinguser, vrfy [email protected], vrfy someunknownusere vrfy [email protected]todos os rendimentos 252 2.1.5 Send some mail, I'll try my best, enquanto que no mesmo Gmail rcpt to: não revelar se um endereço de e-mail é válido.
quer
Com o vrfy, você se conecta a um servidor de correio e, em seguida, ao nome de usuário vrfy (a parte antes de @ no endereço de e-mail). Se estiver funcionando, ele informará sim ou não se o usuário é real. Se não estiver funcionando (muitos não estão), então ele dirá 'proibido' ou 'não faço ideia'. Observe que a resposta 'não faço ideia' é perfeitamente legítima para um host de encaminhamento de email que não tem acesso à lista de contas subjacentes. Portanto, mesmo quando estiver trabalhando, o vrfy pode não ser tão útil.
Michael Kohne
2

Não é possível determinar com precisão se um endereço é real ou não - qualquer produto que afirme ser capaz de exagerar suas habilidades, portanto você deve considerar outras reivindicações feitas com um olhar cínico.

Existem bibliotecas F / OSS existentes que fazem o máximo possível: eu acho que a maioria dos softwares no mercado é apenas um invólucro sofisticado para que você possa criar facilmente o que é bom / ruim se você tiver alguma experiência em codificação. Mas lembre-se de que, por melhor que seja a rotina de validação, será muito propenso a fornecer resultados falso-positivos e falso-negativos.

O http://freshmeat.net/projects/emailaddressvalidationcomponent, por exemplo, apresenta uma pesquisa rápida para freshmeat e, assumindo que a descrição esteja correta, ele faz tudo o que pode ser feito para tentar verificar um endereço.

David Spillett
fonte
@ DanieL: Ok, obrigado por isso. Que tal este? Isso também é válido: techie-buzz.com/how-to/…
tintincutes
@tintincute: parece bem válido, minha fonte do Lifehacker usa o mesmo vídeo ... #
studiohack
2

Você pode executar ping no endereço de email.

Partida Lifehacker.com:

http://lifehacker.com/5697360/how-to-verify-if-an-email-address-is-real-or-fake

Quando você envia um email para alguém, a mensagem vai para um servidor SMTP, que procura os registros MX (Mail Exchange) do domínio do destinatário do email.

Clique no link para obter instruções passo a passo sobre como executar ping em um endereço de email.

studiohack
fonte
1

Dentro do contexto da empresa, isso pode ser feito automatizando as pesquisas no Active Directory.

David
fonte
1

Que tal escrever um script Perl para automatizar esse trabalho? Confira: http://search.cpan.org/~ilyam/Mail-CheckUser-1.21/CheckUser.pm

Jassi
fonte
Na verdade, ele usa comandos SMTP para conectar-se a um servidor SMTP e, se você fizer muitas solicitações muito cedo, poderá ser rotulado como spammer e bloqueado. Portanto, não é bom para verificar milhares de e-mails.
Bulrush
1

Você pode tentar: http://verify-emails.com/

Ainda é um serviço de compra e compra, mas pode lidar com listas e emails únicos e pode ser incorporado aos formulários de registro.

chris
fonte
Esse domínio é para vendas. Site está morto.
Bulrush
1

Eu também precisava de uma maneira de verificar a existência de endereços de e-mail, então acabei escrevendo meu próprio pequeno utilitário. (Pitão)

http://github.com/un33k/python-emailahoy

É 100% preciso quando o fornecedor é honesto com você.
(o gmail é bastante honesto, mas o yahoo NÃO é o que diz sim a todos os e-mails.)

É melhor que nada, pois reduziu os spams em mais de 50% para mim.

un33k
fonte
0

É possível verificar se existe um endereço de email usando este link: http://verify-email.org/ . Ele faz ping no endereço de email e responde Okse o email existe e Badse o email é falso ou não existe. mais um link útil para esse problema: http://www.shoutmeloud.com/how-to-verify-if-email-address-exist-or-not.html

Bhavinkumar Patel
fonte
1º link: parece que a verificação de endereços únicos é gratuita, mas a verificação de 2000, conforme solicitado na pergunta, requer software pago. Essa é a situação para a qual a pergunta busca uma alternativa, portanto, essa não é realmente uma solução para a questão. O segundo link também lida com verificações únicas. Superusuário não é um fórum, onde é típico deixar qualquer coisa que geralmente esteja relacionada ao tópico. Seu objetivo é criar uma base de conhecimento e cada resposta deve fornecer uma solução para o que foi solicitado. Respostas que não tendem a atrair votos negativos.
fixer1234