2017-01-06 2 views
0

Ich habe Windows 10 Umgebung mit Python 2.7, win32com Paket 219 installiert ist.Nachdem Windows Update diesen Fehler bekommen AttributeError: olEmbeeditem

Ich konnte unter Code ausführen, der ein Makro in Excel ausführt und ein Tortendiagramm generiert, das an E-Mail gesendet und gesendet wird (auch in E-Mail-Körper eingebettet werden). Dieses Programm funktionierte gut, früher, aber nach einigen Windows-Updates, das gleiche gibt AttributeError: olEmbedded, ich habe win32com.client und seine Konstante importiert.

Willst du das eingebettete Bild in den E-Mail-Körper, so ersetzen olEmbeddedItem mit olByValue usw. nicht helfen, denke ich, obwohl ich versucht habe, die auch nicht funktioniert hat.

Ich habe auch Neuinstallation von Win32com-Paket von Python gemacht, jedoch Problem bestehen.

Früherer funktionierender Code nicht enthalten "von win32com.client Import Konstanten", aber da es nicht funktionierte, habe gedacht, diese Zeile hinzuzufügen, aber das hat auch nicht geholfen.

Jede Hilfe wäre willkommen.

import sys 
import os 
import win32com.client 
import codecs 
from win32com.client import constants 

sys.stdout = codecs.getwriter("iso-8859-1")(sys.stdout, 'xmlcharrefreplace') 
outlook =  win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI") 
inbox = outlook.GetDefaultFolder(6) 
all_inbox = inbox.Items 
folders = inbox.Folders 

olMailItem = 0x0 
obj = win32com.client.Dispatch("Outlook.Application") 
xlApp = win32com.client.Dispatch("Excel.Application") 
ExcelWorkBook =  xlApp.Workbooks.Open('C:\Users\xxx\Desktop\data.xlsm') 
xlSheet1 = ExcelWorkBook.Sheets("Sheet1") 
xlApp.Application.Run("data.xlsm!Macro1") 
chart1 = xlSheet1.ChartObjects(1) 
chart1.Chart.Export("C:\Users\xxx\Desktop\photo.gif", "GIF", False) 
xlApp.Workbooks(1).Close(SaveChanges=0) 
xlApp.Application.Quit() 
newMail = obj.CreateItem(olMailItem) 
newMail.Subject = "Presentation of Automation" 
attachment = newMail.Attachments.Add("C:\Users\xxx\Desktop\photo.gif", win32com.client.constants.olEmbeddeditem, 0, "photo") 
imageCid = "photo.gif" 
attachment.PropertyAccessor.SetProperty("http://schemas.microsoft.com/mapi/proptag/0x3712001E", imageCid) 
newMail.HTMLBody = "<body>Dear Sir,Madam,<br>Please find the requested details.<br><br><p><img src=\"cid:{0}\"></body>".format(imageCid) 
newMail.To = x 
attachment1 = "C:\Users\xxx\Desktop\photo.gif" 
newMail.Attachments.Add(attachment1) 
newMail.Send() 
os.remove("C:\Users\xxx\Desktop\photo.gif") 
msg.UnRead = False 
+0

Bitte zeigen Sie die detaillierte Ausnahme, die Sie erhalten, einschließlich Zeilennummer (die Sie in Ihrem Code markieren sollten, nur um klar zu sein) – Schollii

+0

@Schollii, finden Sie die Ausnahme, die ich bekam. 'Traceback (jüngste Aufforderung zuletzt): Datei "C: \ Benutzer \ xxx \ Desktop \ abc.py", Zeile 21, in x = msg.Sender.GetExchangeUser() PrimarySmtpAddress Attribute:.' NoneType 'Objekt hat kein Attribut' PrimarySmtpAddress ' ' – MSY

Antwort

0

Die Ursache des Problems war kein Update Windows als vermutet, aber wegen einer Gruppe E-Mail im Posteingang war es, die den Fehler gab. Nach dem Löschen dieser Gruppen-E-Mail oder dem Verschieben in einen anderen Ordner als Inbox wurde das Problem behoben. Ich bin immer noch nicht sicher über den Grund, warum es den Fehler gegeben hat und was der Ausweg ist, um sicherzustellen, dass solche E-Mails nicht zu einer Rückverfolgung führen.

Verwandte Themen