PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

  • Récupération des messages
  • Récupération asynchrone des messages (IMAP)
  • Consommation mémoire
  • Gestion de la jauge
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Récupère tous les emails présents sur un serveur d'emails.
Versions 17 et supérieures
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
iPhone/iPad Cette fonction est désormais disponible pour les applications iPhone/iPad.
Versions 21 et supérieures
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Nouveauté 21
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Universal Windows 10 App Cette fonction est désormais disponible en mode Universal Windows 10 App.
Versions 22 et supérieures
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Android Cette fonction est désormais disponible pour les applications Android.
Nouveauté 22
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Android Cette fonction est désormais disponible pour les applications Android.
Widget Android Cette fonction est désormais disponible en mode Widget Android.
Android Cette fonction est désormais disponible pour les applications Android.
Exemple
// Récupération de tous les emails non lus de la boîte de réception.
SessionIMAP est une emailSessionIMAP
tabEmailNonLus est un tableau de Emails
 
// Ouverture de la session
EmailOuvreSession(SessionIMAP)
 
// Récupération de tous les emails non lus
tabEmailNonLus = EmailRécupèreTout(SessionIMAP, ertNonLus)
 
// Affichage des informations de chaque email
POUR TOUT MonEmail DE tabEmailNonLus
ZoneRépétéeAjouteLigne(ZR_EMAIL, MonEmail..Expediteur, ...
MonEmail..Message, MonEmail..Sujet)
FIN
 
Syntaxe
<Résultat> = EmailRécupèreTout(<Connexion> [, <Options de lecture>])
<Résultat> : Tableau de variables de type Email
Emails dans la boîte de réception (les éléments effectivement récupérés varient selon les paramètres).
<Connexion> : Chaîne de caractères ou variable de type emailSessionXX
Connexion au serveur de messagerie.
Ce paramètre peut être :
<Options de lecture> : Constante optionnelle de type Entier
Les valeurs possibles sont :
ertAsynchroneLes messages sont récupérés de façon asynchrone. La fonction retourne immédiatement un tableau de variables de type Email contenant autant d'éléments que nécessaire. La récupération effective des données se fait "à la demande" lors de l'accès aux éléments du tableau.
Remarque : Dans ce mode, les jauges et les callbacks définies par la fonction EmailJauge ne sont pas prises en compte.
ertCompletLes messages sont lus entièrement depuis le serveur (entête, corps du message et pièces jointes).
ertEntête
(valeur par défaut)
Seuls les entêtes sont lus. La récupération effective des autres données (corps du message et pièces jointes) se fait "à la demande" lors de l'accès aux éléments du tableau.
ertNonLusSeuls les messages marqués comme "non lus" sur le serveur sont récupérés.
Remarque : Cette valeur n'est pas disponible pour une connexion POP3.
Remarques

Récupération des messages

Pour récupérer la totalité des messages ainsi que leurs pièces jointes, il est préférable d'employer la constante ertComplet pour minimiser le nombre d'appels au serveur.
Au contraire, si le but n'est de récupérer complètement que quelques emails, il vaut mieux employer la constante ertEntete (la valeur par défaut) et laisser la récupération automatique du corps du message se faire lorsqu'elle est nécessaire uniquement (c'est-à-dire au moment de l'accès à la propriété ..Message de la variable Email).
Remarques :
  • Si une propriété d'un email récupéré est modifiée avant que le corps du message ou les pièces jointes ne soient récupérés, cela annule la récupération du corps du message et des pièces jointes.
  • Récupération d'emails Outlook : La propriété ..ContentType n'est pas disponible et la propriété ..ContentID est renseignée de manière optionnelle.

Récupération asynchrone des messages (IMAP)

La récupération asynchrone des emails avec la constante ertAsynchrone est réalisée dans un thread secondaire afin de ne pas être bloquante. Le tableau renvoyé par la fonction EmailRécupèreTout doit donc être intégralement parcouru avant tout appel d'une autre fonction EmailXXX nécessitant un échange avec le serveur IMAP.
Par exemple, il ne faut pas écrire le code suivant :
tabEmailNonLus = EmailRécupèreTout(SessionIMAP, ertAsynchrone)
POUR TOUT mail DE tabEmailNonLus
SI mail.Sujet [~] "alerte" ALORS
EmailChangeEtat(SessionIMAP, mail, emailEtatNonLu)
FIN
FIN
En effet, il faut gérer le changement d'état après le parcours de tous les emails.
Par exemple :
nIndice est un entier
tabIndiceEmailChangeEtat est un tableau d'entier
 
tabEmailNonLus = EmailRécupèreTout(SessionIMAP, ertAsynchrone)
POUR TOUT mail DE tabEmailNonLus
nIndice++
SI mail.Sujet [~] "alerte" ALORS
Ajoute(tabIndiceEmailChangeEtat, nIndice)
FIN
FIN
 
POUR TOUT n DE tabIndiceEmailChangeEtat
EmailChangeEtat(SessionIMAP, tabEmailNonLus[n], emailEtatNonLu)
FIN
 

Consommation mémoire

La récupération des emails est faite en mémoire. Si la boite de réception contient de nombreux messages ou des pièces jointes de taille importante, la lecture peut consommer une grande quantité de mémoire.
WINDEVAndroidWidget AndroidiPhone/iPadWindows MobileUniversal Windows 10 App

Gestion de la jauge

Pour connaître l'état d'avancement de la récupération, il est nécessaire de fixer une jauge ou une procédure à l'aide de la fonction EmailJauge.
Deux syntaxes de procédure sont supportées :
  • Procédure recevant deux paramètres : la taille totale et l'état de progression en cours.
  • Procédure recevant quatre paramètres : la taille totale, l'état de progression en cours, l'indice du message en cours de traitement et le nombre total de messages.
Liste des exemples associés :
WD Mail Exemples complets (WINDEV) : WD Mail
[ + ] Cette application est un client mail complet développé en WINDEV. Il s'appuie sur les objets Email.
Ce client mail permet de récupérer et d'envoyer des emails en utilisant les protocoles POP, IMAP et SMTP.
Il est possible d'appliquer des filtres sur le courrier entrant.

L'application permet également de gérer plusieurs comptes emails différents. L'écriture d'un email s'appuie sur le champ de saisie HTML.
Composante : wd240com.dll
Version minimum requise
  • Version 15
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire