python - 通过 COM 连接到 Outlook 时出错

标签 python outlook win32com

我有以下python代码

o = win32com.client.Dispatch("Outlook.Application")
ns = o.GetNamespace("MAPI")
profile = ns.Folders.Item("Profile Name")
tasks = profile.Folders.Item("Tasks")
print tasks.Items

当我运行它时,脚本因以下错误而崩溃:

Traceback (most recent call last):
  File "start.py", line 47, in <module>
    o = win32com.client.Dispatch("Outlook.Application")
  File "C:\Python27\lib\site-packages\win32com\client\__init__.py", line 95, in Dispatch
    dispatch, userName = dynamic._GetGoodDispatchAndUserName(dispatch,userName,clsctx)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 108, in _GetGoodDispatchAndUserName
    return (_GetGoodDispatch(IDispatch, clsctx), userName)
  File "C:\Python27\lib\site-packages\win32com\client\dynamic.py", line 85, in _GetGoodDispatch
    IDispatch = pythoncom.CoCreateInstance(IDispatch, None, clsctx, pythoncom.IID_IDispatch)
pywintypes.com_error: (-2146959355, 'Server execution failed', None, None)

我也试过:

win32com.client.gencache.EnsureDispatch("Outlook.Application")

不知道该怎么做以及问题是什么

更新:只有当 Outlook 正在运行时才会发生这种情况,但发出 getActiveObject 会因“操作不可用”而崩溃

最佳答案

错误是 CO_E_SERVER_EXEC_FAILURE,这很可能意味着 Outlook 在与您的进程不同的安全上下文中运行。这两个应用是否以提升的权限运行(以管理员身份运行)?

您的代码何时以及如何运行?

2016 年 6 月 17 日更新: 只需发布评论中提到的解决方案以提高可见度:以普通用户或提升的权限运行 Outlook 和 python 代码。

关于python - 通过 COM 连接到 Outlook 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12705249/

相关文章:

outlook - 使 Outlook 加载项与 Office 365 共享邮箱配合使用

python - 如何通过python创建一个url快捷方式

python - Range 类的 AutoFilter 方法失败(Dispatch 与 EnsureDispatch)

python selenium checkbox 第 n 个元素(如果是文本)

python - 无法安装 RAY

python - 加载 HDF 时出现非法指令(核心已转储)

vbscript - 使用多个签名由 GPO 自动生成 Outlook 签名

java - 从 Play Java 发送的 Outlook 365 电子邮件中的换行符

python - 如何通过 python 在历史 bloomberg api 中获取覆盖

python - 从数据框中选择事件出现前的最后 n 条记录