Ситуация:
Я ежедневно получаю электронное письмо с вложением, но я не хочу постоянно сохранять его вручную, поэтому я сделал скрипт для его загрузки.
Я использую библиотеку Python win32com для запуска Outlook в фоновом режиме:
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
Скрипт находит последнее электронное письмо с вложением и сохраняет его.
Проблема:
Последнее вложение не сохраняется. Он всегда остается на одном и том же адресе электронной почты, как будто Outlook вообще не обновлялся. Это работает только в том случае, если я удаляю свой профиль Outlook и создаю новый. Любые идеи о причине такого поведения?
С уважением,
Доюно
КОД:
# -*- coding: utf-8 -*-
import datetime
import pandas as pd
import win32com.client
path = "C:\some\path"
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
def getfoldernum():
i = 1
for x in outlook.Folders:
if ('[email protected]' == str(x)):
print 'Found the Folder'
return i
else:
i += 1
def main():
foldernum = getfoldernum()
inbox = outlook.Folders.Item(foldernum).Folders('Inbox')
d = 0
w = 0
messages = inbox.Items
for msg in messages:
print msg.SentOn
if msg.Attachments:
attachments = msg.Attachments
for attachment in attachments:
if 'Attachment name' in str(attachment.FileName):
location = path + 'Archive\\Daily\\'+str(attachment.FileName)
attachment.SaveAsFile(location)
df = pd.read_excel(location)
if d == 0:
attachment.SaveAsFile(path+'filename.xlsx')
d = 1
else:
print 'Attachment not found or wrong name'
if __name__ == '__main__':
main()