Python pywin32 outlook邮箱

Python pywin32 outlook邮箱

安装依赖

sh 复制代码
pip install pywin32

使用实例

python 复制代码
outlook = client.Dispatch("Outlook.Application").GetNamespace("MAPI")
inbox = outlook.GetDefaultFolder(6)  # 6表示收件箱

# 创建时间范围过滤器
end_time = dt.now()
start_time = end_time - timedelta(days=3)
# Restrict()过滤时间格式 %Y-%m-%d %H:%M %p必须带有%p,否则可能报错,或者没数据
start_str = start_time.strftime("%Y-%m-%d %H:%M %p")   
end_str = end_time.strftime("%Y-%m-%d %H:%M %p")
filter_str = f"[ReceivedTime] > '{start_str}' AND [ReceivedTime] < '{end_str}'"
# 通过时间过滤邮件
emails= inbox.Items.Restrict(filter_str)

for email in emails:
    # 邮件标题
    print(email.Subject)
    # 发送人
    print(email.SenderName)
    # 邮件内容(HTML格式)
    print(email.HTMLBody)
    # 邮件接收时间
    print(email.ReceivedTime)
    # 文件对象,包括附件,邮件中截图,图片等文件
    print(email.Attachments)
    # 邮件收件人(包括抄送人)信息对象
    for i in message.Recipients:
        print(i.Name)      # 收件人名称
        print(i.Resolved)	 # 
        print(i.Address)	# 收件人邮箱地址
        print(i.Type)     # 1:收件人,2:抄送人

    # 附件对象
    for attachment in email.Attachments:
        # attachment.FileName 文件名
        filename = str(attachment.FileName)
        suffix = os.path.splitext(filename)[1].strip(".")
        if filename.startswith('image') and suffix in ["png", "jpg"]: continue
        print(filename)
        dir_path = r'D:\test'
        filepath = os.path.join(dir_path, attachment.FileName)
        # attachment.SaveAsFile()保存文件到指定路径
        attachment.SaveAsFile(filepath)
相关推荐
lupai2 分钟前
手机在网状态接口实测效果与质量评估
大数据·python·智能手机·api接口
「QT(C++)开发工程师」25 分钟前
C++ auto 用法详解
开发语言·c++
OPEN-F32 分钟前
C++STL教程:容器适配器与实用工具
开发语言·c++
yaoxin52112344 分钟前
507. Java 反射 - 在 BeanFactory 中实现依赖注入
java·开发语言
OPEN-F1 小时前
C++模板教程:变参模板、折叠表达式与SFINAE
java·开发语言·c++
有点。1 小时前
C++二叉搜索树进阶
开发语言·c++
HugoStudio_SWAN1 小时前
【擦除重绘】C++ 控制台动画:弹跳 Logo DVD 屏保效果
开发语言·c++·学习·程序人生
荷蒲1 小时前
【小白量化Qbuddy】用AI设计miniQMT指标公式计算量化平台
人工智能·python·机器人
阿童木写作1 小时前
跨境电商图片翻译工具,批量翻译视频字幕一键抠图
人工智能·python·音视频
何以解忧,唯有..2 小时前
Pydantic 介绍与使用:Python 数据校验的现代方案
数据库·python·microsoft