如何遍历电子邮件及其附件Python Win32

时间:2019-03-13 15:00:30

标签: python-3.x outlook win32com

我正在尝试查找发送给特定人员的所有电子邮件(出于演示目的,为“ Andrew”),然后在此邮件中的每个邮件中都找到包含其名称字符串的附件(每个邮件中添加了多个附件)。

这是代码:

peopleInitials = ['XXX','YYY', 'ZZZ']
checkText = 'Andrew'
listalen = len(peopleInitials)

for message in messages:
     k = 0
     currentText = message.To     
     if checkText in currentText:
          for att in message.Attachments:
               attachmentName = att.FileName
               while k < listalen:
                    if peopleInitials[k] in attachmentName:
                         print('Atachment exists')
                         print(attachmentNames)
                    else: 
                         print('Attachment does not exist')
                         print(attachmentNames)
                    k = k + 1

它可以部分工作-通过电子邮件进行迭代,当它找到发给Andrew的邮件时,它会检查附件名称中是否包含“ XXX”,“ YYY”或“ ZZZ”。但是,它仅检查每封电子邮件的一个附件,而不会遍历所有附件。我究竟做错了什么?提前非常感谢

使用Outlook2016,Python 3.7和win32com

1 个答案:

答案 0 :(得分:1)

事实证明,该脚本实际上会遍历所有附件,但是在检查了第一个文件之后

k = listalen 

因此它不会检查其他文件。它适用于每个第一个附件,因为当脚本接收另一条消息时,k设置为0。所以我唯一要做的就是添加:

k = 0

之前:

while k < listalen: