Привет, я использую библиотеку win32com.client для чтения электронных писем из общего почтового ящика Outlook, и я получаю сообщение об ошибке: микросекунда должна быть в 0..999999. Я попытался отформатировать "ReceivedDate" как "% Y-% D-% M% H:% M:% S", но безуспешно. ты знаешь, что еще я могу попробовать?
Вопрос 2: я пытаюсь подсчитать, на сколько писем не ответил, но я не вижу свойства для этого в документации. Итак, я пошел с прочтением всех, у которых есть «FlagRequest», отмеченный как завершенный. У меня были бы представители go с этим процессом, чтобы узнать, были ли отправлены электронные письма.
import win32com.client
def readEmail():
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
folder = outlook.Folders.Item('SharedMailbox, TEST')
inbox = folder.Folders.Item('Inbox')
messages = inbox.Items
counter = 0
for message in messages:
rcvd_dt = message.ReceivedTime
if message.FlagRequest != 'Follow up' and str(rcvd_dt) >= '2020-06-01 00:00:00':
counter +=1
print(counter)
print(received_dt)
отслеживание:
Traceback (most recent call last):
File "C:/Users/TEST/PycharmProjects/TEST/Metrics.py", line 422, in <module>
main()
File "C:/Users/TEST/PycharmProjects/TEST/Metrics.py", line 409, in main
readEmail()
File "C:/Users/TEST/PycharmProjects/TEST/Metrics.py", line 89, in readEmail
rcvd_dt = message.ReceivedTime
File "C:\Program Files (x86)\Python37-32\lib\site-
packages\win32com\client\dynamic.py", line 516, in __getattr__
ret = self._oleobj_.Invoke(retEntry.dispid,0,invoke_type,1)
ValueError: microsecond must be in 0..999999
Что я пробовал:
rcvd_dt= datetime.strptime(str(rcvd_dt.split('.')[0], '%Y-%m-%d %H:%M:%S')
но получаю ошибку:
valueerror: time data '2' does not match format %Y-%m-%d %H:%M:%S.%f'
если я попробую:
rcvd_dt= datetime.strptime(str(rcvd_dt.split('.')[0], '%Y-%m-%d %H:%M:%S.%f')
я получаю:
valueerror: time data '2020-06-16 08:53:56' does not match format %Y-%m-%d.%f'