使用CURL检索电子邮件有哪些问题?

时间:2009-04-11 21:17:08

标签: php architecture curl implementation

我希望添加到本地网络的新功能是能够使用PHP从Gmail,Yahoo和Hotmail等免费电子邮件服务中检索电子邮件。有我们可以支付的服务,但我宁愿自己破解它!

我发现Google只有API,但其余的则没有。 与我一起使用CURL检索电子邮件有什么问题?

我甚至使用CURL和PHP实现了GMail部分。

3 个答案:

答案 0 :(得分:2)

它几乎肯定违反了他们为此目的屏蔽其网站的服务条款。如果他们重新设计您的网站,您用于解析电子邮件内容等的脚本也可能会发生灾难性的破坏。

Yahoo,Gmail和Hotmail都支持POP3,这是一种检索电子邮件的标准协议。为什么不用呢?

答案 1 :(得分:1)

当有人给你一个API时,他们会向你保证“如果你运行代码X,Y就会发生。当你屏幕刮擦时,提供商没有这样的承诺,许多提供商的服务条款都有项目明确禁止屏幕抓取。从技术角度来看,这意味着他们的页面/应用程序可能会发生变化,会破坏您的屏幕抓取,由提供商意外或有目的地萎缩。这就是CAPTCHA存在的原因。

此外,这些应用程序越来越多地使用越来越多的“AJAX”样式体系结构,这意味着您承诺逆向设计其应用程序的工作方式,并跟上每个应用程序所做的更改。

最后,好吧,你做错了。电子邮件本身就是一组协议。大多数提供商都有办法通过POP3和IMAP访问电子邮件。我会研究破解PHP代码来与POP / IMAP服务器进行交互,这些服务器就像API一样,是一组承诺的行为。您还有一个优势,即为一个提供商编写的代码可能会对另一个提供商起作用(稍作调整)。

答案 2 :(得分:0)

我认为您有理由不使用pop协议,这是支持的标准方式来检索电子邮件。要像你想要的那样做它是不受支持的东西,也可能不被提供者的使用条款所涵盖。

但如果没有验证码解决方案,那么技术上是可行的。您必须为每个提供程序编写不同的应用程序。如果他们改变某些东西,你将不得不采用你的申请。

要使其与curl一起使用,请务必收集他们在所有页面中提供的所有Cookie,并在每个请求中返回它们。

如果出现任何问题(以及开发),您可以使用某些工具(例如Windows上的proxomitron)分析http请求和答案,并使curl请求看起来更像浏览器请求,直到您成功为止。最后,他们无法通过浏览器区分您的curl请求和人类请求。除了我之前说的验证码。

另一件事是您的请求之间的间隔,您可能会被阻止经常请求或两个请求之间没有暂停(人类无法做到)。如果您怀疑这一点,请尝试在请求之间插入随机修改的暂停。

我可以想象他们会在开发过程中阻止您的帐户或IP,在这种情况下,您需要更改您工作的IP和/或帐户。