You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Python 3.14调用Outlook实现邮件发送功能时遭遇pywintypes.com_error: (-2147467260, 'Operation aborted', None, None)错误的解决方法

解决Outlook自动化中的pywintypes.com_error: (-2147467260, 'Operation aborted')错误

我之前碰到过一模一样的问题,这个报错大概率是Outlook的安全机制拦截、后台进程异常或者权限不足导致的,给你几个实用的解决方向:

  • 清理Outlook残留进程后重启
    很多时候,就算你关闭了Outlook窗口,后台还是会残留异常的OUTLOOK.EXE进程,导致COM对象交互失败。打开任务管理器(按下Ctrl+Shift+Esc),找到所有名为OUTLOOK.EXE的进程,全部结束掉,然后重新打开Outlook,再运行你的脚本试试。

  • 调整Outlook的安全设置(测试用)
    Outlook默认会阻止自动化程序创建或发送邮件,这是它的安全策略。你可以临时调整设置来验证:

    1. 打开Outlook,点击「文件」→「选项」→「信任中心」→「信任中心设置」
    2. 进入「程序访问」页面,在「可疑程序活动警告」区域选择「从不警告我可疑活动」
    3. 另外,也可以在「宏设置」里选择「启用所有宏」

    注意:这两个设置都有一定安全风险,测试完成后记得改回默认的安全配置。

  • 以管理员身份运行你的Python脚本
    权限不足也会导致无法正常调用Outlook的COM接口。右键点击你的Python脚本,选择「以管理员身份运行」;或者打开命令提示符/终端时选择「以管理员身份运行」,再执行脚本命令。

  • 修改代码,直接创建新的Outlook实例
    你的代码里先尝试获取已激活的Outlook实例,但如果这个实例处于锁定、未登录或者异常状态,就会触发报错。可以直接改用Dispatch创建全新的实例:

    import win32com.client as win32
    def testEmail():
        # 直接创建新的Outlook应用实例
        outlook = win32.Dispatch("Outlook.Application")
        # 创建新邮件项
        mail = outlook.CreateItem(0) # 0代表邮件类型
        # 设置邮件属性
        mail.Subject = "Hello from Python!"
        mail.Body = "This is a test email sent using Python and Outlook."
        mail.To = "recipient@example.com" # 替换为实际收件人邮箱
        # 发送邮件
        mail.Send()
    testEmail()
    
  • 确认Outlook本身可以正常工作
    先手动在Outlook里发送一封测试邮件,确保你的邮箱账户配置正确、可以正常收发邮件。如果Outlook本身无法正常运行,自动化脚本肯定也会失败。

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

火山引擎 最新活动