Php imap_删除不工作

Php imap_删除不工作,php,imap,pop3,Php,Imap,Pop3,我正在使用PHPIMAP函数解析来自webmail的消息。我可以一个接一个地获取消息并将它们保存在数据库中。保存后,我想删除收件箱邮件。imap_delete函数在此不起作用。我的代码是这样的: $connection = pop3_login($host,$port,$user,$pass,$folder="INBOX",$ssl=false);//connect $stat = pop3_list($connection);//list messages foreach($stat as

我正在使用PHPIMAP函数解析来自webmail的消息。我可以一个接一个地获取消息并将它们保存在数据库中。保存后,我想删除收件箱邮件。imap_delete函数在此不起作用。我的代码是这样的:

$connection = pop3_login($host,$port,$user,$pass,$folder="INBOX",$ssl=false);//connect
$stat = pop3_list($connection);//list messages

foreach($stat as $line) {
  //save in db codes...
  imap_delete($connection, $line['msgno']);//flag as delete
}

imap_close($connection, CL_EXPUNGE);
我还测试了-
imap_-expunge($connection)

但它不起作用。这些消息不会被删除。请帮帮我…

您正在混合POP和IMAP。

那是行不通的。您需要打开与IMAP的连接。请参见此示例:

<?php

$mbox = imap_open("{imap.example.org}INBOX", "username", "password")
    or die("Can't connect: " . imap_last_error());

$check = imap_mailboxmsginfo($mbox);
echo "Messages before delete: " . $check->Nmsgs . "<br />\n";

imap_delete($mbox, 1);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after  delete: " . $check->Nmsgs . "<br />\n";

imap_expunge($mbox);

$check = imap_mailboxmsginfo($mbox);
echo "Messages after expunge: " . $check->Nmsgs . "<br />\n";

imap_close($mbox);
?>

实际上函数名类似于pop3。但它们执行imap功能。像-

function pop3_login($host,$port,$user,$pass,$folder="INBOX",$ssl=false)
{
    $ssl=($ssl==false)?"/novalidate-cert":"";
    return (imap_open("{"."$host:$port/pop3$ssl"."}$folder",$user,$pass));
}
function pop3_list($connection,$message="")
{
    if ($message)
    {
        $range=$message;
    } else {
        $MC = imap_check($connection);
        $range = "1:".$MC->Nmsgs;
    }
    $response = imap_fetch_overview($connection,$range);
    foreach ($response as $msg) $result[$msg->msgno]=(array)$msg;
        return $result;
} 

请注意,shamittomar在删除后使用了imap_expunge。在IMAP中,首先标记要删除的消息,标记完成后,执行一个expunge调用以最终删除标记的消息。实际上,函数名类似于pop3。但它们执行imap功能。@Emrul,您试过这段代码吗?否则请将整个源代码粘贴到您的问题中。