使用Python提取Outlook邮件时间戳 重复输出相同日期问题求助
问题排查与解决方案
问题根源
你将接收时间提取逻辑放在了循环外部,仅在遍历开始前获取了第一封邮件的接收日期,循环过程中没有更新receipt变量的取值,因此会反复输出同一个固定日期。
修正后代码
将接收时间的提取步骤移动到循环内部,每遍历到一封邮件就读取当前邮件的接收时间即可:
messages = ap.Items for message in messages: receipt = message.ReceivedTime.date() print(receipt)
额外优化建议
- 遍历前可以先对邮件集合按接收时间排序,避免输出顺序不符合预期:排序可调用
messages.Sort("[ReceivedTime]", True),第二个参数为True时按接收时间降序排列,为False时按升序排列。 - 遍历过程中可增加异常捕获逻辑,避免遇到格式异常的邮件导致脚本直接中断。
内容的提问来源于stack exchange,提问作者belewis6i
相关产品推荐
相关产品推荐

