PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Lire les mails sur un hébergeur distant
Lire les mails sur un hébergeur distant
Débuté par MICHEL, 23 avr. 2018 21:11 - 7 réponses
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 23 avril 2018 - 21:11
Bonjour,

Je travaille sur un logiciel de gestion de mails écrit sous WD20
Les mails sont lus sur un site orange et la liste est affichée dans un objet Table.
Compte tenu de la volumétrie notre idée était de paginer la table et aussi de lire les mails au fur et à mesure

Jauge_Mails..BorneMax = EmailNbMessage(LO_Session)
POUR j = LN_Deb _A_ LN_Fin
EmailLitMessage(LO_Session, LO_EMail, j)
Jauge_Mails..Valeur = j
SI LO_EMail..EnDehors = Faux ALORS
FIN
FIN

Nous nous sommes rendu compte que de façon aléatoire tous les mails n'étaient pas lus et que la fonction EmaillitMessage plantait

Nous avons modifié comme suit :
POUR TOUT LO_EMail DE LO_Session
SI LO_EMail.EnDehors = Faux ALORS
FIN
FIN

Les performances ne sont pas bonnes puisque tous les mails sont lus même pour avoir les 20 premiers.
Par contre nous nous rendons compte que le la fonction EmailNbMessage(LO_Session) retourne 52 nous pouvons ne lire que 48 mails. Inutile de dire que l'utilisateur se pose des questions. Quelle solution peut-il y avoir ?

Merci d'avance
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 24 avril 2018 - 23:16
Je dois mal m'exprimer certaines fois.

Pour faire simple :

Pourquoi dans un traitement comme ceci (issu de http://aaa.windev.free.fr/exemple-wlangage/exemple-EmailLitMessage.htm) la ligne 2 peut-elle tomber en erreur :
POUR j = LN_Deb _A_ LN_Fin
EmailLitMessage(LO_Session, LO_EMail, j)
SI LO_EMail..EnDehors = Faux ALORS
// pourquoi entre-t-on ici ?
// quand le message a-t-il été lu ?
// même si le message a été lu comment peut-on récupérer les informations
FIN
FIN

Merci d'avance
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 27 avril 2018 - 23:07
Je cherche toujours.
Des journées de travail, un produit bloqué.
Ce qui m'inquiète est de voir des sujets identiques sur d'autres forums et qui restent eux-aussi sans réponse.
Si WD n'est pas fiable pour lire des mails ou s'il faut utiliser des solutions de contournement il faudrait le savoir.
Posté le 30 avril 2018 - 11:10
Bjr,

MICHEL a écrit :
Je cherche toujours.
Des journées de travail, un produit bloqué.
Ce qui m'inquiète est de voir des sujets identiques sur d'autres forums et
qui restent eux-aussi sans réponse.
Si WD n'est pas fiable pour lire des mails ou s'il faut utiliser des
solutions de contournement il faudrait le savoir.


ca fait 10 ans que j'ecris et lis tous mes mails avec un sogt perso
ecrit en WD12,15,16,.....23

je ne pense pas avoir perdi beaucoup de mails. ..

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 30 avril 2018 - 12:07
Bonjour,

Merci pour votre réponse mais elle ne m'apporte pas beaucoup d'éléments concrets.
Le but n'est pas d'éviter de perdre beaucoup de mails mais de ne pas en perdre du tout.

J'ai retourné ce problème en tout sens, ce que je ne comprends pas c'est que sur le site distant (Orange.fr) il m'est indiqué 25 mails à recevoir.
Lorsque je lance cette commande EmailNbMessage(LO_SessionFenetre) je reçois bien 25.
Jusque là tout va bien.

Par contre dans la boucle suivante :
POUR TOUT LO_Email DE LO_SessionFenetre
...
FIN
Je ne passe que 13 fois. (en l'état on perdrait 12 mails soit près de 50%)
J'ai vérifié sous débugger, j'ai identifié le mail qui posait problème. A la lecture sur la messagerie d'Orange il n'avait rien de particulier. Je l'ai transféré dans un autre dossier. Cette fois le traitement va jusqu'au bout.

Ma syntaxe respecte celle de la documentation. Qu'un mail pose souci je peux le comprendre, que cela provoque la sortie d'une boucle de traitement me semble difficilement acceptable.
Je vais essayer de refaire une boucle Pour i = 1 _A_ EmailNbMessage(LO_SessionFenetre) et lire les mails un par un. Par contre je me demande comment WinDev va réagir sur le mail ayant provoqué le blocage.

Dans votre soft perso quel traitement faites-vous ?
Membre enregistré
299 messages
Popularité : +16 (16 votes)
Posté le 08 mai 2018 - 23:32
Bonsoir,

Vu toute l'aide que j'ai reçue j'imagine que mon problème a intéressé beaucoup de monde.
Voici la solution que nous avons mise en place :

Nous avons écrit sous PHP un webservice qui interroge l'hébergeur de mails via IMAP, constitue un fichier XML avec les informations principales (date, émetteur, destinataire, sujet) et surtout l'UID.
Dans le projet WinDev le web service est intégré, il renvoie les informations et une boucle sur le fichier XML remplit un objet table.
L'UID est rangé dans une colonne cachée. Si l'utilisateur clique sur une ligne pour voir le mail dans son intégralité une commande EmailLitMessage toujours via IMAP et avec l'UID renvoie l'objet Email complet.

Les temps de réponse sont plus performants car on peut cette fois et avec cette solution charger les lignes d'information juste pour la page sur laquelle on est situé.
10 fois plus vite en quelque sorte...
Reste à faire des tests sur une utilisation soutenue.
Posté le 16 mai 2018 - 07:33
Bjr,

MICHEL a exposé le 30/04/2018 :
> Bonjour,

Le but n'est pas d'éviter de perdre beaucoup de mails mais de ne pas en
perdre du tout.


C'etait une facon de dire que je n'en perdais pas...

Par contre dans la boucle suivante :
POUR TOUT LO_Email DE LO_SessionFenetre
..
FIN
Je ne passe que 13 fois. (en l'état on perdrait 12 mails soit près de 50%)


Que fait ta boucle ? un sur deux, ca fait penser a une double
incrementation de la variable de parcours ...
Ou ne fais-tu pas de suppression pendant le POUR TOUT ?


Dans votre soft perso quel traitement faites-vous ?


Je traite une dizaine d'adresses mails de reception, dont une qui est
largement spammée puisque écrite en clair sur mon site, avec 2
Anti-spam perso aussi qui traitent plusieurs centaines de mails par
jour.
Si ca interesse qulqu'un je detaillerai les Anti-spam, ceux fournis par
les hebergeurs necessitant toujours une verification du dossier
Anti-spam me sont completement inutiles.

a plus

--
-------------------------------------------------------------
www.ctc-soft.com
Gestion biblo-documentaire (free-share)
Comptabilité shareware
Logiciels de Gestion de saisie terrain
Spécialisé Tournées de boulangers
-------------------------------------------------------------
Posté le 29 mai 2018 - 09:51
Bonjour,

Désolé de me manifester si tard, j'étais en congés.
Je serais vraiment intéressé par votre exemple.
Je ne pense pas revenir en arrière par rapport à la solution que j'ai mise en place mais je voudrais continuer à analyser ce problème.

Qu'est-ce que je dois faire ? Indiquer mon adresse mail ici ?