0

ローカルネットワークに追加したい新機能は、PHPを使用してGmail、Yahoo、Hotmailなどの無料の電子メールサービスから電子メールを取得する機能です。有料のサービスもありますが、自分でハックしたいです!

GoogleにはAPIしかありませんが、残りはありません。CURLを使用してメールを取得するだけの場合の問題は何ですか?

CURLとPHPを使用してGMailの部分も実装しました。

4

3 に答える 3

2

その目的のためにウェブサイトをスクリーンスクレイピングすることは、ほぼ間違いなく彼らの利用規約に違反しています。彼らがあなたのサイトを再設計した場合、あなたが電子メールの内容などを解析するために使用しているスクリプトもおそらく壊滅的に壊れるでしょう。

Yahoo、Gmail、およびHotmailはすべて、電子メールを取得するための標準プロトコルであるPOP3をサポートしています。代わりにそれを使ってみませんか?

于 2009-04-11T22:38:09.860 に答える
1

誰かがあなたにAPIを与えると、「コードXを実行すると、Yが発生します。スクリーンスクレイピングを行うと、プロバイダーからのそのような約束はありません。多くのプロバイダーは、サービス条件に明示的に禁止するアイテムを持っています。画面のスクレイピング技術的な観点から、これは、ページ/アプリケーションが変更されて画面のスクレイピングが破損する可能性があることを意味し、プロバイダーによって誤ってまたは意図的に枯渇します。これがCAPTCHAが存在する理由です。

また、ますます、これらのアプリケーションはますます多くの「AJAX」スタイルのアーキテクチャを使用しています。つまり、各アプリケーションが行う変更に対応するだけでなく、アプリケーションの動作をリバースエンジニアリングすることに専念しているということです。

最後に、まあ、あなたはそれを間違っています。電子メールは、それ自体が一連のプロトコルです。ほとんどのプロバイダーには、POP3およびIMAPを介して電子メールにアクセスする方法があります。PHPコードをハッキングして、APIのように約束された一連の動作であるPOP/IMAPサーバーと対話することを検討します。また、あるプロバイダー用に記述されたコードが別のプロバイダー用に(微調整を加えて)機能する可能性が高いという利点もあります。

于 2009-04-11T22:48:23.657 に答える
0

メールを取得するためにサポートされている標準的な方法であるポッププロトコルを使用しない理由があると思います。あなたが望むようにそれをすることはサポートされていない何かであり、おそらくプロバイダーの利用規約によってカバーされていないかもしれません。

ただし、キャプチャの解決が邪魔にならない場合は、技術的に可能です。プロバイダーごとに異なるアプリケーションを作成する必要があります。彼らが何かを変更した場合、あなたはあなたのアプリケーションを採用しなければならないでしょう。

curlで機能させるには、すべてのページで提供されるすべてのCookieを収集し、すべてのリクエストでそれらを返すようにしてください。

問題が発生した場合(および開発の場合)、いくつかのツール(Windowsのproxomitronなど)を使用してhttpリクエストと回答を分析し、成功するまでcurlリクエストをブラウザリクエストとまったく同じように見せることができます。結局、ブラウザを介してカールリクエストと人間のリクエストを区別するために彼らができることは何もありません。前に言ったようなキャプチャを除いて。

もう1つは、リクエストの間隔です。頻繁にリクエストしたり、2つのリクエストの間に一時停止がない場合(人間ができない場合)にブロックされる可能性があります。これが疑われる場合は、リクエスト間にランダムに変更された一時停止を挿入してみてください。

開発中にアカウントやIPがブロックされると想像できます。この場合、IPや作業中のアカウントを変更する必要があります。

于 2009-04-11T21:25:46.913 に答える