imap_search Begrenzen Sie die Anzahl der zurückgegebenen Nachrichten

8

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.

    
aviv 01.02.2010, 14:26
quelle

3 Antworten

7

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

    
Sarfraz 01.02.2010, 14:30
quelle
1

imap_sort erlaubt Ihnen, gleichzeitig zu sortieren und zu filtern

Aber es wird immer noch nicht möglich sein, beim Funktionsaufruf auf die 'Top 20'-Rechte zu beschränken.

    
Dominik 05.02.2010 17:57
quelle
0

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!

    
Alofe Oluwafemi 27.08.2015 18:10
quelle

Tags und Links