我正在使用 php imap 函数来解析来自网络邮件的消息。我可以一条一条地获取消息并将它们保存在数据库中。保存后,我想删除收件箱消息。 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);
?>
关于php - imap_delete 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3641005/