Comment identifier un mail qui est en lecture
Fermé
Enygma
-
Modifié le 7 févr. 2022 à 16:55
mamiemando Messages postés 33567 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 11 mars 2025 - 9 févr. 2022 à 12:22
mamiemando Messages postés 33567 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 11 mars 2025 - 9 févr. 2022 à 12:22
Salut tout le monde !
En ce moment je bosse sur un projet qui consiste a récupérer le mail qui est en train d'être lu par l'utilisateur.
Lorsque l'utilisateur (moi) clique sur l'icone symbolisant mon programme, le programme récupère le mail Outlook affiché à l'écran.
Pour faire ça j'ai notamment utiliser la bibliothèque IMAPLIB et EMAIL pour récupérer tout les mails non lus présent dans la boîte mails, toutefois cette méthode n'est pas assez précise (elle ne permet pas de récupérer le mail si convoité).
Je me suis donc tourner vers l'API REST de Outlook pour voir si je trouvais quelque chose, mais je n'est malheureusement rien trouver de très intéressant...
Si quelqu'un a une idée sur la manière de solutionner mon problème je suis preneur!
En ce moment je bosse sur un projet qui consiste a récupérer le mail qui est en train d'être lu par l'utilisateur.
Lorsque l'utilisateur (moi) clique sur l'icone symbolisant mon programme, le programme récupère le mail Outlook affiché à l'écran.
Pour faire ça j'ai notamment utiliser la bibliothèque IMAPLIB et EMAIL pour récupérer tout les mails non lus présent dans la boîte mails, toutefois cette méthode n'est pas assez précise (elle ne permet pas de récupérer le mail si convoité).
Je me suis donc tourner vers l'API REST de Outlook pour voir si je trouvais quelque chose, mais je n'est malheureusement rien trouver de très intéressant...
Si quelqu'un a une idée sur la manière de solutionner mon problème je suis preneur!
A voir également:
- Comment identifier un mail qui est en lecture
- Yahoo mail - Accueil - Mail
- Publipostage mail - Accueil - Word
- Confirmation de lecture whatsapp - Guide
- Windows live mail - Télécharger - Mail
- Comment télécharger un mail - Guide
5 réponses
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 922
Modifié le 6 févr. 2022 à 19:46
Modifié le 6 févr. 2022 à 19:46
Bonjour,
Dans un premier temps il faudrait récupérer l'id du message ciblé via l'url dans la barre d'adresse du navigateur.
Dans un deuxième temps il faudrait envoyer une requête à l'API avec l'identifiant de message pour pouvoir récupérer le message ciblé.
Dans un premier temps il faudrait récupérer l'id du message ciblé via l'url dans la barre d'adresse du navigateur.
Dans un deuxième temps il faudrait envoyer une requête à l'API avec l'identifiant de message pour pouvoir récupérer le message ciblé.
Bonsoir barnabe0057,
Merci pour ta réponse, toutefois j'aimerais récupérer le mail sur le logiciel Outlook et non sur le site internet.
Merci pour ta réponse, toutefois j'aimerais récupérer le mail sur le logiciel Outlook et non sur le site internet.
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
4 922
Modifié le 6 févr. 2022 à 20:00
Modifié le 6 févr. 2022 à 20:00
Tu veux le récupérer sous quel format ?
Quelle version d'Outlook utilises-tu ?
Ceci devrait t'aider : https://www.codetwo.com/kb/messageid/
Quelle version d'Outlook utilises-tu ?
Ceci devrait t'aider : https://www.codetwo.com/kb/messageid/
Enygma
>
barnabe0057
Messages postés
14454
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
30 novembre 2024
7 févr. 2022 à 14:22
7 févr. 2022 à 14:22
Idéalement j'aimerais récupérer tout le corps du mail (texte, pièce jointe...), comme simple str qui serais stocké dans une variable pour pouvoir ensuite traiter les informations récolter.
J'utilise actuellement la dernière version d'Outlook à savoir la version de 2021.
Merci je vais regarder ça ce soir.
J'utilise actuellement la dernière version d'Outlook à savoir la version de 2021.
Merci je vais regarder ça ce soir.
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 mars 2025
4 741
6 févr. 2022 à 23:01
6 févr. 2022 à 23:01
Bonjour,
En VBA ( et /ou avec tout langage permettant de manipuler le DDE ), sur les anciennes versions d'outlook (et sûrement celles d'aujourd'hui aussi ) tu pouvais utiliser un truc du genre :
pour "récupérer" l'email en cours de lecture.
A voir ce que tu peux faire avec ensuite ..
En VBA ( et /ou avec tout langage permettant de manipuler le DDE ), sur les anciennes versions d'outlook (et sûrement celles d'aujourd'hui aussi ) tu pouvais utiliser un truc du genre :
Dim currentMail As Outlook.MailItem Set currentMail = Application.ActiveInspector.currentItem
pour "récupérer" l'email en cours de lecture.
A voir ce que tu peux faire avec ensuite ..
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 mars 2025
4 741
>
Enygma
7 févr. 2022 à 16:25
7 févr. 2022 à 16:25
yg_be
Messages postés
23487
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 mars 2025
1 570
7 févr. 2022 à 22:53
7 févr. 2022 à 22:53
bonjour jordane,
je me demande si cet Application.ActiveInspector.currentItem n'exige pas de tourner dans l'application Outlook elle-même.
Ou peut-être dans une instance Outlook démarrée par le VBA.
Ici, Enygma souhaite interagir avec une instance Outlook indépendante du code VBA.
Je me demande dans quelle mesure une instance Outlook démarrée par un utilisateur va accepter d'être manipulée par du code VBA tournant dans une application démarrée ensuite.
je me demande si cet Application.ActiveInspector.currentItem n'exige pas de tourner dans l'application Outlook elle-même.
Ou peut-être dans une instance Outlook démarrée par le VBA.
Ici, Enygma souhaite interagir avec une instance Outlook indépendante du code VBA.
Je me demande dans quelle mesure une instance Outlook démarrée par un utilisateur va accepter d'être manipulée par du code VBA tournant dans une application démarrée ensuite.
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 mars 2025
4 741
>
yg_be
Messages postés
23487
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 mars 2025
Modifié le 7 févr. 2022 à 23:22
Modifié le 7 févr. 2022 à 23:22
Non.
Je ne lui ai pas conseillé d'utiliser du VBA mais de sens inspirée pour coder via les interface com.
C'est le principe des interfaces com ou dde.
On peut les manipuler depuis à langage externe.
À l'époque j'ai eu à coder différents script ( en autoit et/ou en c# ) pour manipuler Outlook ou Lotus notes ou excel ou des progiciels divers..
Les interfaces com et dde permettaient d'accéder aux fonctionnalités de c'est logiciel sans avoir à simuler des éventuels clics ou appuis sur clavier.
Et dans 99 % des cas, la syntaxe utilisée et très très proche de langage interne de ces logiciel le VBA pour les applications Microsoft le lotus script pour Lotus notes ...etc...
Il existe même un utilitaire qui permet d'avoir la liste des différentes interface comme des logiciel installé sur ton ordinateur.
(Par contre je n'ai plus son nom désolé)
Je ne lui ai pas conseillé d'utiliser du VBA mais de sens inspirée pour coder via les interface com.
C'est le principe des interfaces com ou dde.
On peut les manipuler depuis à langage externe.
À l'époque j'ai eu à coder différents script ( en autoit et/ou en c# ) pour manipuler Outlook ou Lotus notes ou excel ou des progiciels divers..
Les interfaces com et dde permettaient d'accéder aux fonctionnalités de c'est logiciel sans avoir à simuler des éventuels clics ou appuis sur clavier.
Et dans 99 % des cas, la syntaxe utilisée et très très proche de langage interne de ces logiciel le VBA pour les applications Microsoft le lotus script pour Lotus notes ...etc...
Il existe même un utilitaire qui permet d'avoir la liste des différentes interface comme des logiciel installé sur ton ordinateur.
(Par contre je n'ai plus son nom désolé)
yg_be
Messages postés
23487
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 mars 2025
1 570
>
jordane45
Messages postés
38454
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 mars 2025
8 févr. 2022 à 11:22
8 févr. 2022 à 11:22
Je pensais que cela ne permettait de manipuler que des instances de logiciel démarrés dans ce contexte, pas des instances indépendantes.
Que, si l'utilisateur a démarré une instance Word pour y travailler interactivement, il n'était pas possible, via du VBA en Excel, de manipuler cette instance de Word.
Que, si l'utilisateur a démarré une instance Word pour y travailler interactivement, il n'était pas possible, via du VBA en Excel, de manipuler cette instance de Word.
mamiemando
Messages postés
33567
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
11 mars 2025
7 833
7 févr. 2022 à 16:58
7 févr. 2022 à 16:58
Bonjour,
Avant d'aller plus avant, peux-tu nous en dire un peu plus sur ton projet ? Quel est son but final ?
De plus il paraît assez étonnant de se focaliser sur un client mail particulier sachant que de nos jours beaucoup de gens utilise soit un webmail, soit un autre client mail (e.g. thunderbird ou une autre version d'outlook).
Ensuite, à moins que le client mail concerné n'offre une API pour voir quel email est sélectionné, je ne vois pas trop comment tu peux t'en sortir proprement.
Bonne chance
Avant d'aller plus avant, peux-tu nous en dire un peu plus sur ton projet ? Quel est son but final ?
De plus il paraît assez étonnant de se focaliser sur un client mail particulier sachant que de nos jours beaucoup de gens utilise soit un webmail, soit un autre client mail (e.g. thunderbird ou une autre version d'outlook).
Ensuite, à moins que le client mail concerné n'offre une API pour voir quel email est sélectionné, je ne vois pas trop comment tu peux t'en sortir proprement.
Bonne chance
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonsoir mamiemando,
Oui bien-sur ! Alors mon but final est de pouvoir automatiser la récupération de mails "important".
C'est a dire lorsque l'utilisateur juge qu'un mail est important il clique sur l'icone de mon programme pour que celui récupérer le mail susnommé et traite les informations afin qu'elles puissent être stocké.
Pour être parfaitement honnête, j'ai déjà réussie a automatiser Gmail en récupérant l'ID du mail dans l'url, et je pense que c'est deux gros client mail vont être largement suffisant pour l'utilisation que je vais en faire.
Oui bien-sur ! Alors mon but final est de pouvoir automatiser la récupération de mails "important".
C'est a dire lorsque l'utilisateur juge qu'un mail est important il clique sur l'icone de mon programme pour que celui récupérer le mail susnommé et traite les informations afin qu'elles puissent être stocké.
Pour être parfaitement honnête, j'ai déjà réussie a automatiser Gmail en récupérant l'ID du mail dans l'url, et je pense que c'est deux gros client mail vont être largement suffisant pour l'utilisation que je vais en faire.
yg_be
Messages postés
23487
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 mars 2025
1 570
9 févr. 2022 à 10:06
9 févr. 2022 à 10:06
Outlook, pour toi, c'est le logiciel ou le site web?
mamiemando
Messages postés
33567
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
11 mars 2025
7 833
>
yg_be
Messages postés
23487
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 mars 2025
9 févr. 2022 à 11:50
9 févr. 2022 à 11:50
@yg_be : voir message #2, le client lourd, pas le webmail
@Enygma :
Ok merci pour ces précisions. Je repartirais de cet exemple qui suit la suggestion de jordane45 (message #7). * Lien vers la documentation de pywin32
De ce que je crois comprendre, pywin32 enveloppe essentiellement des fonctions windows (e.g. DDE, etc.) donc j'imagine que si tu trouves des exemples qui font plus ou moins ce que tu veux en C/C# (comme par exemple cet exemple), tu devrais retrouver tes petits dans la doc de pywin32 (enfin peut-être :p).
Bonne chance
@Enygma :
Ok merci pour ces précisions. Je repartirais de cet exemple qui suit la suggestion de jordane45 (message #7). * Lien vers la documentation de pywin32
De ce que je crois comprendre, pywin32 enveloppe essentiellement des fonctions windows (e.g. DDE, etc.) donc j'imagine que si tu trouves des exemples qui font plus ou moins ce que tu veux en C/C# (comme par exemple cet exemple), tu devrais retrouver tes petits dans la doc de pywin32 (enfin peut-être :p).
Bonne chance
yg_be
Messages postés
23487
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 mars 2025
1 570
>
mamiemando
Messages postés
33567
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
11 mars 2025
9 févr. 2022 à 12:11
9 févr. 2022 à 12:11
Je pense que le code suggéré ne fonctionne que s'il est démarré dans l'instance Outlook, pas dans un autre programme.
mamiemando
Messages postés
33567
Date d'inscription
jeudi 12 mai 2005
Statut
Modérateur
Dernière intervention
11 mars 2025
7 833
>
yg_be
Messages postés
23487
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
10 mars 2025
Modifié le 9 févr. 2022 à 12:23
Modifié le 9 févr. 2022 à 12:23
@yg_be: je ne connais pas suffisamment windows pour être catégorique, mais pense que c'est justement prévu pour marcher à l'extérieur d'outlook (voir ce lien).
La méthode GetApplicationObject utilise les classes de la bibliothèque de classes .NET Framework pour vérifier et obtenir les processus Outlook s’exécutant sur l’ordinateur local
Dans ma compréhension, c'est un peu la même idée que dbus sous linux, ça permet de faire inter-opérer des applications entre elles, mais peut-être que j'ai mal compris.
La méthode GetApplicationObject utilise les classes de la bibliothèque de classes .NET Framework pour vérifier et obtenir les processus Outlook s’exécutant sur l’ordinateur local
Dans ma compréhension, c'est un peu la même idée que dbus sous linux, ça permet de faire inter-opérer des applications entre elles, mais peut-être que j'ai mal compris.