在PHP中使用imap移动电子邮件

时间:2017-05-18 06:44:37

标签: php imap

我已经尝试了很多方法来处理文件后移出INBOX,但似乎imap_mail_copy和imap_mail_move的所有PHP方法都没有为我开火。为什么imap_delete有效,而其他对我来说不是一个谜。

这就是我的尝试:

<?
$imap = imap_open("{mail.myserver.com:995/pop3/ssl/novalidate-cert}", "sample@myserver.com", "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函数可以将电子邮件移动或复制到另一个文件夹。

2 个答案:

答案 0 :(得分:1)

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

使用真实的IMAP连接,然后imap_mail_move将起作用。

答案 1 :(得分:0)

解决方案与服务器语法有关,而不是PHP代码:

$host="{myserver.com:143/notls}";
$user="sample@myserver.com";
$pass="password";

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

这适用于部落网络邮件