从PST读取电子邮件时出现Pywin32异常“基础安全系统找不到您的数字ID名称”

2024-06-28 15:51:01 发布

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

我正试图确定这个问题是从哪里来的。绝大多数电子邮件都能够正确处理,不会出现任何错误。我到处寻找这个错误,我看到人们对outlook有问题,但不仅仅是从PST文件中提取

def enumerate_folders(FolderObj, mymode):

    for ChildFolder in FolderObj.Folders:
        enumerate_folders(ChildFolder, mymode)

    iterate_messages(FolderObj, mymode)


def iterate_messages(FolderObj, mymode):
    global mycounter2

    for item in FolderObj.Items:
        try:
            body_content = item.HTMLbody
            writeToFile(body_content, mypath)
            mycounter2 = mycounter2 + 1

        except AttributeError:
            pass

def writeToFile(messageHTML, path):
    global mycounter2
    filename = '\htmloutput' + str(mycounter2) + '.html'
    file = open(path + filename, "x")
    try:
        file.write(messageHTML)

    except UnicodeEncodeError:
        altText = str(messageHTML.encode('ascii', 'ignore'))
        file.write(altText)
        #print("Hit unicode error, trying alternate format at output " + str(mycounter2))


outlook.AddStore(pst)
PSTFolderObj = find_pst_folder(outlook, pst)
try:
    enumerate_folders(PSTFolderObj, whatmode)
except Exception as exc:
    print(exc)

Tags: fordef错误foldersfileoutlooktryexcept
1条回答
网友
1楼 · 发布于 2024-06-28 15:51:01

问题与用户Outlook加密证书有关,而与代码无关。这个问题源于一个用户最近更换了计算机,并且不再在计算机上拥有加密电子邮件的证书

当我在自己的Outlook中解包PST时,我发现了问题所在,并收到了与通过代码运行PST时完全相同的异常。这让我问他们是否能够在自己的Outlook实例中打开电子邮件,而他们却不能。然后他们解释说,他们最近换了电脑,电脑上不再有证书

一旦他们重新添加证书并再次导出PST,我们就能够通过应用程序成功地运行它

相关问题 更多 >