Recherche d’emails avec le protocole IMAP

Traduit automatiquement de Deepl

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.

HDI IMAPMailsRecherche

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.

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.