2016-07-01 10 views
0

Ich gmail Zugriff auf Google Mail mit PHP, um Aktionen auf E-Mail zu machen. Ich lege diese Mails mit gmail direkt in einen Ordner. hier ist also mein Code, um es zu bekommen:Zugriff auf eine E-Mail mit Google Mail mit PHP und Ändern des Ordners

$hostname = '{imap.gmail.com:993/ssl}test'; 
$username = '[email protected]'; 
$password = 'mypassword'; 

/* try to connect */ 
$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' . imap_last_error()); 

/* grab emails */ 
$emails = imap_search($inbox,'ALL'); 
//$emails = imap_search($inbox,'RECENT'); 
print_r($emails); 

/* if emails are returned, cycle through each... */ 
if($emails) { 

    /* begin output var */ 
    $output = ''; 

    /* put the newest emails on top */ 
    rsort($emails); 

    $emailCount = 1; 
    foreach($emails as $email_number) { 

    //echo 'email n∞' . $emailCount; 
    /* get information specific to this email */ 
    $overview = imap_fetch_overview($inbox,$email_number,0); 
    $message = imap_fetchbody($inbox,$email_number,2); 
    $structure = imap_fetchstructure($inbox,$email_number); 
     if (!$overview[0]->seen) { 
      print_r($overview); 
      $emailCount++; 
     } 
    } 
// echo $output; 
} 
/* close the connection */ 
imap_close($inbox); 

Nein Ich mag würde diese Mail in einen anderen Ordner verschieben, für exemple test2 hier ist, was ich tue:

imap_mail_move($inbox, $email_number, 'test2') or die('Error'); 

aber ich einen Fehler: Hinweis: Unbekannt: [TryCreate] Kein Ordner test2 (Failure) [gedrosselt] (ERRFLG = 2) in Unknown on line 0

ich diese andere Art von Lösung versucht: Mit einem Unterordner von Test genannt test3

imap_mail_move($inbox, $email_number, 'test3') or die('Error'); 

gleicher Fehler. auch versucht:

imap_mail_move($inbox, $email_number, '[Gmail]/test3') or die('Error'); 

gleiche Fehler :-(

Wenn jemand eine Lösung hat, die cool sein würde

Danke,

Alex

+0

Haben Sie PHP seit Jahren nicht benutzt, aber haben Sie versucht, eine Liste der verfügbaren Ordner auszudrucken? getmailboxes etwas ähnliches – Memme

+0

Gute Idee, und ich entdecke diese Funktion. Es gibt mir zurück {imap.gmail.com:993/ssl}test2 aber selbst wenn ich das versuche, habe ich den gleichen Fehler :-( –

+0

Probiere {imap.gmail.com:993/imap/ssl} als Hostname und gehe dann zu 'test2' (Ordner muss existieren, denke ich) – Memme

Antwort

0

So nach mehreren Versuchen hier! ist das, was ich gefunden habe, das funktioniert:

imap_mail_move($inbox, $email_number, 'INBOX') or die('Error'); 
imap_mail_move($inbox, $email_number, 'test2') or die('Error'); 

Aber das heißt, in den Posteingang und dann in den zweiten Ordner zu verschieben. Problem: Die Nachricht befindet sich immer noch im Posteingang.

Immer noch auf der Suche nach einer anderen Lösung.