imap_getmailboxes
(PHP 4, PHP 5)
imap_getmailboxes — メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す
説明
$imap_stream
, string $ref
, string $pattern
)メールボックスの情報を取得します。
パラメータ
-
imap_stream -
imap_open() が返す IMAP ストリーム。
-
ref -
通常、
refは imap_open() で述べられているサーバー定義です。 -
pattern -
検索を開始するメールボックスの階層を指定します。
patternの中で使用できる特別な文字として '*' および '%' があります。 '*' は、すべてのメールボックスを意味します。patternに '*' を指定すると、 メールボックス階層全体のリストが得られます。 '%' は現在のレベルのみを意味します。 '%' をpatternに指定すると、 トップレベルのメールボックスのみを返します。UW_IMAPD の場合、 '~/mail/%' は ~/mail ディレクトリ内のすべてのメールボックスを返しますが、 そのディレクトリのサブフォルダにあるメールボックスは返しません。
返り値
メールボックス情報を有するオブジェクトの配列を返します。各オブジェクトには、
メールボックスの完全な名前である name、
このメールボックスの階層の区切りを示す属性 delimiter、
そして attributes が存在します。
attributes はビットマスクであり、
次のものについて調べることができます。
-
LATT_NOINFERIORS- このメールボックスには 「子供」がいるかいないかはわかりません(このボックスの中にメールボックスはありません)。 このメールボックスに対して imap_createmailbox() をコールしても動作しません。 -
LATT_NOSELECT- 単なるコンテナであり、 メールボックスではありません - これをオープンすることはできません。 -
LATT_MARKED- このメールボックスにはマークがつけられています。 これは、最後に確認したとき以降に新たなメッセージが到着しているかもしれないということを意味します。 すべての IMAP サーバーがこの機能を提供しているとは限りません。 -
LATT_UNMARKED- このメールボックスにはマークがつけられておらず、 新たなメッセージを含んでいません。MARKEDあるいはUNMARKEDが提供されている場合は、 その IMAP サーバーがこのメールボックスに対してマーク機能を提供しているとみなせます。
例
例1 imap_getmailboxes() の例
<?php
$mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
or die("接続できません: " . imap_last_error());
$list = imap_getmailboxes($mbox, "{imap.example.org}", "*");
if (is_array($list)) {
foreach ($list as $key => $val) {
echo "($key) ";
echo imap_utf7_decode($val->name) . ",";
echo "'" . $val->delimiter . "',";
echo $val->attributes . "<br />\n";
}
} else {
echo "imap_getmailboxes failed: " . imap_last_error() . "\n";
}
imap_close($mbox);
?>