Работа над скриптом Py32 3 win32com.client, который ищет письма только от определенного отправителя и загружает 1 из нескольких вложений.
Проблема, с которой я столкнулся, заключается в том, что в тех случаях, когда электронное письмо имеет два вложения, оно пытается загрузить и переименовать оба, что перезаписывает первый файл, который я хочу, вторым вложением.
Вложение файла имеет определенное имя файла, но есть другое вложение с аналогичным именем.
Пока у меня есть:
import win32com.client
import os
mydesktop = os.path.expanduser('~') + '/Desktop/'
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
# Select main Inbox
inbox = outlook.GetDefaultFolder(6)
messages = inbox.Items
sender = 'mysender@domain'
MyDailyfolder = mydesktop + 'My Daily Data/'
try:
for message in messages:
msg_date = message.SentOn.strftime('%Y-%m-%d')
try:
s = message.sender
s = str(s)
if s == sender:
for att in message.Attachments:
if "Dashboard2_dashboard2" in att.FileName: #<---This doesn't work.
outfile_name2 = 'MycustomName' + msg_date + '.csv'
outfile_path2 = MyDailyfolder + outfile_name2
if not os.path.exists(MyDailyfolder): os.makedirs(MyDailyfolder)
# save file
att.SaveASFile(outfile_path2)
print('Saved file:', outfile_name2)
except:
x=1
except:
x=1
Результат загружает все вложенные файлы в электронное письмо в новую папку на моем рабочем столе, но перезаписывает каждую копию.Я пытаюсь выбрать только вложение, которое содержит "Dashboard2dashboard2" на нем.Я думаю, что я должен использовать «для части в msg.walk ():», но никогда раньше не использовал эту команду.Есть идеи?