首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >imap_delete和imap_expunge不会永久删除?

imap_delete和imap_expunge不会永久删除?
EN

Stack Overflow用户
提问于 2013-09-06 11:08:28
回答 1查看 3.5K关注 0票数 1

我目前正在测试一个脚本,该脚本将通过一个电子邮件帐户,删除每页加载20封最古老的电子邮件。(数字只是为了测试目的)。我注意到我正在做的事情有几个问题:

它似乎有时会忽略电子邮件。例如。我有12封可以被删除的电子邮件。但是它只删除了6,当我再次运行脚本时,它删除了3,然后下降到2,最后我不得不再次刷新以删除最后一个。有人知道为什么会这样吗?当极限是20,所以无论如何都要循环20次。

2-主要问题是,虽然它从收件箱中移除。当我去所有邮件的时候。所有的电子邮件都还在里面。

代码如下所示,以防任何人发现我为什么会遇到这些困难。(虽然删除了imap_open调用。

代码语言:javascript
复制
$numMessages = imap_num_msg($imap);
//for ($i = $numMessages; $i > ($numMessages - 20); $i--) {
for($i=1; $i<=20; $i++)
{
    $header = imap_header($imap, $i);

    $fromInfo = $header->from[0];
    $replyInfo = $header->reply_to[0];

    $details = array(
        "fromAddr" => (isset($fromInfo->mailbox) && isset($fromInfo->host))
            ? $fromInfo->mailbox . "@" . $fromInfo->host : "",
        "fromName" => (isset($fromInfo->personal))
            ? $fromInfo->personal : "",
        "replyAddr" => (isset($replyInfo->mailbox) && isset($replyInfo->host))
            ? $replyInfo->mailbox . "@" . $replyInfo->host : "",
        "replyName" => (isset($replyTo->personal))
            ? $replyto->personal : "",
        "subject" => (isset($header->subject))
            ? $header->subject : "",
        "udate" => (isset($header->udate))
            ? $header->udate : ""
    );

    $uid = imap_uid($imap, $i);

    echo "<ul>";
    echo "<li><strong>From:</strong>" . $details["fromName"];
    echo " " . $details["fromAddr"] . "</li>";
    echo "<li><strong>Subject:</strong> " . $details["subject"] . "</li>";
    echo '<li><a href="mail.php?folder=' . $folder . '&uid=' . $uid . '&func=read">Read</a>';
    echo " | ";
    echo '<a href="mail.php?folder=' . $folder . '&uid=' . $uid . '&func=delete">Delete</a>';
    echo " | ";
    echo date("F j, Y, g:i a",$details['udate']) . '</li>';
    echo "</ul>";

    imap_delete($imap, $uid, FT_UID);
}
imap_expunge($imap);
imap_close($imap);
?>

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-06 13:47:18

因为Google邮件可以放在多个“文件夹”(标签)中,所以imap_delete只是删除了相应的标签。

首先,你必须把邮件移到垃圾文件夹。从那里你可以imap_delete他们。

来源:删除IMAP消息

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18656363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档