Dans 4D v18, nous avons introduit une nouvelle façon d’envoyer des emails. Ensuite, dans 4D v18 R2, nous avons ajouté une nouvelle façon de récupérer les emails en utilisant POP3. Maintenant, dans 4D v18 R4, nous faisons les premiers pas vers une nouvelle façon de gérer le protocole IMAP. Comme nous l’avons fait pour SMTP et POP3, il existe une nouvelle commande IMAP New transporter pour gérer le protocole IMAP.
Le protocole IMAP (Internet Message Access Protocol) est un protocole standard de l’Internet utilisé par les clients de messagerie pour récupérer les messages électroniques sur un serveur de messagerie. Ce protocole permet de gérer plusieurs boîtes aux lettres, de télécharger des e-mails, d’effectuer des recherches sur le serveur, de gérer l’état des messages, et bien plus encore !
Et avec cette première fonctionnalité IMAP, vous pouvez ajouter des méthodes au transporteur pour : avoir la liste des boîtes aux lettres disponibles, sélectionner une boîte aux lettres, et recevoir des emails de la boîte aux lettres sélectionnée. Voyons comment.
L’IDH ci-dessous montre comment recevoir du courrier électronique via IMAP :
HDI recevoir des emails via IMAP
créer un transporteur IMAP
Comme pour SMTP et POP3, lorsque vous utilisez le protocole IMAP, vous devez d’abord créer un transporteur (via la commande IMAP New transporter ) :
$server:=New object
$server .host:= "yourIMAPhost.com"
$server .port:=995
$server .user:= "4D.IMAP@mail.com"
$server .password:= "XXXXXX"
// Create a transporter from your server information
$IMAP_Transporter:=IMAP New transporter($server)
Sélectionner la boîte aux lettres
Comme IMAP prend en charge plusieurs boîtes aux lettres, la première chose à faire est de spécifier la boîte aux lettres que vous voulez.
Vous pouvez obtenir une liste de toutes les boîtes aux lettres disponibles sur votre serveur de messagerie avec la méthode getBoxList méthode :
$boxList:=$IMAP_Transporter.getBoxList()
Alert ("Votre premier nom de boîte aux lettres est "+$boxList[0].name)
Une fois que vous connaissez le nom de la boîte aux lettres spécifique dont vous avez besoin, utilisez simplement la méthode selectBox:
$boxInfo:=$transporter.selectBox($boxList[$boxId].name)
Cette commande renvoie des informations utiles telles que
- le nombre d’e-mails dans la boîte aux lettres
- le nombre de messages récents
Télécharger le courrier électronique
Vous avez deux façons d’identifier le courrier que vous voulez télécharger :
- La première consiste à utiliser la position de l’e-mail dans la boîte aux lettres, comme vous le feriez pour POP3. Par exemple, si vous voulez télécharger le dernier courrier reçu :
$mail:=$transporter.getMail($boxInfo.mailCount)
- La seconde consiste à utiliser l’attribut id de l’objet e-mail renvoyé par le serveur IMAP. Cette méthode est la meilleure à utiliser lorsque vous voulez récupérer un courriel spécifique puisque la position d’un courriel dans la boîte aux lettres peut être modifiée lorsque vous supprimez des courriels :
$mail:=$transporter.getMail($emailId)
Comme nous l’avons dit précédemment, il s’agit de la première fonctionnalité d’IMAP. Il y en aura d’autres. Restez à l’écoute !