imap_getmailboxes
(PHP 4, PHP 5, PHP 7)
imap_getmailboxes — メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す
説明
imap_getmailboxes
( resource $imap_stream
, string $ref
, string $pattern
) : array
メールボックスの情報を取得します。
パラメータ
imap_stream
imap_open() が返す IMAP ストリーム。
ref
通常、
ref
は imap_open() で述べられているサーバー定義です。警告
信頼できないデータをこのパラメータに渡すのであれば、 imap.enable_insecure_rsh を無効にしておかなければ危険です。
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 サーバーがこのメールボックスに対してマーク機能を提供しているとみなせます。LATT_REFERRAL
- このコンテナはリモートメールボックスと関連を持ちます。LATT_HASCHILDREN
- このメールボックスは選択可能な子を持ちます。LATT_HASNOCHILDREN
- このメールボックスは選択可能な子を持ちません。
例
例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);?>