imap_getmailboxes

メールボックスのリストを読み込み、各ボックスに関する詳細な情報を返す

説明

arrayfalse imap_getmailboxes(IMAP\Connection $imap, string $reference, string $pattern)

メールボックスの情報を取得します。

パラメータ

imap

IMAP\Connection クラスのインスタンス。

reference

通常、referenceimap_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 - このメールボックスは選択可能な子を持ちません。

この関数は、失敗した時に false を返します。

変更履歴

バージョン 説明
8.1.0 引数 imap は、IMAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な 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);
?>

参考

  • imap_getsubscribed