使用Office365-REST-Python-Client获取邮件收发日期报错解决
解决Office365-REST-Python-Client获取邮件接收日期的AttributeError问题
问题原因
Office365-REST-Python-Client库会自动将Graph API的驼峰式字段名(如receivedDateTime)转换为Python风格的蛇形命名(received_date_time),直接调用message.receivedDateTime会触发属性不存在的错误。
解决方案
方案1:使用蛇形命名属性
修改代码中获取接收日期的行,替换为蛇形命名的属性:
email = { "Subject": message.subject, "Sender": f"{message.sender.emailAddress.name} <{sender_email}>", "Body": parse_html_to_json(message.body.content), "Attachments": [], "Date": message.received_date_time, # 替换为蛇形命名 }
方案2:直接通过字段键获取
如果不确定命名转换规则,可使用get_property方法直接指定API原生字段名:
email = { "Subject": message.subject, "Sender": f"{message.sender.emailAddress.name} <{sender_email}>", "Body": parse_html_to_json(message.body.content), "Attachments": [], "Date": message.get_property('receivedDateTime'), # 直接调用API字段名 }
可选验证步骤
若仍有问题,可先打印邮件对象的所有已获取属性,确认字段是否被正确拉取:
for message in messages: print(message.properties) # 输出所有已加载的属性
内容的提问来源于stack exchange,提问作者geno8771
相关产品推荐
相关产品推荐

