Start · Sprachen · PHP · Referenz · imap_check

imap_check

Funktion

Prüft das aktuell geöffnete IMAP-Postfach und gibt Statusinformationen wie Nachrichtenanzahl und Datum zurück.

seit PHP 4.0.0 Kategorie: http

Signatur

imap_check(IMAP\Connection $imap): stdClass|false

Beschreibung

imap_check() ruft Statusinformationen über das mit der übergebenen IMAP-Verbindung verknüpfte Postfach ab. Die Funktion liefert ein stdClass-Objekt mit Metadaten über das Postfach, wie die Gesamtzahl der Nachrichten, die Anzahl kürzlich eingegangener Nachrichten sowie das Datum des letzten Zugriffs.

Die Funktion ist besonders nützlich, um schnell einen Überblick über den Zustand eines Postfachs zu erhalten, ohne einzelne Nachrichten abrufen zu müssen. Sie eignet sich gut für Überprüfungen vor dem eigentlichen Verarbeiten von E-Mails oder für Monitoring-Zwecke.

Das zurückgegebene Objekt enthält folgende Eigenschaften: Date (Datum des letzten Zugriffs), Driver (verwendeter Mail-Treiber, z. B. imap), Mailbox (vollständiger Postfachname), Nmsgs (Gesamtanzahl der Nachrichten) und Recent (Anzahl der kürzlich eingegangenen Nachrichten).

Beachte, dass die IMAP-Erweiterung seit PHP 8.1 als IMAP\Connection-Objekt typisiert ist. In älteren PHP-Versionen wurde eine Ressource verwendet.

Parameter

Name Typ Default Beschreibung
$imap Pflicht IMAP\Connection Eine aktive IMAP-Verbindung, die zuvor mit imap_open() geöffnet wurde.

Rückgabewert

Typ
stdClass|false
Beschreibung
Gibt bei Erfolg ein stdClass-Objekt mit den Postfach-Statusinformationen zurück. Im Fehlerfall wird false zurückgegeben. Das Objekt enthält die Felder Date, Driver, Mailbox, Nmsgs und Recent.

Beispiele

Postfachinformationen abrufen und ausgeben

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

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

$info = imap_check($imap);

if ($info === false) {
    echo 'Postfach konnte nicht geprüft werden.';
} else {
    echo 'Postfach:          ' . $info->Mailbox . PHP_EOL;
    echo 'Nachrichten:       ' . $info->Nmsgs . PHP_EOL;
    echo 'Neue Nachrichten:  ' . $info->Recent . PHP_EOL;
    echo 'Letzter Zugriff:   ' . $info->Date . PHP_EOL;
    echo 'Treiber:           ' . $info->Driver . PHP_EOL;
}

imap_close($imap);
Postfach: {imap.example.com:993/imap/ssl}INBOX Nachrichten: 42 Neue Nachrichten: 3 Letzter Zugriff: Mon, 12 Jun 2024 10:23:45 +0200 Treiber: imap

Postfach vor der Verarbeitung prüfen

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

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

$status = imap_check($imap);

if ($status && $status->Nmsgs > 0) {
    echo 'Es gibt ' . $status->Nmsgs . ' Nachrichten im Postfach.' . PHP_EOL;
    // Hier könnten Nachrichten mit imap_fetch_overview() weiterverarbeitet werden
} else {
    echo 'Das Postfach ist leer oder konnte nicht geprüft werden.' . PHP_EOL;
}

imap_close($imap);
Es gibt 42 Nachrichten im Postfach.

// Wichtig · Fallstricke

Hinweis zur IMAP-Erweiterung: Die IMAP-Erweiterung ist nicht standardmäßig aktiviert und muss beim Kompilieren von PHP oder über die php.ini aktiviert werden (extension=imap).

PHP 8.1+: Ab PHP 8.1 wird anstelle einer Ressource ein IMAP\Connection-Objekt erwartet. Code, der eine Ressource übergibt, ist seit PHP 8.1 veraltet.

Sicherheit: Zugangsdaten für IMAP-Verbindungen sollten niemals im Quellcode hart kodiert werden. Nutze Umgebungsvariablen oder sichere Konfigurationsdateien. Stelle außerdem sicher, dass SSL/TLS (/imap/ssl) verwendet wird, um Zugangsdaten nicht im Klartext zu übertragen.