尝试移动Outlook电子邮件时,无法将Python实例转换为COM对象

尝试移动Outlook电子邮件时,无法将Python实例转换为COM对象,python,winapi,outlook,Python,Winapi,Outlook,很抱歉,但是几天的冲浪,甚至是周围最黑暗的水域也没有提供答案 我可以阅读电子邮件,也可以创建新文件夹,但是当我尝试将它们标记为已读,或者尝试将它们移动到另一个文件夹时,我得到了这样一个“Python实例无法转换为COM对象” 我现在想知道这是否与Outlook的一些安全设置有关 代码如下: def __init__(self): self.inbox = self.Application.GetNamespace("MAPI").GetDefaultFolder(6)

很抱歉,但是几天的冲浪,甚至是周围最黑暗的水域也没有提供答案

我可以阅读电子邮件,也可以创建新文件夹,但是当我尝试将它们标记为已读,或者尝试将它们移动到另一个文件夹时,我得到了这样一个“Python实例无法转换为COM对象”

我现在想知道这是否与Outlook的一些安全设置有关

代码如下:

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可修复此问题,并将电子邮件发送到正确的文件夹。