我正在尝试查找发送给特定人员的所有电子邮件(出于演示目的,为“ 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
答案 0 :(得分:1)
事实证明,该脚本实际上会遍历所有附件,但是在检查了第一个文件之后
k = listalen
因此它不会检查其他文件。它适用于每个第一个附件,因为当脚本接收另一条消息时,k设置为0。所以我唯一要做的就是添加:
k = 0
之前:
while k < listalen: