J'utilise CDO (Collaboration Data Objects) de Microsoft pour lire par programme des messages à partir d'une boîte aux lettres Outlook et enregistrer des pièces jointes d'images incorporées. J'essaye de faire ceci à partir de Python en utilisant les extensions Win32, mais des exemples dans n'importe quel langage utilisant CDO seraient utiles.Extraction d'images incorporées à partir d'Outlook Email
Jusqu'à présent, je suis ici ...
Le code Python suivant lira le dernier e-mail dans ma boîte aux lettres, imprimer les noms des pièces jointes et imprimer le corps du message:
from win32com.client import Dispatch
session = Dispatch('MAPI.session')
session.Logon('','',0,1,0,0,'exchange.foo.com\nbar');
inbox = session.Inbox
message = inbox.Messages.Item(inbox.Messages.Count)
for attachment in message.Attachments:
print attachment
print message.Text
session.Logoff()
Cependant, les noms de pièces jointes sont des choses comme: "zesjvqeqcb_chart_0". A l'intérieur de la source e-mail, je vois l'image liens source comme ceci: < IMG src = "cid: zesjvqeqcb_chart_0" >
Alors, est-il possible d'utiliser cette URL CID (ou autre) pour extraire l'image réelle et économisez -t-il localement?
différence
J'essaye ceux dans le code ci-dessus et cela ne fonctionne pas. Je ne vois pas cette méthode et cette propriété dans mon objet de pièce jointe. des idées? –
besoin d'utiliser GetDecodedContentStream J'ai modifié la réponse –
dans le code abocve, je reçois toujours "AttributeError: .GetDecodedContentStream" lorsque vous essayez d'appeler cette méthode. Il ne peut également pas voir la propriété FileName. Un conseil sur la façon d'utiliser cette interface à partir de mon code Python ci-dessus? –