Start · Sprachen · PHP · Referenz · imap_mailboxmsginfo

imap_mailboxmsginfo

Funktion

Liefert allgemeine Informationen über das aktuell geöffnete IMAP-Postfach als <code>stdClass</code>-Objekt.

seit PHP 4.0.0 Kategorie: http

Signatur

imap_mailboxmsginfo(IMAP\Connection $imap): stdClass

Beschreibung

imap_mailboxmsginfo() gibt ein Objekt zurück, das verschiedene statistische Informationen über das aktuell geöffnete Postfach enthält, wie z. B. die Gesamtzahl der Nachrichten, die Anzahl neuer und ungelesener Nachrichten sowie die Gesamtgröße aller Nachrichten.

Das zurückgegebene stdClass-Objekt besitzt unter anderem die Eigenschaften Nmsgs (Gesamtzahl der Nachrichten), Recent (neu seit letzter Verbindung), Unread (ungelesen), Deleted (zum Löschen markiert) und Size (Gesamtgröße aller Nachrichten in Bytes).

Die Funktion ist nützlich, wenn man einen schnellen Überblick über den Zustand eines Postfachs braucht – z. B. um in einer E-Mail-Anwendung eine Zusammenfassung anzuzeigen oder um vorab zu prüfen, ob neue Nachrichten vorhanden sind, bevor man sie einzeln abruft.

Zu beachten ist, dass für die Nutzung von IMAP-Funktionen die PHP-Extension ext/imap aktiviert sein muss und seit PHP 8.1 die IMAP-Verbindung als Objekt vom Typ IMAP\Connection übergeben wird.

Parameter

Name Typ Default Beschreibung
$imap Pflicht IMAP\Connection Eine aktive IMAP-Verbindung, die zuvor mit imap_open() geöffnet wurde. Seit PHP 8.1 ist dies eine Instanz von IMAP\Connection; zuvor war es eine Ressource.

Rückgabewert

Typ
stdClass
Beschreibung
Gibt ein stdClass-Objekt mit folgenden Eigenschaften zurück:
  • Date – Zeitpunkt des letzten Abrufs
  • Driver – verwendeter Mail-Treiber (z. B. imap)
  • Mailbox – Pfad des Postfachs
  • Nmsgs – Gesamtzahl der Nachrichten
  • Recent – Anzahl neuer Nachrichten seit der letzten Verbindung
  • Unread – Anzahl ungelesener Nachrichten
  • Deleted – Anzahl zum Löschen markierter Nachrichten
  • Size – Gesamtgröße aller Nachrichten in Bytes
Im Fehlerfall gibt die Funktion false zurück.

Beispiele

Postfach-Zusammenfassung ausgeben

<?php
// Verbindung zum IMAP-Server herstellen
$imap = imap_open(
    '{imap.example.com:993/imap/ssl}INBOX',
    'benutzer@example.com',
    'geheimes-passwort'
);

if (!$imap) {
    die('Verbindung fehlgeschlagen: ' . imap_last_error());
}

// Postfach-Informationen abrufen
$info = imap_mailboxmsginfo($imap);

echo 'Postfach:          ' . $info->Mailbox . PHP_EOL;
echo 'Nachrichten gesamt: ' . $info->Nmsgs . PHP_EOL;
echo 'Neue Nachrichten:   ' . $info->Recent . PHP_EOL;
echo 'Ungelesen:         ' . $info->Unread . PHP_EOL;
echo 'Gelöscht:          ' . $info->Deleted . PHP_EOL;
echo 'Gesamtgröße:       ' . round($info->Size / 1024, 2) . ' KB' . PHP_EOL;

imap_close($imap);
Postfach: {imap.example.com:993/imap/ssl}INBOX Nachrichten gesamt: 42 Neue Nachrichten: 3 Ungelesen: 10 Gelöscht: 0 Gesamtgröße: 1024.50 KB

Prüfen ob ungelesene Nachrichten vorhanden sind

<?php
$imap = imap_open(
    '{imap.example.com:993/imap/ssl}INBOX',
    'benutzer@example.com',
    'geheimes-passwort'
);

if (!$imap) {
    die('Verbindung fehlgeschlagen.');
}

$info = imap_mailboxmsginfo($imap);

if ($info->Unread > 0) {
    echo 'Sie haben ' . $info->Unread . ' ungelesene Nachricht(en).' . PHP_EOL;
} else {
    echo 'Keine ungelesenen Nachrichten.' . PHP_EOL;
}

imap_close($imap);
Sie haben 10 ungelesene Nachricht(en).

// Wichtig · Fallstricke

Extension erforderlich: Die Funktion setzt die PHP-Extension ext/imap voraus, die separat kompiliert oder installiert werden muss (--with-imap beim Build oder das entsprechende Paket, z. B. php-imap).

PHP 8.1: Ab PHP 8.1 wurde der bisherige Ressourcentyp für IMAP-Verbindungen durch die Klasse IMAP\Connection ersetzt. Code, der noch resource erwartet, muss entsprechend angepasst werden.

Deprecated: Die gesamte ext/imap-Extension wurde in PHP 8.4 als deprecated markiert und soll in einer zukünftigen PHP-Version entfernt werden. Für neue Projekte empfiehlt sich eine Bibliothek wie Horde_Imap_Client oder Symfony Mailer.

Fehlerbehandlung: Bei Verbindungsfehlern oder ungültiger Verbindung gibt die Funktion false zurück. Fehlerdetails können über imap_last_error() abgerufen werden.