imap_delete не работает - PullRequest
       6

imap_delete не работает

6 голосов
/ 04 сентября 2010

Я использую функции 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);
Но он не работает.Сообщения не удаляются.Пожалуйста, помогите мне ...

Ответы [ 2 ]

9 голосов
/ 04 сентября 2010

Вы смешиваете 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);
?>
0 голосов
/ 04 сентября 2010

На самом деле имена функций похожи на 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;
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...