PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2025 → Lecture fichier MSG
Lecture fichier MSG
Débuté par Arnaud, 18 mai 2026 16:54 - 7 réponses
Posté le 18 mai 2026 - 16:54
Bonjour,

Pour une application, je voudrai ouvrir un fichier MSG en dehors d'Outlook.
Est-ce qu'il est possible de le faire avec Windev dans une fenêtre ?
Je ne trouve rien sur le sujet.
Je vois qu'il est possible par contre de le faire avec un EML.

Merci d'avance
Membre enregistré
47 messages
Posté le 19 mai 2026 - 09:47
Bonjour

il existe un projet mis à disposition sur le site de dépot de PCsoft :
https://depot.pcsoft.fr/resource.awp…

il fonctionne très bien...

je l'avais testé mais je n'avais pas contacté la personne pour les sources.

Bonne journée
Posté le 20 mai 2026 - 11:13
t.dinh@silvera.fr a écrit :
Bonjour

il existe un projet mis à disposition sur le site de dépot de PCsoft :
https://depot.pcsoft.fr/resource.awp…

il fonctionne très bien...

je l'avais testé mais je n'avais pas contacté la personne pour les sources.

Bonne journée


Merci pour cette réponse.
J'ai mis un message sur le dépôt mais vu l'ancienneté de celui-ci je suis pas sur d'avoir une réponse.
Membre enregistré
1 072 messages
Posté le 20 mai 2026 - 12:24
Bonjour,
il y a une adresse mail dans la description.
Il serait judicieux d'envoyer un mail, la probabilité de réponse serait plus forte si l'adresse est encore valide.
Si réponse, merci de nous en tenir informés.

Cdlt
Membre enregistré
1 439 messages
Posté le 20 mai 2026 - 18:00
sans vérification


// Déclaration des objets OLE
oOutlook est un objet OLE dynamique
oMessage est un objet OLE dynamique

// 1. Connexion à l'application Outlook locale
oOutlook = ObjetActif("Outlook.Application")
SI oOutlook = Null ALORS
oOutlook = nvo ObjetOLE("Outlook.Application")
FIN

SI oOutlook = Null ALORS
Erreur("Microsoft Outlook n'est pas installé sur ce poste.")
RETOUR
FIN

// 2. Chargement du fichier .msg (Chemin complet requis)
sCheminFichierMSG est une chaîne = "C:\MonDossier\mon_email.msg"

QUAND EXCEPTIONEXCEPTION DANS
oMessage = oOutlook>>CreateItemFromTemplate(sCheminFichierMSG)
FAIRE
Erreur("Impossible de charger le fichier MSG : " + ExceptionInfo())
RETOUR
FIN

// 3. Extraction des données du message
sObjet est une chaîne = oMessage>>Subject
sExpediteur est une chaîne = oMessage>>SenderName
sDateEnvoi est une chaîne = oMessage>>SentOn
sCorpsTexte est une chaîne = oMessage>>Body // Texte brut
sCorpsHTML est une chaîne = oMessage>>HTMLBody // Texte au format HTML

// Affichage de test
Trace("Objet : " + sObjet)
Trace("De : " + sExpediteur)
Trace("Date : " + sDateEnvoi)

// 4. Extraction optionnelle des pièces jointes
i est un entier
Pour i = 1 À oMessage>>Attachments>>Count
oPJ est un objet OLE dynamique = oMessage>>Attachments(i)
// Sauvegarde de la pièce jointe dans un répertoire temporaire
oPJ>>SaveAsFile("C:\MonDossier\Export\" + oPJ>>FileName)
FIN

// 5. Libération des objets
Libérer oMessage
Libérer oOutlook


--
Bertin CARRIERE
SRL GDPR.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere www.binaire.be
Solution PEPPOL Belgique, Comptabilité Peppol LUCA
+32 (0)71 35.78.92

Repreneur d'activités
Membre enregistré
1 439 messages
Posté le 20 mai 2026 - 18:01
sans vérification


// Déclaration des objets OLE
oOutlook est un objet OLE dynamique
oMessage est un objet OLE dynamique

// 1. Connexion à l'application Outlook locale
oOutlook = ObjetActif("Outlook.Application")
SI oOutlook = Null ALORS
oOutlook = nvo ObjetOLE("Outlook.Application")
FIN

SI oOutlook = Null ALORS
Erreur("Microsoft Outlook n'est pas installé sur ce poste.")
RETOUR
FIN

// 2. Chargement du fichier .msg (Chemin complet requis)
sCheminFichierMSG est une chaîne = "C:\MonDossier\mon_email.msg"

QUAND EXCEPTIONEXCEPTION DANS
oMessage = oOutlook>>CreateItemFromTemplate(sCheminFichierMSG)
FAIRE
Erreur("Impossible de charger le fichier MSG : " + ExceptionInfo())
RETOUR
FIN

// 3. Extraction des données du message
sObjet est une chaîne = oMessage>>Subject
sExpediteur est une chaîne = oMessage>>SenderName
sDateEnvoi est une chaîne = oMessage>>SentOn
sCorpsTexte est une chaîne = oMessage>>Body // Texte brut
sCorpsHTML est une chaîne = oMessage>>HTMLBody // Texte au format HTML

// Affichage de test
Trace("Objet : " + sObjet)
Trace("De : " + sExpediteur)
Trace("Date : " + sDateEnvoi)

// 4. Extraction optionnelle des pièces jointes
i est un entier
Pour i = 1 À oMessage>>Attachments>>Count
oPJ est un objet OLE dynamique = oMessage>>Attachments(i)
// Sauvegarde de la pièce jointe dans un répertoire temporaire
oPJ>>SaveAsFile("C:\MonDossier\Export\" + oPJ>>FileName)
FIN

// 5. Libération des objets
Libérer oMessage
Libérer oOutlook


--
Bertin CARRIERE
SRL GDPR.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere www.binaire.be
Solution PEPPOL Belgique, Comptabilité Peppol LUCA
+32 (0)71 35.78.92

Repreneur d'activités
Posté le 27 mai 2026 - 16:24
Bertin - Zen-Project a écrit :
sans vérification


// Déclaration des objets OLE
oOutlook est un objet OLE dynamique
oMessage est un objet OLE dynamique

// 1. Connexion à l'application Outlook locale
oOutlook = ObjetActif("Outlook.Application")
SI oOutlook = Null ALORS
oOutlook = nvo ObjetOLE("Outlook.Application")
FIN

SI oOutlook = Null ALORS
Erreur("Microsoft Outlook n'est pas installé sur ce poste.")
RETOUR
FIN

// 2. Chargement du fichier .msg (Chemin complet requis)
sCheminFichierMSG est une chaîne = "C:\MonDossier\mon_email.msg"

QUAND EXCEPTIONEXCEPTION DANS
oMessage = oOutlook>>CreateItemFromTemplate(sCheminFichierMSG)
FAIRE
Erreur("Impossible de charger le fichier MSG : " + ExceptionInfo())
RETOUR
FIN

// 3. Extraction des données du message
sObjet est une chaîne = oMessage>>Subject
sExpediteur est une chaîne = oMessage>>SenderName
sDateEnvoi est une chaîne = oMessage>>SentOn
sCorpsTexte est une chaîne = oMessage>>Body // Texte brut
sCorpsHTML est une chaîne = oMessage>>HTMLBody // Texte au format HTML

// Affichage de test
Trace("Objet : " + sObjet)
Trace("De : " + sExpediteur)
Trace("Date : " + sDateEnvoi)

// 4. Extraction optionnelle des pièces jointes
i est un entier
Pour i = 1 À oMessage>>Attachments>>Count
oPJ est un objet OLE dynamique = oMessage>>Attachments(i)
// Sauvegarde de la pièce jointe dans un répertoire temporaire
oPJ>>SaveAsFile("C:\MonDossier\Export\" + oPJ>>FileName)
FIN

// 5. Libération des objets
Libérer oMessage
Libérer oOutlook


--
Bertin CARRIERE
SRL GDPR.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere www.binaire.be
Solution PEPPOL Belgique, Comptabilité Peppol LUCA
+32 (0)71 35.78.92

Repreneur d'activités


Merci cela fonctionne
Membre enregistré
1 439 messages
Posté le 09 juin 2026 - 12:20
sans utilisation de DLL externe il faut arrivé a décompresser la partie en LZFu pour obtenir le contenu en HTML sinon, on a le contenu en TXT

--
Bertin CARRIERE
SRL GDPR.Zen-Project.be
support@zen-project.be
www.zen-project.be www.linkedin.com/in/bertincarriere www.binaire.be
Solution PEPPOL Belgique, Comptabilité Peppol LUCA
+32 (0)71 35.78.92

Repreneur d'activités