Signatur
Beschreibung
imap_create() ist ein Alias der Funktion imap_createmailbox() und legt einen neuen Ordner (Mailbox) auf dem verbundenen IMAP-Server an. Der Name des neuen Ordners muss als vollständiger IMAP-Pfad inklusive des Server-Präfixes angegeben werden.
Die Funktion ist nützlich, wenn eine Anwendung dynamisch Ordnerstrukturen für Benutzer anlegen soll, z. B. für Archiv-Ordner, projektbezogene Ablagestrukturen oder automatisierte E-Mail-Sortierung. Der Ordnername muss im sogenannten Modified UTF-7-Format (UTF-7-IMAP) kodiert werden, wenn er Nicht-ASCII-Zeichen enthält.
Da imap_create() lediglich ein Alias ist, empfiehlt es sich, direkt imap_createmailbox() zu verwenden, da Aliasse in zukünftigen PHP-Versionen entfernt werden könnten. Die Funktion gibt true zurück, wenn der Ordner erfolgreich erstellt wurde, andernfalls false.
Der Mailbox-Parameter muss den vollen IMAP-Serverpfad enthalten, also z. B. {imap.example.com:143}NeuerOrdner. Ohne dieses Präfix schlägt die Erstellung fehl.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $imap Pflicht | IMAP\Connection | Eine aktive IMAP-Verbindung, die zuvor mit imap_open() geöffnet wurde. |
|
| $mailbox Pflicht | string | Der vollständige Name der zu erstellenden Mailbox inklusive Server-Präfix, z. B. {imap.example.com:143}MeinOrdner. Sonderzeichen müssen im Modified-UTF-7-Format kodiert sein. |
Rückgabewert
true zurück, wenn die Mailbox erfolgreich erstellt wurde, andernfalls false. Bei einem Fehler wird zusätzlich eine Warnung ausgegeben.Beispiele
Einen neuen IMAP-Ordner erstellen
<?php
// Verbindung zum IMAP-Server herstellen
$imap = imap_open('{imap.example.com:143}INBOX', 'benutzer@example.com', 'geheimesPasswort');
if (!$imap) {
die('Verbindung fehlgeschlagen: ' . imap_last_error());
}
// Neuen Ordner 'Archiv' erstellen
$mailboxName = '{imap.example.com:143}Archiv';
$result = imap_create($imap, $mailboxName);
if ($result) {
echo "Ordner 'Archiv' wurde erfolgreich erstellt.";
} else {
echo "Fehler beim Erstellen des Ordners: " . imap_last_error();
}
imap_close($imap);
Unterordner innerhalb von INBOX anlegen
<?php
$imap = imap_open('{imap.example.com:143}INBOX', 'benutzer@example.com', 'geheimesPasswort');
if (!$imap) {
die('Verbindung fehlgeschlagen: ' . imap_last_error());
}
// Unterordner 'INBOX.Projekt2024' erstellen
$unterordner = '{imap.example.com:143}INBOX.Projekt2024';
if (imap_create($imap, $unterordner)) {
echo "Unterordner 'Projekt2024' unter INBOX wurde erstellt.";
} else {
echo "Erstellung fehlgeschlagen: " . imap_last_error();
}
imap_close($imap);
// Wichtig · Fallstricke
Alias-Warnung: imap_create() ist ein Alias von imap_createmailbox(). Da PHP-Aliasse in zukünftigen Versionen ohne Vorwarnung entfernt werden können, sollte stattdessen direkt imap_createmailbox() verwendet werden.
Zeichenkodierung: Ordnernamen mit Umlauten oder anderen Nicht-ASCII-Zeichen müssen im Modified UTF-7-Format kodiert werden. PHP bietet hierfür keine eingebaute Funktion; es können externe Bibliotheken wie mb_convert_encoding() mit entsprechender Konvertierung oder dedizierte IMAP-Bibliotheken verwendet werden.
Berechtigungen: Das verwendete IMAP-Konto benötigt ausreichende Rechte auf dem Server, um neue Ordner anlegen zu dürfen. Andernfalls schlägt die Erstellung fehl.
Ab PHP 8.1 liefert imap_open() ein IMAP\Connection-Objekt statt einer Ressource zurück.