Форум сайта python.su
0
Доброго времени суток!
Прошу помочь!
Есть код, который извлекает из OutLook требуемое вложение: но я не могу понять, как задать дату входящего письма из которого требуется извлечь вложение. Код нашел на просторах интернета. В данный момент код извлекает вложение на одну и ту же дату месячной давности.
PythonВыделить код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import win32com.client
from win32com.client import Dispatch
import datetime as date
import os.path
def attach(subject,name):
outlook = Dispatch(“Outlook.Application”).GetNamespace(“MAPI”)
inbox = outlook.GetDefaultFolder(“6”).Folders.Item(“Продажи”)
all_inbox = inbox.Items
val_date = date.date.today()
sub_today = subject
att_today = name
for msg in all_inbox:
if msg.Subject == sub_today:
break
for att in msg.Attachments:
if att.FileName == att_today:
break
att.SaveASFile(os.path.join(Путь, имя файла))
print (“Mail Successfully Extracted”)
Офлайн
61
date.date.today() говорит что если тема письма или название вложения соответствует дате сегодняшней - игнорировать в остальном - извлекать.
Думаю он извлекает все но просто перезатирает один и тот же файл в итоге вы видите последнее вложение каждый раз.
А если вызывать функцию
def attach(subject,name)
то в нее нужно передать имя и тему.
В любом случае код коряв и далеко не соответсвтует вашей задаче.
Но его вполне достатточно то бы выполнить вашу задачу - немного нужно лишь поменять логику.
И научитесь правильно офрмлять код - а то читать ето больно для нервов.
Офлайн