Какие проблемы связаны с получением электронной почты с помощью CURL? - PullRequest
0 голосов
/ 12 апреля 2009

Новая функция, которую я хочу добавить в нашу локальную сеть, - это возможность получать электронную почту из бесплатных почтовых сервисов, таких как Gmail, Yahoo и Hotmail, используя PHP. Есть услуги, за которые мы можем заплатить, но я бы лучше взломал их сам!

Я считаю, что у Google есть только API, а у остальных нет. Какие проблемы связаны с тем, что я просто получаю почту, используя CURL?

Я даже реализовал часть GMail, используя CURL и PHP.

Ответы [ 3 ]

2 голосов
/ 12 апреля 2009

Это почти наверняка нарушает их условия предоставления услуг для скрининга их сайтов с этой целью. Если они изменят дизайн вашего сайта, сценарии, которые вы используете для анализа содержимого электронной почты и т. Д., Вероятно, также будут катастрофически повреждены.

Yahoo, Gmail и Hotmail поддерживают POP3 , стандартный протокол для получения электронной почты. Почему бы не использовать это вместо этого?

1 голос
/ 12 апреля 2009

Когда кто-то дает вам API, они обещают вам, что «если вы запустите код X, произойдет Y. Когда вы просматриваете скрининг, у поставщика нет такого обещания, и у многих поставщиков есть пункты в их условиях обслуживания». это явно запрещает очистку экрана. С технической точки зрения это означает, что их страница / приложение может претерпеть изменения, которые могут нарушить очистку экрана, случайное или умышленное провайдер провайдером. Именно поэтому CAPTCHA существует.

Кроме того, все чаще в этих приложениях используется все больше архитектур в стиле «AJAX», что означает, что вы берете на себя обязательство обратить внимание на то, как работает их приложение, а также не отставать от изменений, вносимых каждым приложением.

Наконец-то, вы делаете это неправильно. Электронная почта - это набор протоколов сам по себе. У большинства провайдеров есть способ доступа к электронной почте через POP3 и IMAP. Я хотел бы изучить взлом PHP-кода для взаимодействия с серверами POP / IMAP, которые, как и API, представляют собой обещанный набор вариантов поведения. У вас также есть преимущество в том, что код, написанный для одного провайдера, вероятно, будет работать (с небольшими изменениями) для другого.

0 голосов
/ 12 апреля 2009

Я полагаю, у вас есть причина не использовать протокол pop, который является стандартным поддерживаемым способом получения электронной почты. Делать это так, как вы хотите, - это то, что не поддерживается и, возможно, также не подпадает под условия использования провайдеров.

Но если на вашем пути не появится решение проблемы с капчей, это технически возможно. Вам нужно будет написать отдельное приложение для каждого провайдера. В случае, если они что-то изменят, вам придется принять ваше заявление.

Чтобы он работал с curl, обязательно соберите все файлы cookie, которые они вам дают, на всех страницах и возвращайте их при каждом запросе.

В случае каких-либо проблем (а также для разработки) вы можете анализировать http-запросы и ответы с помощью какого-либо инструмента (например, proxomitron в Windows) и делать запросы curl все более и более похожими на запросы браузера, пока вы не добьетесь успеха. В конце концов, они ничего не могут сделать, чтобы отличить ваши запросы curl от запросов человека через браузер. За исключением капчи, как я уже говорил.

Другая вещь - это интервалы между вашими запросами, которые вы можете заблокировать за частые запросы или когда между двумя запросами нет паузы (чего не может сделать человек). Попробуйте вставить случайно измененные паузы между запросами, если вы подозреваете это.

Я могу представить, что они блокируют ваши учетные записи или IP-адреса во время разработки, в этом случае необходимо изменить IP-адрес и / или учетную запись, с которой вы работаете.

...