/**
* Returns the number of unseen messages in this folder.
+ * obsoleted by sqimap_status_messages !
*/
function sqimap_unseen_messages ($imap_stream, $mailbox) {
- $read_ary = sqimap_run_command ($imap_stream, 'STATUS ' . sqimap_encode_mailbox_name($mailbox) . ' (UNSEEN)', false, $result, $message);
- $i = 0;
- $regs = array(false, false);
- while (isset($read_ary[$i])) {
- if (ereg("UNSEEN ([0-9]+)", $read_ary[$i], $regs)) {
- break;
- }
- $i++;
- }
- return $regs[1];
+ $aStatus = sqimap_status_messages($imap_stream,$mailbox,array('UNSEEN'));
+ return $aStatus['UNSEEN'];
}
/**
- * Returns the number of total/unseen/recent messages in this folder
+ * Returns the status items of a mailbox.
+ * Default it returns MESSAGES,UNSEEN and RECENT
+ * Supported status items are MESSAGES, UNSEEN, RECENT, UIDNEXT and UIDVALIDITY
*/
-function sqimap_status_messages ($imap_stream, $mailbox) {
- $read_ary = sqimap_run_command ($imap_stream, 'STATUS ' . sqimap_encode_mailbox_name($mailbox) . ' (MESSAGES UNSEEN RECENT)', false, $result, $message);
+function sqimap_status_messages ($imap_stream, $mailbox,
+ $aStatusItems = array('MESSAGES','UNSEEN','RECENT')) {
+
+ $aStatusItems = implode(' ',$aStutusItems);
+ $read_ary = sqimap_run_command ($imap_stream, 'STATUS ' . sqimap_encode_mailbox_name($mailbox) .
+ " ($aStatusItems)", false, $result, $message);
$i = 0;
- $messages = $unseen = $recent = false;
+ $messages = $unseen = $recent = $uidnext = $uidvalidity = false;
$regs = array(false,false);
while (isset($read_ary[$i])) {
if (preg_match('/UNSEEN\s+([0-9]+)/i', $read_ary[$i], $regs)) {
if (preg_match('/RECENT\s+([0-9]+)/i', $read_ary[$i], $regs)) {
$recent = $regs[1];
}
+ if (preg_match('/UIDNEXT\s+([0-9]+)/i', $read_ary[$i], $regs)) {
+ $uidnext = $regs[1];
+ }
+ if (preg_match('/UIDVALIDITY\s+([0-9]+)/i', $read_ary[$i], $regs)) {
+ $uidvalidity = $regs[1];
+ }
$i++;
}
- return array('MESSAGES' => $messages, 'UNSEEN'=>$unseen, 'RECENT' => $recent);
+ return array('MESSAGES' => $messages,
+ 'UNSEEN'=>$unseen,
+ 'RECENT' => $recent,
+ 'UIDNEXT' => $uidnext,
+ 'UIDVALIDITY' => $uidvalidity);
}