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.