(PHP 4, PHP 5, PHP 7)
imap_getmailboxes — Leer la lista de buzones, devolviendo información detallada de cada uno
$imap_stream
, string $ref
, string $pattern
)Obtiene información sobre los buzones.
imap_stream
IMAP stream devuelto por imap_open().
ref
ref
normalmente debería ser la especificación del
servidor como está descrita en imap_open()
pattern
Especifica donde en la jerarquía del buzón para empezar a buscar.
Hay dos caracteres especiales que se pueden
pasar como parte del pattern
:
'*' y '%'.
'*' significa devolver todos los buzones. Si se pasa el
pattern
como '*', se obtendrá
una lista de toda la jerarquía del buzón.
'%'
significa devolver sólo el nivel actual.
'%' como el parámetro pattern
devolverá solamente el nivel superior de los
buzones; '~/mail/%' en UW_IMAPD devolverá cada buzón en el directorio ~/mail, pero no en los subdirectorios de ese directorio.
Devuelve un array de objetos que contienen la información de los buzones. Cada
objeto tiene los atributos name
(nombre), especificando
el nombre completo del buzón; delimiter
(delimitador),
que es el delimitador de jerarquía de la parte de la jerarquía en la que está
este buzón, y
attributes
(atributos). Attributes
es una máscara de bits que puede comprobar con:
LATT_NOINFERIORS
- Este buzón contiene, y no puede contener ningún
"hijo" (no hay buzones por debajo de este). Una llamada a
imap_createmailbox() no funcionará con este buzón.
LATT_NOSELECT
- Es solo un contenedor,
no un buzón - no se puede abrir.
LATT_MARKED
- Este buzón está marcado. Esto significa que puede
contener mensajes nuevos desde la última vez que se comprobó. No proporcionado por todos los
servidores IMAP.
LATT_UNMARKED
- Este buzó no está marcado, no contiene nuevos
mensajes. Si se proporciona MARKED
o UNMARKED
,
se puede asumir que el servidor IMAP soporta esta característica para este buzón.
Ejemplo #1 Ejemplo de imap_getmailboxes()
<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die("no se puede conectar: " . imap_last_error());
$lista = imap_getmailboxes($mbox, "{imap.example.org}", "*");
if (is_array($lista)) {
foreach ($lista as $clave => $valor) {
echo "($clave) ";
echo imap_utf7_decode($valor->name) . ",";
echo "'" . $valor->delimiter . "',";
echo $valor->attributes . "<br />\n";
}
} else {
echo "imap_getmailboxes falló: " . imap_last_error() . "\n";
}
imap_close($mbox);
?>