Signatur
Beschreibung
imap_rename() ist ein Alias der Funktion imap_renamemailbox() und benennt eine vorhandene Mailbox (Ordner) auf einem IMAP-Server um. Die Funktion erwartet eine aktive IMAP-Verbindung sowie den vollständigen alten und neuen Namen der Mailbox im IMAP-Format.
Der Mailbox-Name muss im Format {hostname}Ordnername angegeben werden, also inklusive des Server-Bezeichners in geschweiften Klammern, wie er auch beim Öffnen der Verbindung mit imap_open() verwendet wird. Ein einfaches Umbenennen von INBOX.Archiv in INBOX.AltesMail ist damit ebenso möglich wie das Verschieben von Ordnern durch Änderung der Hierarchie.
Da es sich um einen Alias handelt, verhält sich imap_rename() in jeder Hinsicht identisch zu imap_renamemailbox(). Es wird empfohlen, direkt imap_renamemailbox() zu verwenden, da Aliasse in zukünftigen PHP-Versionen möglicherweise entfernt werden könnten.
Die Funktion gibt true bei Erfolg zurück. Schlägt das Umbenennen fehl – etwa weil der Ordner nicht existiert oder keine ausreichenden Berechtigungen vorliegen – wird false zurückgegeben.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $imap Pflicht | IMAP\Connection | Eine aktive IMAP-Verbindungsinstanz, die zuvor mit imap_open() geöffnet wurde. |
|
| $from Pflicht | string | Der vollständige aktuelle Name der Mailbox im IMAP-Format, z. B. {imap.example.com}INBOX.AlterName. |
|
| $to Pflicht | string | Der neue vollständige Name der Mailbox im IMAP-Format, z. B. {imap.example.com}INBOX.NeuerName. |
Rückgabewert
true zurück, wenn die Mailbox erfolgreich umbenannt wurde, andernfalls false.Beispiele
Mailbox auf einem IMAP-Server umbenennen
<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}', 'benutzer@example.com', 'geheim');
if ($imap === false) {
die('Verbindung fehlgeschlagen: ' . imap_last_error());
}
$server = '{imap.example.com:993/imap/ssl}';
$alterName = $server . 'INBOX.Entwuerfe_Alt';
$neuerName = $server . 'INBOX.Entwuerfe';
if (imap_rename($imap, $alterName, $neuerName)) {
echo "Mailbox erfolgreich umbenannt.";
} else {
echo "Fehler beim Umbenennen: " . imap_last_error();
}
imap_close($imap);
Ordner in eine andere Hierarchieebene verschieben
<?php
$imap = imap_open('{imap.example.com:993/imap/ssl}', 'benutzer@example.com', 'geheim');
if ($imap === false) {
die('Verbindung fehlgeschlagen.');
}
$server = '{imap.example.com:993/imap/ssl}';
// Ordner von der obersten Ebene in INBOX verschieben
$erfolg = imap_rename($imap, $server . 'Projektordner', $server . 'INBOX.Projektordner');
echo $erfolg ? 'Verschoben.' : 'Fehler: ' . imap_last_error();
imap_close($imap);
// Wichtig · Fallstricke
Alias-Hinweis: imap_rename() ist ein Alias von imap_renamemailbox(). Es wird empfohlen, stattdessen direkt imap_renamemailbox() zu verwenden, um Kompatibilitätsprobleme mit zukünftigen PHP-Versionen zu vermeiden.
Ab PHP 8.1: Der Parameter $imap erwartet eine Instanz von IMAP\Connection anstelle einer resource.
Das Umbenennen von INBOX selbst ist auf den meisten IMAP-Servern nicht erlaubt und führt zu einem Fehler. Stellen Sie sicher, dass der Benutzer ausreichende Rechte auf dem Server besitzt, bevor Sie Ordner umbenennen.