Получение сообщений Gmail через cURL с использованием PHP

Существует множество информации о входе в 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 protected]";
$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 сообщения в строке/переменной. Я пробовал все виды вещей. Я попытался перенаправить ссылку на сообщение на другую страницу, чтобы открыть ее в завитке, но вместо того, чтобы показывать мне сообщение, Google отправляет некоторый html с еще одной ссылкой на сообщение. Если щелкнуть ссылку в браузере, она снова откроется в gmail, но если я попытаюсь перейти по этой ссылке в третий раз, она покажет мне пустую страницу.

Дело в том, что на моем рабочем сервере не включен imap/pop, и cURL — последнее, что я знаю о том, что может это сделать.


person I wrestled a bear once.    schedule 06.12.2012    source источник


Ответы (1)


В итоге я использовал imap удаленно, а затем перенаправил его обратно на рассматриваемый сервер. Я определил, что Gmail не позволяет отправлять сообщения через cURL, это одна из тех вещей Google, где они не разрешают фреймы и т. д.

person I wrestled a bear once.    schedule 07.12.2012