I had issues with imap_status not working correctly, while other imap functions seemed okay. I always got the ['flags']=0 response. No notes here and Google searching suggests it doesn't working properly with Exchange, so I wrote a little workaround, to at least get some information.
<?php
function my_imap_status($stream, $mailbox='', $info=SA_ALL)
{
// get current mailbox name (and info)
$curr_obj=imap_check($stream);
if(!$curr_obj) return false;
// if request if for current mailbox then just return it
if( (empty($mailbox)) || ($mailbox==$curr_obj->Mailbox) ) return $curr_obj;
// get current mailbox
$current_mailbox=$curr_obj->Mailbox;
//switch to new mailbox
if(!imap_reopen($stream, $mailbox)) return false;
// get info
$obj=imap_check($stream);
// switch back to original mailbox
imap_reopen($stream, $current_mailbox);
//return info
return $obj;
}
?>imap_status
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
imap_status
Референца за `function.imap-status.php` со подобрена типографија и навигација.
imap_status
(PHP 4, PHP 5, PHP 7, PHP 8)
imap_status — Returns status information on a mailbox
= NULL
Враќа информации за статусот на поштенското сандаче mailbox.
Параметри
-
imap Еден IMAP\Connection instance.
mailbox-
Креира нов сандаче специфициран од imap_open() за повеќе информации
Ги ескејпува специјалните знаци во стринг за употреба во SQL изјаваПроследувањето на недоверливи податоци на овој параметар е insecure, освен ако imap.enable_insecure_rsh е оневозможено.
flags-
Добива информации за статусот на даденото
-
SA_MESSAGESВалидни знамиња се: $status->messages - поставување -
SA_RECENTВалидни знамиња се: $status->recent до бројот на пораки во поштенското сандаче -
SA_UNSEENВалидни знамиња се: $status->unseen до бројот на неодамнешни пораки во поштенското сандаче -
SA_UIDNEXTВалидни знамиња се: $status->uidnext до бројот на невидени (нови) пораки во поштенското сандаче -
SA_UIDVALIDITYВалидни знамиња се: $status->uidvalidity до следниот uid што треба да се користи во поштенското сандаче -
SA_ALLдо константа што се менува кога uid-овите за поштенското сандаче можеби повеќе не се валидни
-
Вратени вредности
- поставување на сите од горенаведените false оваа функција враќа објект што содржи информации за статусот, или messages,
recent, unseen,
uidnextПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во uidvalidity.
flags при неуспех. Објектот ги има следните својства:
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.1.0 |
На imap параметарот очекува IMAP\Connection
инстанца сега; претходно, валидна imap resource се очекуваше.
|
Примери
Пример #1 imap_status() example
<?php
$mbox = imap_open("{imap.example.com}", "username", "password", OP_HALFOPEN)
or die("can't connect: " . imap_last_error());
$status = imap_status($mbox, "{imap.example.org}INBOX", SA_ALL);
if ($status) {
echo "Messages: " . $status->messages . "<br />\n";
echo "Recent: " . $status->recent . "<br />\n";
echo "Unseen: " . $status->unseen . "<br />\n";
echo "UIDnext: " . $status->uidnext . "<br />\n";
echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";
} else {
echo "imap_status failed: " . imap_last_error() . "\n";
}
imap_close($mbox);
?>