В нашей компании есть процесс обслуживания клиентов (CS), в котором после того, как клиент сообщит об ошибке с нашим программным обеспечением, мы получим электронное письмо с жалобой на общую тему («Ошибка, отправленная пользователем») и краткое описание ошибки. Затем мы исправим проблему и отправим письмо клиенту. Проблема может иметь 1 или несколько электронных писем между нашим отделом CS и клиентом.
Мой скрипт Python использовал модуль win32com
, чтобы извлекать электронные письма из Outlook и помещать их в фрейм данных, каждая строка в качестве записи для уникальной сообщаемой ошибки. После прочтения (https://docs.microsoft.com/en-us/office/vba/api/outlook.mailitem.conversationid), я решил перейти к message.ConversationID
. Однако общая тема электронной почты означает, что иногда они группируют все несвязанные электронные письма вместе, делая ConversationID
не совсем таким уникальным или полезным для меня.
Может ли кто-нибудь дать мне руководство о том, как лучше всего решить эту проблему?
outlook = win32com.client.Dispatch('Outlook.Application').GetNamespace('MAPI')
def message_to_row(message, year, start_month, end_month): # Process each email into row of information
message_time = message.ReceivedTime
winrec_time = message.ReceivedTime
rec_time = pywintypes.Time(winrec_time)
rec_year = rec_time.year
rec_month = rec_time.month
rec_day = rec_time.day
rec_time_string = str(rec_time.hour) + ":" + str(rec_time.minute)
rec_time = format(datetime.datetime.strptime(rec_time_string, "%H:%M"), "%H:%M")
if rec_year >= year:
if rec_month in range(start_month, end_month):
convo_id = message.ConversationID
message_body = message.body.replace("_", " ")
row = [convo_id, rec_year, rec_month,
rec_day, rec_time, message_body]
return row