|
|
|
|
|
- Récupération des messages
- Récupération asynchrone des messages (IMAP)
- Consommation mémoire
- Gestion de la jauge
EmailRécupèreTout (Fonction) En anglais : EmailGetAll Récupère tous les emails présents sur un serveur d'emails.
// 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 : | | ertAsynchrone | Les 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. Remarques : - Dans ce mode, les jauges et les callbacks définies par la fonction EmailJauge ne sont pas prises en compte.
- Les emails les plus anciens sont traités en premier.
| ertComplet | Les 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. | ertNonLus | Seuls 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. Attention : l'accès à une information non récupérée peut entrainer une erreur lors de l'accès au tableau. 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.
Liste des exemples associés :
|
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'écriture d'un email s'appuie sur le champ Editeur HTML. L'affichage des emails utilise le champ Affichage HTML. L'application permet de gérer plusieurs comptes emails différents.
|
Composante : wd300com.dll
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|