Как использовать exchangengelib для получения почты для папок, не входящих в почтовый ящик

Я хочу получать почту для папок, не входящих в почтовый ящик - как я могу это сделать?

Я могу получить электронные письма из папки «Входящие» следующим образом:

from exchangelib import DELEGATE, Account, Credentials, EWSDateTime

creds = Credentials(
    username='xxx.test.com\test',
    password='123456')
account = Account(
    primary_smtp_address='[email protected]',
    credentials=creds,
    autodiscover=True,
    access_type=DELEGATE)

# Print first 100 inbox messages in reverse order
for item in account.inbox.all().order_by('-datetime_received')[:100]:
    # print(item.subject, item.body, item.attachments)
    print(item.subject)

Раздача:

hahaha
heiheihei
pupupu
bibibib
........

И когда я получаю свои папки:

from exchangelib.folders import Messages

for f in account.folders[Messages]:
    print f

Messages (aaa)
Messages (bbb)
Messages (ccc)

Как я могу получить электронные письма из папки ccc с помощью Python?


person 王胖胖    schedule 07.02.2018    source источник


Ответы (2)


Взгляните на параметры навигации по папкам в последних версиях exchangelib: https://github.com/ecederstrand/exchangelib#folders

Вы можете распечатать всю структуру папок следующим образом:

print(account.root.tree())

а затем перейдите к определенной папке, используя тот же синтаксис, что и pathlib:

some_other_folder = account.inbox / 'some_inbox_subfolder'
# Or:
some_other_folder = account.root / 'some' / 'other' / 'path'
for item in some_other_folder.all().order_by('-datetime_received')[:100]:
    print(item.subject)
person Erik Cederstrand    schedule 07.02.2018

Вы можете сделать только для дочерних папок входящих сообщений:

for subfolder in account.inbox.children:
    for emailz in subfolder.all().only('subject','attachments','datetime_sent').order_by('-datetime_received'):
        #do your thing

Или все корневые дочерние папки:

for subfolder in account.root.children:
    for emailz in subfolder.all().only('subject','attachments','datetime_sent').order_by('-datetime_received'):
        #do your thing
person Hugo Vares    schedule 09.04.2019