我想在我的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);
答案 0 :(得分:4)
你的做法是错误的。您无法检索https://www.google.com/accounts/ServiceLoginAuth的内容并将其输出,希望用户填写详细信息并按登录。由于表单定义为
<form action="https://www.google.com/accounts/ServiceLoginAuth" method="post">
浏览器会将登录详细信息提交到该页面,您的脚本永远不会获取cookie。您需要使用用户名和密码向https://www.google.com/accounts/ServiceLoginAuth 提交帖子请求。只有这样,curl才会收到cookie的回复。
那就是说,我建议你抓住这一切,在GMail中启用IMAP并使用它来访问你的电子邮件。