python-3.x - 如何检查电子邮件是否是对话的一部分?
问题描述
我们公司有一个客户服务 (CS) 流程,在客户报告我们的软件错误后,我们将收到一封电子邮件,说明他们的投诉主题为通用主题(“用户提交的错误”)和错误的简短描述。然后我们解决问题并通过电子邮件发送给客户。一个问题可能在我们的 CS 部门和客户之间来回发送 1 封或多封电子邮件。
我的 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
解决方案
推荐阅读
- r - R: Picking values from matrix by indice matrix
- vue.js - Vue Cli 根路由器仅在工作
- hiveql - hive 中分析函数的错误结果
- python - 在 python 中从单元测试用例为 reqparse.RequestParser 发送参数
- python - Tensorflow InvalidArgumentError:通过 Lambda 层对输入进行切片后的形状不兼容
- vuejs2 - 为什么我的 v-if 不起作用
- operating-system - h/w 和 s/w 中断的实现区别
- unit-testing - 失败的道具类型:提供给“组件”的“对象”类型的无效道具“iconBack”,测试文件中的预期“数字”
- php - PHP- ZipArchive 0 字节文件
- oracle - 如何以表格形式显示单个记录?