2017-05-18 2 views
0

Ich habe versucht, eine Datei aus der INBOX zu verschieben, nachdem ich es verarbeitet habe, aber es scheint, dass alle PHP-Methoden für imap_mail_copy und imap_mail_move nicht für mich feuern. Warum imap_delete funktioniert und die anderen nicht, ist mir ein Rätsel.Verschieben einer E-Mail mit IMAP in PHP

Dies ist, was ich versucht habe:

<? 
$imap = imap_open("{mail.myserver.com:995/pop3/ssl/novalidate-cert}", "[email protected]", "password"); 

if($imap) { 
$num = imap_num_msg($imap); 

if($num >0) { 


//imap_copy($imap, $num, "INBOX.Drafts"); --> illegal function 

//imap_mail_copy($imap, $num, "INBOX.Drafts"); --> throws "Copy not valid for POP3 (errflg=2)" error 
//imap_mail_copy($imap, $num, "INBOX/Drafts"); --> throws "Copy not valid for POP3 (errflg=2)" error 
//imap_mail_copy($imap, $num, "Drafts"); --> throws "Copy not valid for POP3 (errflg=2)" error 


//imap_mail_move($imap, $num, "INBOX.Drafts"); --> throws "Copy not valid for POP3 (errflg=2)" error 
//imap_mail_move($imap, $num, "INBOX/Drafts"); --> throws "Copy not valid for POP3 (errflg=2)" error 
//imap_mail_move($imap, $num, "Drafts"); --> throws "Copy not valid for POP3 (errflg=2)" error 

//imap_delete($imap, $num); --> this works, but I lose the email, which I dont want 

imap_expunge($imap); 

} 
imap_close($imap); 
} 
?> 

Ich habe mich gefragt, da ‚imap_delete‘ funktioniert, vielleicht gibt es eine andere PHP-Funktion, die die E-Mail in einem anderen Ordner verschieben oder kopieren kann.

+0

Ich denke: _ "Kopieren ist nicht gültig für POP3" _ sagt alles . Wenn Sie Dinge einfach verschieben und auf dem Server behalten möchten, verbinden Sie stattdessen mit IMAP. –

+0

Beachten Sie auch, dass 'imap_num_msg()' nicht auf diese Weise funktioniert – MestreLion

Antwort

0

Die Lösung hat mit der Server-Syntax zu tun, nicht der PHP-Code:

$host="{myserver.com:143/notls}"; 
$user="[email protected]"; 
$pass="password"; 

$imap=imap_open($host, $user, $pass); 

Das mit der Horde Webmail funktioniert

1

Sie verwenden IMAP-Befehle an einem POP3-Anschluss. POP3 erlaubt nur das Holen und Löschen (Siehe RFC 1939).

Verwenden Sie eine echte IMAP-Verbindung, und dann imap_mail_move wird funktionieren.