从飞书企业邮箱下载未读邮件的附件到服务器 python

该脚本使用Python的imaplib和email库连接到飞书邮箱的IMAP服务器,搜索并下载未读邮件的附件。用户需替换脚本中的登录凭证,并确保邮箱启用IMAP服务。附件会被保存到指定路径,可自定义路径和进行文件格式转换,如使用ssconvert工具将.xls文件转为.txt。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司最近需要的文件发送到企业邮箱,然后需要把未读邮件的附件下载下来,做一些操作。每天执行。于是就写出了这个脚本(其实是chatgpt写的,我只是做了写修改)。

脚本如下:

import os
import imaplib
import email
from email.header import decode_header

# 连接到 IMAP 服务器
imap_server = imaplib.IMAP4_SSL("imap.feishu.cn")
imap_server.login("username", "password")
imap_server.select("INBOX")

# 搜索未读邮件
status, data = imap_server.search(None, "UNSEEN")

# 遍历未读邮件
for num in data[0].split():
    status, data = imap_server.fetch(num, "(RFC822)")
    raw_email = data[0][1]
    email_message = email.message_from_bytes(raw_email)

    # 处理附件
    for part in email_message.walk():
        if part.get_content_disposition() is not None:
            # 获取附件文件名
            filename = part.get_filename()

            # 解码文件名
            decoded_filename = decode_header(filename)[0][0]
            if isinstance(decoded_filename, bytes):
                try:
                    decoded_filename = decoded_filename.decode("utf-8")
                except UnicodeDecodeError:
                    decoded_filename = decoded_filename.decode("gbk", errors="ignore")

            # 指定保存附件的路径
            save_path = os.path.join("./", decoded_filename)

            # 保存附件到文件
            with open(save_path, "wb") as f:
                f.write(part.get_payload(decode=True))

使用说明:

如果使用这个脚本,需要做以下修改:

1. 在脚本中,你需要将 username 和 password 替换为你的飞书邮箱的登录凭据。另外,你还可以根据实际需求修改附件保存路径等设置。

2. 确保已安装 Python 的相关依赖,如 imaplib 和 email 模块,可以通过 pip install 命令进行安装。

3. 在运行脚本之前,请确保你的飞书邮箱已启用了 IMAP 服务,并将 IMAP 服务器地址替换为正确的值。

4. 飞书的邮箱登录凭据建议百度怎么拿,百度一下就行了。这里简单说一下

邮箱——》邮箱设置——》第三方邮箱客户端登录——》立即设置

选择一个设备生成就行了

5. 如果你要自定义附件的存放路径。应当修改

save_path = os.path.join("./", decoded_filename)

例如附件的存放路径修改为 /home/nmk/test

save_path = os.path.join("/home/nmk/test", decoded_filename)

执行 python3  脚本名 然后就把文件拿下来了。之后想做修改的话,例如想改文件格式,比如将下载的文件格式从 .xls 转换成.txt ,推荐使用下面的命令

ssconvert  原文件名 新文件名   (记得新文件名要带上后缀哦。)

如果你还没有这个命令,可以执行以下命令下载

sudo apt install gnumeric

至于后续文件要怎么用,包括要怎么修改,就要看实际情况了。拜拜。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值