2017-05-18 28 views
0

我已经尝试了很多方法来处理它之后让文件移出INBOX,但似乎所有用于imap_mail_copy和imap_mail_move的PHP方法都不会为我解雇。为什么imap_delete的作品和其他人不是我的谜。在PHP中使用imap移动一个电子邮件

这是我曾尝试:

<? 
$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); 
} 
?> 

我很纳闷,因为“imap_delete”的作品,也许是可以移动或电子邮件中复制到另一个文件夹一些其他的PHP函数。

+0

我想:_“复制不适用于POP3” _说,这一切。如果您只想移动并保存在服务器上,请使用IMAP进行连接。 –

+0

另请注意,'imap_num_msg()'不会*以这种方式工作 – MestreLion

回答

0

该解决方案具有与服务器的语法做,而不是PHP代码:

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

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

这工作与部落的webmail

1

您在POP3端口上使用IMAP命令。 POP3只允许提取和删除(请参阅RFC 1939)。

使用一个真正的IMAP连接,然后imap_mail_move将工作。