PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Lecture d'un sous-dossier d'une session outlook
Lecture d'un sous-dossier d'une session outlook
Débuté par ylac, 11 sep. 2025 11:28 - 2 réponses
Posté le 11 septembre 2025 - 11:28
Bonjour, j'ai besoin de parcourir les mails d'un sous-dossier d'une messagerie outlook, et plus précisémment d'une boite partagée sur laquelle je ne peux pas faire de l'IMAP d'où l'utilisation d'une emailSessionOutlook.

Tout se passe bien jusqu'à ce que j'essaie de lire un mail où aussi bien emailrécupèreTout que emailLitEntetePremier ne donne pas de lecture. Pourtant, une fois positionné sur le sous-dossier, je compte bien un nombre de mails défini.

Quelqu'un aurait une idée? Merci.

nIDSessionOutlook est un entier
nIDSessionOutlook = EmailOuvreSessionOutlook(OutlookProfilDéfaut())
SI nIDSessionOutlook = 0 ALORS
tracerTraitement("Echec d'ouverture de la session Outlook", ErreurInfo())
SINON
sListeDossier = EmailListeDossier(nIDSessionOutlook, LstDossierTous)
tabEmailNonLus = EmailRécupèreTout(nIDSessionOutlook, ertEntete) // ici par défaut j'ai un tableau de X mails
POUR TOUTE chaîne sUnDossier de sListeDossier SEPAREE PAR RC
sNomDossier = ExtraitChaîne(sUnDossier, 1, TAB)
sTypeDossier = ExtraitChaîne(sUnDossier, 2, TAB)
SI sNomDossier = copieBaseCible.sNomBoiteCommande ALORS
SI EmailChangeDossier(nIDSessionOutlook, sNomDossier) = Vrai ALORS
NbEmail est un entier = EmailNbMessage(nIDSessionOutlook) // ici j'ai bien le nombre de mails du sous-dossier
EmailLitEntêtePremier(nIDSessionOutlook, MonMessage)
TANTQUE MonMessage.EnDehors = Faux // ici c'est enDehors donc je sors même si nbEmail > 0, idem si je fais tabEmailNonLus = EmailRécupèreTout(nIDSessionOutlook, ertEntete), le tableau compte 0 occurence
Membre enregistré
2 268 messages
Posté le 11 septembre 2025 - 14:20
Bonjour,

Voici l'exemple de l'Aide en ligne : https://doc.pcsoft.fr/fr-FR/index.awp?3032013 et https://doc.pcsoft.fr/fr-FR/?3032029&name=structure_email
// Lecture du premier email
EmailLitEntêtePremier(IDEmail)
SI Email.EnDehors = Faux ALORS
// Affiche l'email dans la fenêtre "FEN_Email_RCV"
Ouvre(FEN_Email_RCV)
FIN


Donc essaye d'utiliser le code "standard" :
EmailLitEntêtePremier(nIDSessionOutlook)
TANTQUE Email.EnDehors = Faux

--
Bon dev,
Jean-Pierre
Message modifié, 11 septembre 2025 - 14:21
Membre enregistré
2 268 messages
Posté le 11 septembre 2025 - 14:30
Bonjour,

Question connexe :
Code exemple trouvé dans : https://doc.pcsoft.fr/fr-FR/?3032018&name=emaillitentetesuivant_fonction
// Lecture du premier email
EmailLitEntêtePremier(IDEmail)
SI Email.EnDehors = Faux ALORS
// Affiche l'expéditeur et le sujet dans un champ Table
TableAjoute(TABLE_EmailRecus, Email.Expéditeur + TAB + Email.Sujet)
// Lecture de l'email suivant
EmailLitEntêteSuivant(IDEmail)
FIN

Ne devrait-il pas être :
// Lecture du premier email
EmailLitEntêtePremier(IDEmail)
TANTQUE Email.EnDehors = Faux
// Affiche l'expéditeur et le sujet dans un champ Table
TableAjoute(TABLE_EmailRecus, Email.Expéditeur + TAB + Email.Sujet)
// Lecture de l'email suivant
EmailLitEntêteSuivant(IDEmail)
FIN


--
Bon dev,
Jean-Pierre