在windows update获取此错误AttributeError:olEmbeddeditem之后

2024-09-30 01:36:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我在Windows10环境下安装了Python2.7,安装了win32com包219。在

我可以运行下面的代码,在excel中运行一个宏,并生成一个饼图,将附加(也嵌入电子邮件正文)到电子邮件和发送。 这个程序运行得很好,但是在一些windows更新之后,同样的情况是给AttributeError:olEmbeddeditem,我已经导入了win32com.客户端以及它的常数。在

希望在邮件正文中嵌入图像,所以用olByValue替换olEmbeddeditem等不会有帮助,我想,虽然我已经尝试过了,但也没有奏效。在

我也重新安装了python的win32com包,但是问题仍然存在。在

早期的工作代码不包括“from win32”com.客户端import constants”,然而,由于它不起作用,已经考虑添加这一行,但这也没有帮助。在

任何帮助都将不胜感激。在

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

Tags: importclientapplicationsysgifuserswin32comxxx
3条回答

问题的根本原因不是怀疑的Windows更新,而是因为收件箱中的一封群发邮件给出了错误。删除组邮件或移动到收件箱以外的文件夹后,问题得到解决。仍然不确定它给出错误的原因,以及确保此类电子邮件不会最终成为回溯的出路。在

而不是使用

attachment = newMail.Attachments.Add("C:\Users\xxx\Desktop\photo.gif", win32com.client.constants.olEmbeddeditem, 0, "photo")

你能做到的

^{pr2}$

此属性错误的主要原因是因为COM服务器已从后期绑定(动态)转移到早期绑定(静态)。在

删除Temp中的gen_py文件夹,它将把分派从静态恢复为动态,您的代码应该可以正常工作。在

相关问题 更多 >

    热门问题