imap_search limiter le nombre de messages retournés
J'ai un script PHP qui chercher des messages d'une boîte aux lettres. J'utilise le imap_search fonction:
$emails = imap_search($mbox, 'UNSEEN');
Est-il un moyen de limiter le nombre de messages de retour. Maintenant sur d'énormes boîtes aux lettres-je obtenir comme 5000 messages. Je veux seulement le top 20 classés par date.
Est-il un moyen de le faire?
Grâce.
OriginalL'auteur aviv | 2010-02-01
Vous devez vous connecter pour publier un commentaire.
La imap_search de la fonction de CRITÈRES d'attribut que vous pouvez utiliser pour limiter les messages dans un certain nombre de façons:
TOUS - retour tous les messages correspondant au reste des critères
RÉPONDIT - tous les messages avec le \RÉPONDU drapeau
BCC "string" - tous les messages avec "string" dans le champ Cci:
AVANT de "date" - tous les messages avec la Date: avant la "date"
CORPS "string" - tous les messages avec "string" dans le corps du message
CC "string" - tous les messages avec "string" dans le champ Cc:
SUPPRIMÉ - match supprimé les messages
MARQUÉ - tous les messages avec le \MARQUÉ (parfois considéré comme Important ou Urgent) indicateur
DE la chaîne "string" - tous les messages avec la chaîne "string" dans le champ De:
Mot-CLÉ "string" - tous les messages avec la "chaîne" comme mot-clé
New - tous les NOUVEAUX messages
VIEUX - tous les anciens messages
SUR "date" - tous les messages avec la Date "date"
RÉCENTE - tous les messages avec le \RÉCENTE drapeau
VU - tous les messages qui ont été lus (le \VU le drapeau est réglé)
DEPUIS le "date" - tous les messages avec la Date: après "date"
L'OBJET "string" - tous les messages avec "string" dans le Sujet:
Le TEXTE "string" - tous les messages avec le texte "string"
POUR "string" - tous les messages avec "string" dans le À :
Sans RÉPONSE - tous les messages qui n'ont pas été répondu
UNDELETED - tous les messages ne sont pas supprimés
DÉCOCHÉE - tous les messages qui ne sont pas signalées
UNKEYWORD "string" - tous les messages qui n'ont pas le mot "chaîne"
UNSEEN - tous les messages qui n'ont pas été encore lire
c'est la seule façon pour affiner les choses un peu pas d'autre moyen que de ce que je sais. Est-il un?
Pour le réduire, c'est le seul moyen. Mais ses critères est un nombre limite, ce que je suppose être, tous messages, qui
imap_search
ne fournit pas. Il y a peut être un hack, voir mon edit et laissez-moi savoir ce que vous en pensez.OriginalL'auteur Sarfraz
imap_sort vous permettra à la fois de tri et de filtre dans le même temps
Mais encore, il ne permettra pas de limiter le "top 20" droit à l'appel de la fonction.
OriginalL'auteur Dominik
Afin de résoudre ce problème par:
1.Vous pouvez limiter le pas de de résultat retourné par la réduction de l'absence de données à l'aide de la puisque les critères
2. Récupérer les derniers messages de retour de l'e.g 15
Et puis ici, c'est un exemple de récupérer les 15 dernières retourné et puis bascule vers l'avant et vers l'arrière pour afficher plus de résultats ou plus.Remarque cela suppose que vous avez un bouton vers l'avant et plus que $_GET variables.
Vous pouvez définir la date de l'obtenir à partir de 90 jours avant alors si c'est beaucoup.de retour de ce morceau par morceau, comme ci-dessus.Mes excuses pour l'utilisation de certains laravel helper classes,tout est bien commenté.
Espérons que cela aide quelqu'un!
OriginalL'auteur Alofe Oluwafemi