2011-01-05 3 views
0

Kann jemand Curl formatieren, so dass ich auf meine Gmail zugreifen und überprüfen kann, ob es neue Post gibt?cURLing Google Mail-Konto

P.S. Es tut mir leid, ich habe vergessen, eine große Sache zu erwähnen - ich benutze PHP, nicht Konsole! Leider :(

Antwort

3

Von here:

curl -u username --silent "https://mail.google.com/mail/feed/atom" | perl -ne 'print "\t" if /<name>/; print "$2\n" if /<(title|name)>(.*)<\/\1>/;' 

versuchte es einfach aus und es funktionierte für mich cURL genial

Update:.. Diese Gmail's atom feed for unread messages verwendet, die verwendet ssl/https und http-Authentifizierung. also kein OAuth notwendig

+0

Guter Punkt, und ich stimme zu, das ist eine gute Lösung. Ich musste feststellen, dass ich -k ausführen musste, um die CERT-Verifizierung zu deaktivieren. Ich stehe korrigiert. – kvista

+0

können Sie das Thema damit bekommen? nicht nur der Titel der ungelesenen E-Mail? – shreddish

0

Ich nehme meine vorherige Antwort zurück, der eine Liner oben funktioniert, obwohl Sie möglicherweise -k angeben müssen, um die Zertifikatsprüfung zu deaktivieren.

2

Sie können Ihre gmail RSS-Feed/xml mit dieser Funktion

function check_email($username, $password) 
{ 
    //url to connect to 
    $url = "https://mail.google.com/mail/feed/atom"; 
    // sendRequest 
    $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); 

    //returning retrieved feed 
    return $curlData; 
} 

Dann rollen Sie Ihre Daten entweder durch Extrahieren von Werten aus dem xml zurückkehren können ..

$em = "[email protected]"; 
$pw = "yourpassword"; 
$feed = check_email($em, $pw); 
    $x = new SimpleXmlElement($feed); 
    echo "<ul>"; 
     foreach($x->entry as $msg){ 
      $href = $msg->link->attributes()->href; 
      $qmark = strpos($href,"?")+1; 
      $qstring = substr($href,$qmark); 

      echo "<li><a href=\"step2.php?".$qstring."\">".$msg->title."</a><br />".$msg->summary."</li>"; 
     } 
    echo "</ul>"; 

Oder nur durch den Feed sehen , je nachdem, was Sie damit machen wollen.

$em = "[email protected]"; 
$pw = "yourpassword"; 
$feed = check_email($em, $pw); 
echo $feed;