Parfois, vous devez trouver tous les courriels non lus sur votre serveur de messagerie et les télécharger pour les afficher à votre client. La méthode searchMails le fait pour vous ! Elle utilise le protocole de recherche IMAP qui se fait entièrement du côté serveur. Cela signifie qu’elle est rapide et qu’elle vous permet de ne récupérer que les e-mails souhaités.
recherche de courrier électronique
Pour effectuer une recherche d’e-mails, vous devez être connecté à votre serveur de messagerie et avoir une boîte aux lettres sélectionnée. Pour les exemples, nous utiliserons la boîte aux lettres Inbox:
$transporter:=IMAP New transporter($serverInfo)
$boxInfo :=$transporter.selectBox("inbox")
Pour effectuer une recherche dans la boîte de réception, envoyez une requête au serveur IMAP. Pour rechercher tous les messages non lus, créez une requête avec l’indicateur « unread » et envoyez-la au serveur via la méthode searchMails de votre transporteur IMAP :
$mailIds:=$transporter.searchMails("non lu")
Vous pouvez effectuer des recherches plus complexes en combinant plusieurs indicateurs. Par exemple, si vous voulez rechercher tous les courriels non lus qui ont été reçus de « imap.test@4d.com » depuis le 1er août 2020 :
$mailIds:=$transporter.searchMails("non lus SINCE \"1-Août-2020\" FROM \"imap.test@4d.com\"")
Pour une liste complète des drapeaux disponibles, reportez-vous à la documentation de la méthode searchMails pour obtenir la liste complète des indicateurs disponibles.
En retour de cette recherche, vous obtiendrez une collection contenant tous les identifiants d’emails qui correspondent à votre demande.
télécharger les emails
Pour télécharger tous les emails trouvés, vous pouvez utiliser la nouvelle méthode getMails qui prend une collection d’identifiants d’emails en paramètre :
$mails:=$transporter.getMails($mailsIds)
Et voilà ! Vous avez obtenu tous vos emails non lus reçus de « imap.test@4d.com » depuis le 1er août 2020, en seulement quelques lignes de code.