python提取.msg邮件的附件

.msg文件,outlook邮件的一种保存方式

方式一:使用win32com库,需要安装outlook才行

import win32com.client
import os
 
 
def get_attachments(file_dir, dst_dir):
    """
    获取.msg文件内的附件
    :param file_dir: .msg文件路径
    :param dst_dir: 附件存放目录
    :return: None
    """
    outlook = win32com.client.Dispatch("Outlook.Application").GetNamespace("MAPI")
    msg = outlook.OpenSharedItem(file_dir)
    '''
    print(msg.SenderName)
    print(msg.SenderEmailAddress)
    print(msg.SentOn)
    print(msg.To)
    print(msg.CC)
    print(msg.BCC)
    print(msg.Subject)
    print(msg.Body)
    '''
    count_attachments = msg.Attachments.Count
    attachments = msg.Attachments
    if count_attachments > 0:
        # for item in range(count_attachments):
        #     print(msg.Attachments.Item(item + 1).Filename)  # 循环输出附件名
        for att in attachments:
            att.SaveAsFile(os.path.join(dst_dir, att.FileName))
 
    del outlook, msg  # 释放资源

方式二:使用extract_msg库

import extract_msg
 
file_name = r"E:\test\test_email.msg"
msg = extract_msg.Message(file_name)
"""
print(msg.subject)
print(msg.cc)
print(msg.bcc)
print(msg.sender)
print(msg.to)
print(msg.path)
print(msg.attachments)
print(msg.date)
print(msg.body)
print(msg.htmlBody)
"""
for attachment in msg.attachments:
    attachment.save(customPath='E:/test')

方式三:使用independentsoft.msg库

安装:pip install independentsoft.msg

from independentsoft.msg import Message
from independentsoft.msg import Attachment
 
message = Message(file_path = "e:\\intvalue.msg")
 
for i in range(len(message.attachments)):
    attachment = message.attachments[i]
    attachment.save("e:\\" + str(attachment.file_name))

  

posted @   cnblogs用户  阅读(1681)  评论(1编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示