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

如何用Python列出Outlook邮件对象的所有属性?

列出Outlook邮件对象的可用属性

由于你用的是win32com.client获取的Outlook COM对象,它不是原生Python对象,直接用dir()或inspect.getmembers()会输出大量内部代理属性,很难分辨出实际可用的业务属性。这里给你两个实用方法:

方法1:用win32com自带的属性映射字典

win32com给COM对象添加了_prop_map_get_字典,里面直接存了所有可直接访问的属性名(就是你要的email.To、email.Body这类),直接遍历它的keys即可:

import win32com.client

# 初始化Outlook连接
outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)  # 6对应Outlook收件箱
messages = inbox.Items

# 遍历找到目标邮件
for msg in messages:
    if "特定主题关键词" in msg.Subject:  # 替换成你的主题关键词
        print("可用属性列表:")
        for prop_name in msg._prop_map_get_.keys():
            print(prop_name)
        break

方法2:过滤dir()的输出

如果想用dir(),可以过滤掉以下划线开头的内部属性,剩下的就是常规可用属性:

# 接上面的代码,找到目标msg后
regular_props = [attr for attr in dir(msg) if not attr.startswith('_')]
print("过滤后的属性列表:")
print(regular_props)

额外技巧:查看属性值

如果想同时看到每个属性的实际值,可以结合getattr(),注意捕获可能的异常(部分属性可能无权限或为空):

for prop_name in msg._prop_map_get_.keys():
    try:
        prop_value = getattr(msg, prop_name)
        print(f"{prop_name}: {prop_value}")
    except Exception as e:
        print(f"{prop_name}: 无法获取值({str(e)})")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 18:12:47