2017-06-08 3 views
1

Je développe un script Python pour créer un AppointmentItem simple et l'envoyer à certains destinataires en utilisant la bibliothèque win32com. J'ai trouvé toute la documentation et quelques exemples de VBA dans ce lien: https://msdn.microsoft.com et tout semble clair et bien exposé. Mais, dans mon script, bien que le AppointmentItem soit créé et que les destinataires soient résolus, je ne peux pas l'envoyer. Ce qui suit est juste un exemple de comment regarde le code.Envoyer un AppointmentIthem avec la bibliothèque python win32com

outlook = win32com.client.Dispatch("Outlook.Application") 
ns = outlook.GetNamespace("MAPI") 
ns.Logon(profilename) 

App = outlook.CreateItem(1) 
App.Subject = "subject" 
App.Body = "Meeting" 
App.Location = "München" 

App.Recipients.Add(recipient) 
App.Recipients.ResolveAll() 

App.Send() 

Dois-je nécessairement avoir un compte Exchange? Y a-t-il une solution de contournement pour éviter ce problème? Je peux envoyer un courrier électronique normal en utilisant cette bibliothèque en utilisant:

Msg = outlook.CreateItem(0) 

au lieu de créer un rendez-vous (quatrième ligne). J'ai essayé, pour cette raison, d'envoyer un email avec le rendez-vous en pièce jointe, mais dans l'email il n'y a pas de pièce jointe.

Répondre

1

J'ai trouvé la solution et je voudrais l'afficher, afin d'aider quelqu'un d'autre, qui pourrait en avoir besoin.

Il suffit d'une ligne de code supplémentaire. Le rendez-vous devrait être changé en une réunion.

outlook = win32com.client.Dispatch("Outlook.Application") 
ns = outlook.GetNamespace("MAPI") 
ns.Logon(profilename) 

App = outlook.CreateItem(1) 
App.Subject = "subject" 
App.Body = "Meeting" 
App.Location = "München" 

App.MeetingStatus = 1 
App.Recipients.Add(recipient) 
App.Recipients.ResolveAll() 

App.Send()