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

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

解决Outlook自动化创建邮件时的pywintypes.com_error: (-2147467260)错误

这个错误我之前开发邮件自动化脚本时也踩过坑,本质是Outlook的安全机制拦截了Python程序的自动化操作,给你几个实测有效的解决方向:

1. 调整Outlook的安全信任设置

Outlook默认会阻止未经授权的第三方程序操作邮件,你可以按以下步骤修改临时放宽限制:

  • 打开Outlook,点击「文件」→「选项」→「信任中心」→「信任中心设置」
  • 进入「宏设置」,临时选择「启用所有宏(不推荐;仅用于测试环境)」,测试完成后记得改回更安全的选项
  • 切换到「程序访问」标签,确保「允许程序访问我的通讯录」和「允许程序发送邮件」的权限都已开启

2. 以管理员身份运行Python脚本

系统权限不足也可能导致操作被中止:

  • 右键点击你的Python脚本文件,选择「以管理员身份运行」
  • 或者打开命令提示符/终端时选择「以管理员身份运行」,再执行脚本

3. 简化Outlook实例初始化逻辑

你的代码里先尝试GetActiveObject再回退到Dispatch,但如果Outlook之前异常退出,GetActiveObject可能拿到无效的实例。可以先直接用Dispatch测试:

import win32com.client as win32
def testEmail():
    # 直接初始化Outlook实例,自动启动未运行的Outlook
    outlook = win32.Dispatch("Outlook.Application")
    # 创建邮件
    mail = outlook.CreateItem(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()

4. 先确认Outlook本身可正常工作

自动化操作依赖Outlook的基础功能正常:

  • 手动创建一封邮件并发送,确认账户配置正确、网络连接正常
  • 如果Outlook处于离线模式或者账户未登录,自动化操作必然失败

5. 修改注册表绕过安全提示(仅测试环境)

如果上述方法都无效,可以通过修改注册表临时关闭Outlook的自动化安全提示:

  1. 按下Win+R输入regedit打开注册表编辑器
  2. 导航到HKEY_CURRENT_USER\Software\Microsoft\Office\<你的Outlook版本>\Outlook\Security(比如Office 365对应版本号是16.0)
  3. 右键新建「DWORD(32位)值」,命名为PromptOOMSend,设置值为0
  4. 同样可以添加PromptOOMAddressBookAccess并设为0,避免通讯录访问的提示

⚠️ 注意:修改注册表有风险,操作前请备份注册表,测试完成后建议恢复原有设置。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 09:47:33