Question

Une nouvelle fonctionnalité que je souhaite ajouter à notre réseau local est la possibilité de récupérer des e-mails à partir de services de messagerie gratuits tels que Gmail, Yahoo et Hotmail en utilisant PHP.Il existe des services pour lesquels nous pouvons payer, mais je préfère les pirater moi-même !

Je trouve que Google n'a qu'une API mais pas les autres. Quels sont les problèmes associés au fait que je récupère simplement mes e-mails à l'aide de CURL ?

J'ai même implémenté la partie GMail en utilisant CURL et PHP.

Était-ce utile?

La solution

Il viole presque certainement leurs conditions de service à l'écran-gratter leurs sites Web à cette fin. Si votre site Revoir la conception, les scripts que vous utilisez pour analyser le contenu de courrier électronique, etc. probablement casser catastrophiquement, aussi bien.

Yahoo, Gmail, Hotmail et tout le soutien POP3 , un protocole standard pour la récupération électronique mails. Pourquoi ne pas utiliser à la place?

Autres conseils

Quand quelqu'un vous donne une API, ils vous promettant que « si vous exécutez le code X, Y se produira. Lorsque vous l'écran éraflure, il n'y a pas une telle promesse du fournisseur, et de nombreux fournisseurs ont des éléments dans leurs conditions de service qui interdisent explicitement racler l'écran. d'un point de vue technique, cela signifie leur page / application peut subir des changements qui brisera votre screen scraping, se fanent ou par mégarde par le fournisseur volontairement. Voilà pourquoi le exist de CAPTCHA.

En outre, de plus en plus, ces applications utilisent de plus en plus des architectures de style « AJAX », ce qui signifie que vous vous engagez à l'ingénierie inverse le fonctionnement de leur application, ainsi que suivre les changements chaque application fait.

Enfin, eh bien, vous le faites mal. Le courrier électronique est un ensemble de protocoles et de lui-même. La plupart des fournisseurs ont un moyen d'accéder au courrier électronique via POP3 et IMAP. Je regarde dans le piratage du code PHP pour interagir avec les serveurs POP / IMAP qui, comme une API, sont un ensemble de comportements promis. Vous avez également l'avantage que le code écrit pour un fournisseur fonctionnera probablement (avec quelques réglages mineurs) pour un autre.

Je suppose que vous avez une raison pour ne pas utiliser le protocole pop, qui est le moyen standard pris en charge pour récupérer les e-mails.Le faire comme vous le souhaitez est quelque chose qui n’est pas pris en charge et qui n’est peut-être pas non plus couvert par les conditions d’utilisation des fournisseurs.

Mais si aucune résolution de captcha ne vous gêne, c’est techniquement possible.Vous devrez rédiger une demande différente pour chaque fournisseur.Au cas où quelque chose changerait, vous devrez adopter votre candidature.

Pour que cela fonctionne avec curl, assurez-vous de collecter tous les cookies qu'ils vous donnent dans toutes les pages et de les renvoyer à chaque demande.

En cas de problème (et également pour le développement), vous pouvez analyser les requêtes http et les réponses avec un outil (par ex.proxomitron sous Windows) et faites en sorte que les requêtes curl ressemblent de plus en plus exactement aux requêtes du navigateur jusqu'à ce que vous réussissiez.En fin de compte, ils ne peuvent rien faire pour distinguer vos requêtes curl des requêtes humaines via un navigateur.Sauf le captcha comme je l'ai déjà dit.

Une autre chose concerne les intervalles entre vos demandes, vous pourriez être bloqué si vous demandez trop souvent ou lorsqu'il n'y a pas de pause entre 2 demandes (ce qu'un humain ne peut pas faire).Essayez d'insérer des pauses modifiées de manière aléatoire entre les requêtes si vous le soupçonnez.

J'imagine qu'ils bloquent vos comptes ou IP pendant le développement, dans ce cas il faudrait changer l'IP et/ou le compte sur lequel vous travaillez.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top