Recevoir des e-mails avec le protocole POP3

Traduit automatiquement de Deepl

4D v18 a introduit une nouvelle façon facile à utiliser et puissante de créer et d’envoyer des e-mails. Un moyen qui vous permet d’envoyer des e-mails accrocheurs basés sur le HTML (avec des images, des vidéos et des pièces jointes), en utilisant seulement quelques lignes de code. Dans 4D v18 R2, nous avons ajouté la possibilité de télécharger localement vos emails et de les supprimer de votre serveur de messagerie. Dans ce billet de blog, nous allons passer en revue les nouvelles possibilités que cela offre.

La nouvelle POP3 New transporter commande vous permet d’utiliser le protocole POP3 pour gérer le courrier électronique. Le protocole POP (Post Office Protocol) est un protocole standard pour récupérer les e-mails d’un serveur de messagerie. Il est utile pour des actions telles que la connexion à un serveur POP3, la récupération de messages à traiter automatiquement et/ou à stocker dans votre base de données locale, et leur suppression du serveur.

Téléchargement de boîtes aux lettres POP3 HDI

Créer un Transporteur pop3

Comme pour le SMTP, lorsque vous utilisez le protocole POP3, vous devez d’abord créer un transporteur POP3 (via la commande POP3 New transporter ) :

$server:=New object
$server .host:= "yourPOP3host.com"
$server .port:=995
$server .user:= "4D.POP3@mail.com"
$server .password:= "XXXXXX"
// Create a transporter from your server information
$POP3 transporter:=POP3 New transporter($server)

Informations sur le courrier

Vous pouvez obtenir des informations sur tous les messages de votre boîte aux lettres avec la méthode getMailInfoList() de votre objet transporteur POP3. La liste retournée contient notamment un numéro de message identifiant chaque courriel lors de la transaction POP3 :

$mailInfos:=$POP3 transporter.getMailInfoList()

Si vous avez besoin d’informations pour un seul message, vous pouvez également utiliser la méthode getMailInfo() … il suffit de passer le numéro du message en paramètre :

$mailInfo:=$POP3 transporter.getMailInfo($mailNumber)

recevoir le courrier électronique

Vous pouvez télécharger tous les messages ou des messages spécifiques en utilisant la méthode getMail() pour télécharger tous les messages ou des messages spécifiques. Pour télécharger un message spécifique, il suffit de passer le numéro du message retourné par getMailInfoList() comme paramètre à cette méthode. L’exemple suivant montre comment télécharger tous les messages de votre boîte aux lettres :

$mailInfos:=$POP3 transporter.getMailInfoList()
$mails :=New collection
For each ($mail;$mailInfos)
// Download email
$mails . push($transporter.getMail($mail.number) )
End for each

supprimer l’email

Vous pouvez marquer un message à supprimer lors de la fermeture de la session à l’aide de la méthode delete() Vous pouvez marquer un message à supprimer lors de la fermeture de la session avec la méthode De la même manière que pour la méthode getMail() transmettez le numéro du message renvoyé par la méthode getMailInfoList() comme paramètre. Par exemple, si vous souhaitez télécharger et supprimer tous les messages de votre boîte aux lettres :

$mailInfos:=$POP3 transporter.getMailInfoList()
For each ($mailInfo;$mailInfos)
// Download email
ProcessMail ($POP3 transporter.getMail($mailInfo.number))

// Flag messages "to be deleted at the end of the session"
. ( . ) $POP3 transporterdelete$mailInfonumber
End for each

// Force the session closure to delete the messages flagged for deletion
$POP3 transporter:=Null

Informations sur la boîte aux lettres

Vous pouvez obtenir le nombre de messages dans votre boîte aux lettres et la taille de la boîte aux lettres avec la méthode getBoxInfo() méthode :

$boxInfo:=$POP3 transporter.getBoxInfo()
ALERT ("Size : "+String($boxInfo.size)+" - Count : "+String($boxInfo.mailCount))

transaction de journal

Comme pour les journaux SMTP, vous pouvez enregistrer toutes vos transactions POP3. Il y a deux façons de créer votre journal :

  • Exécutez un journal POP3 sur le serveur – cliquez sur le bouton « Start Request and Debug Logs » sur votre serveur 4D.
  • Enregistrer une transaction spécifique (pendant le débogage, par exemple) – utilisez la propriété logFile de l’objet transporteur POP3 :

$server.host:= "yourpop3server.com"
$server .user:= "login"
$server .password:= "psw"
// Enter the path of the log file you want to create
$server .logFile:= "C:\tmp\\\POP3Log.txt"
$transporter :=POP3 New transporter($server)

Vous pouvez tester toutes ces commandes avec l’IDH ci-dessus.

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.