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的自动化安全提示:
- 按下
Win+R输入regedit打开注册表编辑器 - 导航到
HKEY_CURRENT_USER\Software\Microsoft\Office\<你的Outlook版本>\Outlook\Security(比如Office 365对应版本号是16.0) - 右键新建「DWORD(32位)值」,命名为
PromptOOMSend,设置值为0 - 同样可以添加
PromptOOMAddressBookAccess并设为0,避免通讯录访问的提示
⚠️ 注意:修改注册表有风险,操作前请备份注册表,测试完成后建议恢复原有设置。
内容的提问来源于stack exchange,提问作者Searcher512
相关产品推荐
相关产品推荐

