Я хочу получить содержимое некоторых писем в моей учетной записи gmail. Я хотел бы использовать расширение PHP cURL для этого. Вначале я сделал следующие шаги:
Следующий код не работает:
$login_url = 'https://www.google.com/accounts/ServiceLoginAuth'; $gmail_url = 'https://mail.google.com/'; $cookie_file = dirname(__FILE__) . '/cookie.txt'; $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_HEADER, false); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt($ch, CURLOPT_URL, $login_url); $output = curl_exec($ch); echo $output; curl_setopt($ch, CURLOPT_URL, $gmail_url); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); $output = curl_exec($ch); echo $output; curl_close($ch);
Ваш подход неправильный. Вы не можете получить содержимое https://www.google.com/accounts/ServiceLoginAuth и вывести его, ожидайте, что пользователь заполнит данные и нажмите логин. Поскольку форма определяется как
<form action="https://www.google.com/accounts/ServiceLoginAuth" method="post">
данные для входа будут отправлены браузером на эту страницу, и ваш скрипт никогда не получит куки. Вам необходимо отправить сообщение на https://www.google.com/accounts/ServiceLoginAuth уже с именем пользователя и паролем . Только тогда завиток получит ответ с помощью файлов cookie.
Тем не менее, я предлагаю вам очистить все это, включить IMAP в GMail и использовать это для доступа к своим электронным письмам.