From:             [EMAIL PROTECTED]
Operating system: Redhat 7.0, Linux 2.2.16-22
PHP version:      4.0.5
PHP Bug Type:     IMAP related
Bug description:  Inconsistent behavior between imap_getmailboxes and 


According to the PHP4 documentation,  the functions imap_getsubscribed and 
imap_getmailboxes are supposedly identical except imap_getsubscribed returns just the 
subscribed mailboxes and imap_getmailboxes returns all mailboxes.

This seems to be true everywhere except the for the attributes bitmask.

Running the following program on one of my imap mailboxes returns the following output.

$mbox = imap_open ("{localhost:143}", "username", "password"

echo "<p><h1>Mailboxes</h1>\n";
$folders = imap_getmailboxes ($mbox, "{localhost:143}", "*");

if ($folders == false) {
    echo "Call failed<br>\n";
} else {
    while (list ($key, $val) = each ($folders)) {
    print "($key) ";
    print imap_utf7_decode($val->name).",";
    print "'".$val->delimiter."',";
    print $val->attributes."<br>\n";

(0) {localhost:143}Sent Items,'/',1
(1) {localhost:143}Drafts,'/',1
(2) {localhost:143}PHP,'/',2
(3) {localhost:143}PHP/Inbox,'/',1
(4) {localhost:143}PHP/Saved,'/',1
(5  {localhost:143}Sendmail,'/',2
(6) {localhost:143}Sendmail/Inbox,'/',1
(7) {localhost:143}Sendmail/Saved,'/',1
(8)  localhost:143}INBOX,'',1

The attributes for printed out are correct.  ( However I am 100% clear on  what the 
attributes LATT_MARKED and LATT_UNMARKED mean. )

After replacing the following line from the program above:
$folders = imap_getmailboxes $mbox, "{localhost:143}", "*");

With this one:
$folders=imap_getsubscribed ($mbox, "{localhost:143}", "*");

I now get the following output...

(0) {localhost:143}Sent Items,'/',0
(1) {localhost:143}Drafts,'/',0
(3) {localhost:143}Sendmail,'/',0
(4) {localhost:143}Sendmail/Inbox,'/',0
(5) {localhost:143}Sendmail/Saved,'/',0
(6) {localhost:143}PHP,'/',0
(7) {localhost:143}PHP/Inbox,'/',0
(8) {localhost:143}PHP/Saved,'/',0
(9) {localhost:143}INBOX,'',1

As you can see, I have lost the attribute information for each mailbox when using 
imap_getsubscribed.  Particuarly I have lost the LATT_SUBSCRIBED, and LATT_NOSELECT 

According the documentation, I assumed the behavior of these two functions should be 

Excerpt of documentation from imap_getmailboxes().

Returns an array of objects containing mailbox information. Each object has the 
attributes name, specifying the full name of the mailbox; delimiter, which is the 
hierarchy delimiter for the part of the hierarchy this mailbox is in; and attributes. 
Attributes is a bitmask that can be tested against: 

LATT_NOINFERIORS - This mailbox has no "children" (there are no mailboxes below this 

LATT_NOSELECT - This is only a container, not a mailbox - you cannot open it. 

LATT_MARKED - This mailbox is marked. Only used by UW-IMAPD. 

LATT_UNMARKED - This mailbox is not marked. Only used by UW-IMAPD. 


I am running a Redhat 7.0 system with apache 1.3.20, with
mod_ssl-2.8.4-1.3.20, mysql-max-3.23.38, php-4.0.5 

Is this a bug or am I doing something wrong???

Ed Brady

Edit Bug report at:

PHP Development Mailing List <>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to