основываясь на предыдущих комментариях и ответах относительно INTERNALDATE, вот фрагмент кода, который я использовал для извлечения поставленной даты и преобразования ее в объект datetime с помощью библиотеки imaplib:
>>> import imaplib
>>> connection = imaplib.IMAP4_SSL('yourimapserver')
>>> response = connection.login('youremailaddress', 'password')
>>> connection.select('INBOX')
>>> status, data = connection.fetch(b'1', '(INTERNALDATE)') # b"1" is your uid
Оттуда разные параметры в зависимости от:
- формата даты и времени, предоставляемого вашим сервером imap,
- от того, нужен ли вам объект с учетом часового пояса.
часовой пояс наивный
>>> import datetime
>>> import time
>>> data[0]
b'1 (INTERNALDATE "12-Aug-2020 16:38:19 +0200")'
>>> timestruct = imaplib.Internaldate2tuple(data[0])
>>> timestruct
time.struct_time(tm_year=2020, tm_mon=8, tm_mday=12,tm_hour=16, tm_min=38, tm_sec=19, tm_wday=2, tm_yday=225, tm_isdst=1)
>>> datetime_delivered = datetime.fromtimestamp(mktime(timestruct))
>>> datetime_delivered
datetime.datetime(2020, 8, 12, 16, 38, 19)
с учетом часового пояса (Python 3,2 +)
>>> import email
>>> str_datetime = data[0].decode().split('"')[1]
>>> str_datetime
"12-Aug-2020 16:38:19 +0200"
>>> timezone_aware = email.utils.parsedate_to_datetime(str_datetime)
>>> timezone_aware
datetime.datetime(2020,8, 12, 16, 38, 19, tzinfo=datetime.timezone(datetime.timedelta(seconds=7200)))