Gmail - Verificar existencia de e-mails

2,350 views
Skip to first unread message

Wellington Castro

unread,
Jan 19, 2015, 11:36:19 AM1/19/15
to python...@googlegroups.com
Olá galera,

Quero fazer um script que após ler um e-mail, verifica se o e-mail existe e tempo de existência, inicialmente a ideia é apenas para o GMAIL, 
alguém já fez algo parecido?


Obrigado.

Fabio C. Barrionuevo da Luz

unread,
Jan 19, 2015, 12:22:50 PM1/19/15
to python...@googlegroups.com

--
--
------------------------------------
Grupo Python-Brasil
http://www.python.org.br/wiki/AntesDePerguntar
 
<*> Para visitar o site do grupo na web, acesse:
http://groups.google.com/group/python-brasil
 
<*> Para sair deste grupo, envie um e-mail para:
python-brasi...@googlegroups.com

---
Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para python-brasi...@googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.



--
Fábio C. Barrionuevo da Luz
Acadêmico de Sistemas de Informação na Faculdade Católica do Tocantins - FACTO
Palmas - Tocantins - Brasil - América do Sul


Blog colaborativo sobre Python e tecnologias Relacionadas, mantido totalmente no https://github.com/pythonclub/pythonclub.github.io .

Todos são livres para publicar. É só fazer fork, escrever sua postagem e mandar o pull-request. Leia mais sobre como publicar em README.md e contributing.md.
Regra básica de postagem:
"Você" acha interessante? É útil para "você"? Pode ser utilizado com Python ou é útil para quem usa Python? Está esperando o que? Publica logo, que estou louco para ler...

Rafael Oda

unread,
Jan 19, 2015, 2:06:52 PM1/19/15
to python...@googlegroups.com
Fabio, não sei se estou enganado, mas essa API assume que seu usuário se logou. A API fornece funcionalidades para que você possa construir coisas como o aplicativo do mailbox, por exemplo. Esse tipo de fluxo de uso eu temo que não seja possível ver sem que o usuário se autentique. 

Também tenho interesse em saber se é possível fazer algo desse tipo.

Abs,

Wellington Castro

unread,
Jan 19, 2015, 6:26:07 PM1/19/15
to python...@googlegroups.com

Isso mesmo, pelo o que entendi nesse caso precisa autenticar, o que gostaria mesmo é desenvolver algo para consultar outros e-mails(sem autenticar).

Renzo Nuccitelli

unread,
Jan 19, 2015, 7:10:09 PM1/19/15
to python...@googlegroups.com
Acredito que não tenha com fazer isso sem autenticar. Uma evidência é que os sites continuam te mandando email para confirmar que vc o possui.
Mas posso estar errado.

Não sei se é o caso, mas as vezes compensa vc perguntar sobre "o que" deseja fazer do que "como". Assim o pessoal pode ter dar alternativas em que vc não tenha pensado. Também não sei se foi esse o caso agora, apenas parece para mim.

Abs,

--

Rodrigo Delduca

unread,
Jan 19, 2015, 8:22:38 PM1/19/15
to python...@googlegroups.com
Uma rapida pesquisa no DuckDuckGo revela isso: https://productforums.google.com/forum/#!topic/gmail/bV6DzfmxVEA


--
http://www.nullonerror.org/
--  flipping bits whilst updating pixels

Filipe Cifali

unread,
Jan 20, 2015, 5:21:44 AM1/20/15
to python...@googlegroups.com
Verificar se o remetente existe?

Isso é complicado viu, existem diversas formas de enviar e-mail e o protocolo em si não é o mais 'verdadeiro', é relativamente fácil falsificar e-mails, visto a quantidade de SPAM enviada todos os dias. 

Qual o objetivo dessa verificação? Talvez seja mais fácil de outras formas ou sabendo melhor o teu objetivo. 
[ ]'s

Filipe Cifali Stangler

Joao S. O. Bueno

unread,
Jan 20, 2015, 5:48:48 AM1/20/15
to Python Brasil
2015-01-19 14:36 GMT-02:00 Wellington Castro
<wellingt...@mercadolivre.com>:
Esse tipode dado é sensível, e eu duvido que algum provedor de
e-mails divulgue isso.
Se você encaminhar um e-mail para um endereço não existente, a maioria
dos provedores
(mas não sei o g-mail em particular) - vai te retornar um erro dizendo
que o destinatário
não existe. (O lado negativo óbvio é que se o usuário existir, ele
recebe a mensagem de teste).

Já a quanto tempo uma conta existe, creio que não é algo que fique
público mesmo.


js
-><-

Wellington Castro

unread,
Jan 20, 2015, 7:19:25 AM1/20/15
to python...@googlegroups.com
Entendi...

Bom, o que gostaria de fazer é um validação em meu site no momento que o usuário se cadastra e verificar o tempo daquela conta, apenas 
para ter certeza que não é um cadastro recém criado apenas para fraudar o site.




Em segunda-feira, 19 de janeiro de 2015 14:36:19 UTC-2, Wellington Castro escreveu:

Linux - Junior Polegato

unread,
Jan 20, 2015, 7:45:27 AM1/20/15
to python...@googlegroups.com
On 20-01-2015 08:48, Joao S. O. Bueno wrote:
2015-01-19 14:36 GMT-02:00 Wellington Castro
<wellingt...@mercadolivre.com>:
Olá galera,
Quero fazer um script que após ler um e-mail, verifica se o e-mail existe e
tempo de existência, inicialmente a ideia é apenas para o GMAIL,
alguém já fez algo parecido?
Esse tipode dado é sensível, e eu duvido que algum  provedor de
e-mails divulgue isso.
Se você encaminhar um e-mail para um endereço não existente, a maioria
dos provedores
(mas não sei o g-mail em particular) - vai te retornar um erro dizendo
que o destinatário
não existe. (O lado negativo óbvio é que se o usuário existir, ele
recebe a mensagem de teste).
Já a quanto tempo uma conta existe, creio que não é algo que fique
público mesmo.

Olá!

        Você pode se conectar ao Gmail para tentar enviar mensagem para um e-mail inexistente, alguns SMTPs devolvem erro ao preencher o "RCPT TP", outros não, deixam você enviar e então te enviam um depois de um tempo uma mensagem de retorno com o erro.

        O grande ruim disso é que você, seu IP especificamente, vai ficando negativado e sendo limitado a um número menor de conexões, até que te bloqueiam de vez por um dia, se insistir, bloqueiam o IP para sempre e terá que entrar em pedir desculpa pelo inconveniente que um erro no seu sistema causou isso. Aí te liberam o IP, mas não liberarem novamente tão fácil se fizer isso novamente.

        No caso do Gmail, é possível verificar por telnet na porta 25, a qual você precisa ter liberada no seu IP, veja:

$ telnet alt4.gmail-smtp-in.l.google.com 25
Trying 74.125.68.27...
Connected to alt4.gmail-smtp-in.l.google.com.
Escape character is '^]'.
220 mx.google.com ESMTP sp5si4212902pab.234 - gsmtp

HELO teste123.eng.br
250 mx.google.com at your service

MAIL FROM: <jun...@teste123.eng.br>
250 2.1.0 OK sp5si4212902pab.234 - gsmtp

RCPT TO: <juniortes...@gmail.com>
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://support.google.com/mail/bin/answer.py?answer=6596 sp5si4212902pab.234 - gsmtp

quit
221 2.0.0 closing connection sp5si4212902pab.234 - gsmtp
Connection closed by foreign host.

        Veja aqui que retornou erro 550 para "RCPT TO", o qual significa que o e-mail não existe.

        Depois de um tempo pode obter isso:

421-4.7.0 [111.222.123.122      15] Our system has detected an unusual rate of
421-4.7.0 unsolicited mail originating from your IP address. To protect our
421-4.7.0 users from spam, mail sent from your IP address has been temporarily
421-4.7.0 rate limited. Please visit
421-4.7.0 http://www.google.com/mail/help/bulk_mail.html to review our Bulk
421 4.7.0 Email Senders Guidelines. nj1si3930531pbc.249 - gsmtp
Connection closed by foreign host.

        Se sua porta 25 estiver bloqueado pelo seu provedor e serviço de hospedagem, pode utilizar o seu provedor de e-mail para isso com, mas nesse caso vai precisar se autenticar nele e enviar o e-mail, então se ocorrer o erro acima, ele vai te devolver no e-mail autenticado.

        Fazendo o que fiz no telnet com Python, seria assim:

https://gist.github.com/JuniorPolegato/3d56b39f2829ff976d35


E-mail de origem: atana...@nada.com
Digite um e-mail para testar: fulanodene...@gmail.com
alt4.gmail-smtp-in.l.google.com.
220 mx.google.com ESMTP oq6si4573915pab.148 - gsmtp

HELO nada.com
250 mx.google.com at your service

MAIL FROM: <atana...@nada.com>
250 2.1.0 OK oq6si4573915pab.148 - gsmtp

RCPT TO: <fulanodene...@gmail.com>
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://support.google.com/mail/bin/answer.py?answer=6596 oq6si4573915pab.148 - gsmtp

fulanodene...@gmail.com -----> Não existe!

quit
221 2.0.0 closing connection oq6si4573915pab.148 - gsmtp

Digite um e-mail para testar: li...@jxxxxxpolegato.com.br
aspmx3.googlemail.com.
220 mx.google.com ESMTP g14si5132074wiw.32 - gsmtp

HELO nada.com
250 mx.google.com at your service

MAIL FROM: <atana...@nada.com>
250 2.1.0 OK g14si5132074wiw.32 - gsmtp

RCPT TO: <li...@jxxxxxpolegatocom.br>
250 2.1.5 OK g14si5132074wiw.32 - gsmtp

li...@jxxxxxpolegato.com.br -----> Existe!

quit
221 2.0.0 closing connection g14si5132074wiw.32 - gsmtp

Digite um e-mail para testar:

--

[]'s

Junior Polegato

Otavio Augusto

unread,
Jan 20, 2015, 7:46:15 AM1/20/15
to python...@googlegroups.com
Em 20 de janeiro de 2015 10:19, Wellington Castro
<wellingt...@mercadolivre.com> escreveu:
> Entendi...
>
> Bom, o que gostaria de fazer é um validação em meu site no momento que o
> usuário se cadastra e verificar o tempo daquela conta, apenas
> para ter certeza que não é um cadastro recém criado apenas para fraudar o
> site.

Isto só tem jeito de o administrador do gmail, yahoo ou outro provedor
te passar a informação, Isto nunca vai existir em API disponível, pelo
menos no Brasil, pois fere o Marco Civil da Internet. Pelo seu
endereço de email imagino que trabalhe no mercado livre e queira
ajudar na validação dos usuário, que é ótimo por sinal, mas lembre que
além de problemas técnicos tem as questões legais quando se fala de
dados de usuários na internet principalmente depois do MCI.
A ideia em sim é boa mas não pode ser aplicada, a não ser que você
convença o usuário no ato do cadastro a te dar a senha de acesso e que
isto será usado somente para propósitos de validação.

>
>
>
>
> Em segunda-feira, 19 de janeiro de 2015 14:36:19 UTC-2, Wellington Castro
> escreveu:
>>
>> Olá galera,
>>
>> Quero fazer um script que após ler um e-mail, verifica se o e-mail existe
>> e tempo de existência, inicialmente a ideia é apenas para o GMAIL,
>> alguém já fez algo parecido?
>>
>>
>> Obrigado.
>
> --
> --
> ------------------------------------
> Grupo Python-Brasil
> http://www.python.org.br/wiki/AntesDePerguntar
>
> <*> Para visitar o site do grupo na web, acesse:
> http://groups.google.com/group/python-brasil
>
> <*> Para sair deste grupo, envie um e-mail para:
> python-brasi...@googlegroups.com
>
> ---
> Você recebeu essa mensagem porque está inscrito no grupo "Python Brasil" dos
> Grupos do Google.
> Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie
> um e-mail para python-brasi...@googlegroups.com.
> Para mais opções, acesse https://groups.google.com/d/optout.



--
Otavio Augusto
---------------------
Consultor de TI
Citius Tecnologia
31 37761866
31 88651242
http://www.citiustecnologia.com.br

Alexandre Vicenzi

unread,
Jan 20, 2015, 10:54:01 AM1/20/15
to python...@googlegroups.com
Bem, neste caso porque você não utiliza a autenticação OAuth do Google? Com isso você terá certeza de que a conta é válida, e ainda pode ler algumas informações pessoais do usuário de brinde, como nome e email.

Renzo Nuccitelli

unread,
Jan 20, 2015, 6:22:16 PM1/20/15
to python...@googlegroups.com
Essa Thread está direitinho com o que eu disse. Vc estava perguntando o "como" no início. Agora o que vc realmente queria acabou acabou de ser escrito:  "Bom, o que gostaria de fazer é um validação em meu site no momento que o usuário se cadastra e verificar o tempo daquela conta, apenas 
para ter certeza que não é um cadastro recém criado apenas para fraudar o site.".

Por isso digo que é melhor perguntar sobre o que se quer fazer, veja que a resposta do Alexandre não tem nada a ver com o "como", mas me parece ser uma boa reposta sobre "o que" vc quer fazer.

Eu inclusive usava muito isso na hora de levantar os requisitos. Muitas vezes ele vinha com o "como" em vez de "o que".

Abs,

--

Alexandre Vicenzi

unread,
Jan 21, 2015, 5:28:48 AM1/21/15
to python...@googlegroups.com
Concordo. A única forma de validar se um email é realmente válido é com o envio do famoso email para confirmar a conta antes de você sair usando o site.

Se existisse outra forma, nenhum site enviaria este email de confirmação de cadastro.

O OAuth é a melhor solução, porém não é trivial de ser implementado. Claro que existem vários clientes prontos ou plugins para serem adicionados com o DJango ou Flask por exemplo.
Reply all
Reply to author
Forward
0 new messages