Всегда есть задачи, по которым вы можете задаться вопросом, как бы автоматически считывать электронную почту из Outlook и так же автоматически обрабатывать содержимое. Наиболее распространенный вариант использования - это автоматическая обработка вложений электронной почты. В этой статье я объясню вам, как использовать python для чтения электронной почты из Outlook и сохранения файлов вложений в указанную папку.
Нам нужно будет использовать библиотеку pywin32 . Убедитесь, что вы установили эту библиотеку и импортировали в свой скрипт:
import win32com.client
import os
from datetime import datetime, timedelta
Т.к. Outlook - это сторонняя программа нам в первую очередь нужно будет инициировать сеанс.
outlook = win32com.client.Dispatch('outlook.application')
mapi = outlook.GetNamespace("MAPI")
Папка "Входящие" в Outlook находится под индексом 6. Получаем объект папки "Входящие":
inbox = mapi.GetDefaultFolder(6)
Если у вас еще какие-либо подпапки и вам нужно считать письма от туда, тогда скрипт будет выглядеть так:
inbox = mapi.GetDefaultFolder(6).Folders["название вашей подпапки"]
Из объекта папки "Входящие" получим все сообщения:
messages = inbox.Items
Теперь сообщения можно перебирать в обычном цикле. Реализуем перебор сообщений с последующей выгрузкой вложений:
outputDir = r"C:\attachment"
try:
for message in list(messages):
try:
s = message.sender
for attachment in message.Attachments:
attachment.SaveASFile(os.path.join(outputDir, attachment.FileName))
print(f"attachment {attachment.FileName} from {s} saved")
except Exception as e:
print("error when saving the attachment:" + str(e))
except Exception as e:
print("error when processing emails messages:" + str(e))