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

Moving an email with imap in PHP

我尝试了很多方法让文件在处理后从收件箱中移出,但似乎 imap_mail_copy 和 [=20= 的所有 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 功能可以将电子邮件移动或复制到另一个文件夹。

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

使用真正的 IMAP 连接,然后 imap_mail_move 就可以了。

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

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

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

这适用于部落网络邮件