Загрузите вложения Outlook с помощью MAPI python на основе даты, отправителя и темы сообщения - PullRequest
0 голосов
/ 20 декабря 2018

Я совершенно новичок в попытке загрузить вложения, используя MAPI, основываясь на дате, адресе электронной почты отправителя и строке темы.

Ниже приведен мой код:

import datetime 
from win32com.client import Dispatch
outlook = Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder("6")
all_inbox = inbox.Items
folders = inbox.Folders
val_date = datetime.date.today().strftime("%d-%m-&y")
today = msg.Senton.date() = val_date
inboxtime = all_inbox and today
email_sender = 'Email input here'
sub_today = 'Subject line input here'
att_today = 'attachment name input here'

for msg in inboxtime:
    if msg.SenderEmailType == "EX":
       if msg.Sender.GetExchangeUser().PrimarySmtpAddress.find(email_sender) != -1
           break
else:
       if msg.SenderEmailAddress.find(email_sender) != -1 and msg.Senton.date() == val_date:
          break
For att in msg.Attachments:
if att.FileName == att_today:
   break
try:
    att.SaveAsFile('D:\\' + att.FileName)
    print(True)
except:
    print(False)

Однако этониже показывает ошибку:

today= msg.Senton.date() == val_date
AttributeError: 'str' object has no attribute 'Senton'

Пожалуйста, помогите!

1 Ответ

0 голосов
/ 20 декабря 2018

Во-первых, это не MAPI - это объектная модель Outlook.Во-вторых, вы предполагаете, что в папке «Входящие» есть только MailItem объекты - но вы также можете иметь ReportItem, MeetingItem и т. Д. Сначала убедитесь, что у вас действительно есть объект MailItem - проверьте, если Class свойство == 43 (olMailItem)

...