Comment identifier un mail qui est en lecture
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
- Comment télécharger un mail - Guide
- Publipostage mail - Accueil - Word
- Windows live mail - Télécharger - Mail
- Confirmation de lecture whatsapp - Guide
- Accusé de lecture gmail - Guide
5 réponses
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.
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/
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.
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 ..
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.
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é)
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.
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 : 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: 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.