Python win32com outlook 不断删除错误的附件

Python win32com outlook keeps removing the wrong attachment

提问人:BrA 提问时间:9/13/2023 更新时间:9/14/2023 访问量:31

问:

我有一个脚本,它应该根据特定类型的附件(比如说 .PDF)的存在来转发某些电子邮件。 我已经让它正确排序电子邮件,并且转发是完美的。唯一的问题是,当我尝试删除所述附件时,它会删除另一个附件。 我正在使用相同的 for 循环来识别附件,它确实可以识别我要删除的附件,但由于某种原因,索引 (???) 不再相同,它删除了不同的附件。 另外,我已经发现,当它删除时,它会自动更新附件索引

new_mail = message.Forward()
new_mail.To = '[email protected]'
attach_index=1

for attachment in attachments:        
        
        print("i can print the index correctly, and all the filename characteristic to select the one i want)

        if ***condition****:
            print('to remove...')
            new_mail.Attachments.Remove(attach_index)
        else:
            attach_index = attach_index+1

new_mail.Send()

在这种特殊情况下,我有一封电子邮件,其中包含 .pdf 、.txt 和签名中的图像,python 也将其识别为附件。我不停地输出“删除......”在正确的一个上,但删除另一个。 我做错了什么?请帮忙

Python Outlook 附件 Win32COM

评论

0赞 Itération 122442 9/13/2023
您的代码在第一次打印结束时缺少双引号。
0赞 BrA 9/15/2023
谢谢。这不是问题。这只是为了说明我的代码中当时有正确的信息

答:

0赞 Dmitry Streblechenko 9/14/2023 #1

使用 instead of - 这样你就不必处理任何索引了。Attachment.DeleteAttachments.Remove(index)

评论

1赞 BrA 9/15/2023
谢谢。起初,我注意到我的附件来自原始邮件,然后将其更改为新邮件。这在一定程度上起到了作用。但后来我发现了 Delete 并成功使用它。