新しいメールボックスを作る

# imap_createmailbox

(PHP 4, PHP 5, PHP 7, PHP 8)

imap_createmailbox — 新しいメールボックスを作る

### 説明

function imap_createmailbox(IMAP\Connection `$imap`, string `$mailbox`): bool

imap_createmailbox() は `mailbox` で指定された新しいメールボックスを作成します。

### パラメータ

`imap`
  IMAP\Connection クラスのインスタンス。
`mailbox`

  メールボックス名。詳細は imap_open() を参照ください。 この名前に国際化文字を含む場合には、 imap_utf7_encode() でエンコードする必要があります。

  警告

  信頼できないデータをこのパラメータに渡すのであれば、 imap.enable_insecure_rsh を無効にしておかなければ危険です。

### 戻り値

成功した場合に `true` を、失敗した場合に `false` を返します。

### 変更履歴

バージョン | 説明
--- | ---
8.1.0 | 引数 `imap` は、IMAP\Connection クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、有効な `imap` resource が期待されていました。

### 例

例1 imap_createmailbox() example

    <?php
    $mbox = imap_open("{imap.example.org}", "username", "password", OP_HALFOPEN)
         or die("接続できません: " . imap_last_error());

    $name1 = "phpnewbox";
    $name2 = imap_utf7_encode("phpnewböx"); // phpnewb&w7Y-x

    $newname = $name1;

    echo "Newname will be '$name1'<br />\n";

    // ここでは inbox フォルダ内に新しいメールボックス "phptestbox" を
    // 作成し、その後でメールボックスの状態を確認し、最後にそれを削除して
    // もとの状態に戻します。

    if (@imap_createmailbox($mbox, imap_utf7_encode("{imap.example.org}INBOX.$newname"))) {
        $status = @imap_status($mbox, "{imap.example.org}INBOX.$newname", SA_ALL);
        if ($status) {
            echo "your new mailbox '$name1' has the following status:<br />\n";
            echo "Messages:   " . $status->messages    . "<br />\n";
            echo "Recent:     " . $status->recent      . "<br />\n";
            echo "Unseen:     " . $status->unseen      . "<br />\n";
            echo "UIDnext:    " . $status->uidnext     . "<br />\n";
            echo "UIDvalidity:" . $status->uidvalidity . "<br />\n";

            if (imap_renamemailbox($mbox, "{imap.example.org}INBOX.$newname", "{imap.example.org}INBOX.$name2")) {
                echo "renamed new mailbox from '$name1' to '$name2'<br />\n";
                $newname = $name2;
            } else {
                echo "imap_renamemailbox on new mailbox failed: " . imap_last_error() . "<br />\n";
            }
        } else {
            echo "imap_status on new mailbox failed: " . imap_last_error() . "<br />\n";
        }

        if (@imap_deletemailbox($mbox, "{imap.example.org}INBOX.$newname")) {
            echo "new mailbox removed to restore initial state<br />\n";
        } else {
            echo "imap_deletemailbox on new mailbox failed: " . implode("<br />\n", imap_errors()) . "<br />\n";
        }

    } else {
        echo "could not create new mailbox: " . implode("<br />\n", imap_errors()) . "<br />\n";
    }

    imap_close($mbox);
    ?>

### 参考

- imap_renamemailbox() - メールボックスの名前を変更する
- imap_deletemailbox() - メールボックスを削除する

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open