Ich habe ein PHP-Skript, das Nachrichten von einem Postfach abruft. Ich benutze die imap_search Funktion:
$emails = imap_search($mbox, 'UNSEEN');
Gibt es eine Möglichkeit, die Anzahl der zurückgegebenen Nachrichten zu begrenzen? Gerade jetzt auf riesigen Postfächern bekomme ich wie 5000 Nachrichten. Ich will nur die Top 20 nach Datum sortiert.
Gibt es eine Möglichkeit, das zu tun?
Danke.
Die Funktion imap_search verfügt über ein KRITERIEN-Attribut, mit dem Sie die Nachrichten auf verschiedene Arten einschränken können:
ALL - gibt alle Nachrichten zurück, die den übrigen Kriterien entsprechen
ANTWORTEN - Nachrichten mit dem Flag \ ANSWERED übereinstimmen
BCC "string" - Nachrichten mit "string" im Feld Bcc: abgleichen
VOR "Datum" - Nachrichten mit Datum: vor "Datum" übereinstimmen
BODY "string" - Nachrichten mit "string" im Nachrichtentext abgleichen
CC "string" - Nachrichten mit "string" im Feld Cc: abgleichen
GELÖSCHT - Streiche gelöschte Nachrichten
FLAGGED - Übereinstimmungen mit dem Flag \ FLAGGED (manchmal als wichtig oder dringend bezeichnet) festlegen
FROM "string" - Nachrichten mit "string" im Feld From: abgleichen
KEYWORD "string" - Nachrichten mit "string" als Schlüsselwort |
NEU - Passe neue Nachrichten an
OLD - Übereinstimmung mit alten Nachrichten
ON "date" - Nachrichten mit Datum abgleichen: passendes "Datum"
RECENT - Übereinstimmungen mit dem \ RECENT-Flag, das gesetzt wurde
SEEN - Nachrichten abgleichen, die gelesen wurden (das Flag \ SEEN wird gesetzt)
SINCE "Datum" - Nachrichten mit Datum: nach "Datum"
SUBJECT "string" - Nachrichten mit "string" im Betreff:
TEXT "string" - Nachrichten mit Text "string" abgleichen
TO "string" - Nachrichten mit "string" im An:
UNANSWERED - Übereinstimmungen von Nachrichten, die nicht beantwortet wurden
UNDELETED - Passe Nachrichten an, die nicht gelöscht wurden
UNFLAGGED - Nachrichten zusammenbringen, die nicht markiert sind
UNKEYWORD "string" - Übereinstimmungen, die das Schlüsselwort "string" nicht enthalten
UNSEEN - Nachrichten zusammenbringen, die noch nicht gelesen wurden
Um dieses Problem zu lösen:
1. Sie können die Anzahl der zurückgegebenen Ergebnisse einschränken, indem Sie die Anzahl der Daten mithilfe der since-Kriterien reduzieren 2. Retreive einige letzte zurückgegebene Nachrichten, z. B. 15
%Vor%Und dann ist hier ein Beispiel, um die letzten 15 zurück zu erhalten und dann vorwärts und rückwärts zu schalten, um mehr Ergebnisse oder älter zu sehen. Beachten Sie, dass Sie eine Taste vorwärts und älter haben, die $ _GET-Variablen setzen.
%Vor%Sie können das Datum, von dem es erhalten wird, auf 90 Tage setzen, wenn es dann sehr viel ist. Geben Sie es wie oben beschrieben zurück. Ich entschuldige mich für die Verwendung einiger Laravel-Hilfsklassen, alle sind gut auskommentiert. Hoffe das hilft jemandem!