#python #python-3.x #outlook
#питон #python-3.x #перспективы
Вопрос:
Я пытаюсь прочитать все электронные письма Outlook из определенной папки Outlook, и мой текущий код делает это, используя номер по умолчанию, присвоенный каждой папке в Outlook. Например, я узнал, что «6» означает «Входящие», а «16» означает «Черновики», и я использую 16 здесь, чтобы зациклить все электронные письма в моей папке черновиков.
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(16)
messages = inbox.Items
Но я хочу изменить свою исходную папку. Я хочу создать новую папку в моем Outlook и использовать ее в качестве исходной папки. Однако я не могу сказать, какой номер по умолчанию для новой папки, которую я создал, а это значит, что я не знаю, какой номер должен быть указан в Outlook.GetDefaultFolder() для использования новой папки. Есть ли какой-нибудь способ проверить номер новой папки по умолчанию в Outlook? Или я могу использовать имя папки вместо номера?
Я был бы признателен за любую помощь.
Ответ №1:
Если вы знаете, что папка находится в хранилище по умолчанию, вы можете выполнить детализацию, начиная с корневой папки:
folder = outlook.DefaultStore.GetRootFolder().Folders.Item("Inbox").Folders.Item("Inbox subfolder")
Если папка находится в хранилище, отличном от хранилища по умолчанию, сначала вам нужно найти хранилище по имени:
folder = outlook.Stores.Item("otheruser@domain.demo").GetRootFolder().Folders.Item("Inbox").Folders.Item("Inbox subfolder")
Ответ №2:
Вы можете использовать модуль glob
Вы можете выполнять поиск, сопоставлять и развертывать шаблоны
import glob
print(glob.glob("/home/adam/*.txt"))
и получите список типов файлов, которые вы ищете:
['/home/adam/file234.txt', '/home/adam/file235.txt', '/home/adam/file236.txt', .... ]