通过cURL获取Gmail邮件(PHP)

时间:2012-12-06 05:47:49

标签: php curl gmail imap inbox

我一整天都在寻找答案。有关登录Gmail并显示收件箱和获取联系人等的大量信息,但我无法弄清楚如何将电子邮件本身变成变量,所以我可以用PHP做些什么。

这就是我所拥有的:

function inbox($username, $password){ 
    $url = "https://mail.google.com/mail/feed/atom"; 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($curl, CURLOPT_ENCODING, "");
    $curlData = curl_exec($curl);
    curl_close($curl);
    return $curlData;
}
//calling the function
$em = "email@gmail.com";
$pw = "pass";
$feed = inbox($em, $pw);
    $x = new SimpleXmlElement($feed);
    echo "<ul>";
        foreach($x->entry as $msg){
            //extracting the link to the message from xml
            $href = $msg->link->attributes()->href;
            //create a link to the message and display title, summary    
            echo "<li><a href=\"".$href."\">".$msg->title."</a><br />".$msg->summary."</li>";
        }
    echo "</ul>";

现在,当我点击我刚刚创建的链接时,只需在gmail中打开该消息。我想在字符串/变量中访问消息的html。我尝试过各种各样的事情。我已经尝试将消息链接转发到另一个页面以打开curl但是没有向我显示消息谷歌发送一些带有另一个链接的消息。如果在浏览器中再次单击该链接,则在gmail中打开,但如果我尝试第三次卷曲到此链接,则会显示一个空白页面。

我希望这是有道理的。重点是,我的工作服务器没有启用imap / pop,而cURL是我知道的最后一个可以实现此目的的。非常感谢任何想法。

1 个答案:

答案 0 :(得分:1)

我最终远程使用了imap,然后将其恢复到有问题的服务器。我已经确定gmail不允许通过cURL发送消息,这是google之类的东西之一,比如他们不允许使用框架等等。

相关问题