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

公司最近需要的文件发送到企业邮箱,然后需要把未读邮件的附件下载下来,做一些操作。每天执行。于是就写出了这个脚本(其实是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

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以使用 Python 的 `imaplib` 模块来下载未读邮件。首先,你需要连接到你的邮箱服务器,并且登录到你的账户。然后,你可以使用 `search` 方法来查找未读邮件的标识符。接下来,使用 `fetch` 方法来获取邮件的内容并下载附件(如果有的话)。 下面是一个示例代码: ```python import imaplib # 连接到邮箱服务器 imap_server = imaplib.IMAP4_SSL('imap.example.com') # 登录到账户 email = 'your_email@example.com' password = 'your_password' imap_server.login(email, password) # 选择邮箱文件夹 folder = 'INBOX' imap_server.select(folder) # 查找未读邮件 status, response = imap_server.search(None, 'UNSEEN') unread_ids = response[0].split() for email_id in unread_ids: # 获取邮件内容 status, response = imap_server.fetch(email_id, '(RFC822)') email_data = response[0][1] # 处理邮件内容,可以使用 email 模块来解析 # 关闭连接 imap_server.logout() ``` 在代码中,你需要将 `'imap.example.com'` 替换为你的邮箱提供商的 IMAP 服务器。同时,将 `'your_email@example.com'` 和 `'your_password'` 替换为你的邮箱地址和密码。 请注意,这只是一个简单的示例代码,你可能需要根据自己的需求进行调整和扩展。另外,你可能还需要安装 `email` 模块来解析邮件内容。你可以使用 `pip` 命令来安装它: ``` pip install email ``` 希望这可以帮助到你!如果你有任何进一步的问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值