You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用win32com操作Outlook时DateAdd赋值FlagDueBy报错如何解决

错误原因

DateAdd是VBA内置的日期运算函数,仅在VBA环境中可用,Python的win32com.client模块本身没有封装该方法,因此直接调用会抛出AttributeError报错。

解决方案

使用Python标准库datetime计算目标日期直接赋值即可,Outlook可以正常识别Python的日期类型,无需调用VBA函数:

  • 若仅需要设置日期:用datetime.date.today()获取当前日期,加上datetime.timedelta(days=3)即可得到3天后的日期
  • 若需要同时设置时间:替换为datetime.datetime.now()即可

修正后的完整代码如下:

import win32com.client as win32
import datetime

outlook = win32.Dispatch('outlook.application')
mail = outlook.CreateItem(0)
#attachment1 = "x:\\report.htm"
attachment1 = "c:\\installAgent.log"
mail.Attachments.Add(Source=attachment1)
mail.To = "obama@hotmail.com"
mail.Subject = "test"
mail.HtmlBody = '<h2>HTML Message body</h2>' # 该字段为可选字段
mail.FlagRequest = "Follow up"
# 直接用Python原生方法计算3天后的日期
mail.FlagDueBy = datetime.date.today() + datetime.timedelta(days=3)
mail.Display(True)

内容的提问来源于stack exchange,提问作者Gergo Peltz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 16:06:04