尝试移动Outlook电子邮件时,无法将Python实例转换为COM对象
很抱歉,但是几天的冲浪,甚至是周围最黑暗的水域也没有提供答案 我可以阅读电子邮件,也可以创建新文件夹,但是当我尝试将它们标记为已读,或者尝试将它们移动到另一个文件夹时,我得到了这样一个“Python实例无法转换为COM对象” 我现在想知道这是否与Outlook的一些安全设置有关 代码如下:尝试移动Outlook电子邮件时,无法将Python实例转换为COM对象,python,winapi,outlook,Python,Winapi,Outlook,很抱歉,但是几天的冲浪,甚至是周围最黑暗的水域也没有提供答案 我可以阅读电子邮件,也可以创建新文件夹,但是当我尝试将它们标记为已读,或者尝试将它们移动到另一个文件夹时,我得到了这样一个“Python实例无法转换为COM对象” 我现在想知道这是否与Outlook的一些安全设置有关 代码如下: def __init__(self): self.inbox = self.Application.GetNamespace("MAPI").GetDefaultFolder(6)
def __init__(self):
self.inbox = self.Application.GetNamespace("MAPI").GetDefaultFolder(6)
self.MyFolder = self.inbox.Folders['TESTING']
messages = self.MyFolder.Items
for message in messages:
if message.UnRead:
try:
Found = False
for x in self.MyFolder.Folders:
if x.Name == Alarm.group(1):
Found = True
message.Move(Alarm.group(1))
break
except Exception as error:
print("Error: ", error)
if not Found:
print("NOT FOUND")
self.MyFolder.Folders.Add(Alarm.group(1))
message.Move(Alarm.group(1))
except AttributeError as ex:
print('Error: ', ex, 'message not processed', message)
MailItem.Move
将MAPIFolder
OOM对象的实例作为参数。您正在传递一些Python对象。文件夹的检索方式与您检索的方式类似。MyFolder将错误消息的完整回溯显示为问题中格式正确的文本。Python可能是与COM进行互操作的最差编程环境。是否所有使用COM的线程都已初始化到正确的单元中?你的STA线程发送消息吗?谢谢你,Dmitry,你是对的。以这种方式更改代码:对于self.MyFolder.Folders中的x:如果x.Name==Alarm.group(1):Found=True打印(“Found”)消息。Move(x)break可修复此问题,并将电子邮件发送到正确的文件夹。