公司最近需要的文件发送到企业邮箱,然后需要把未读邮件的附件下载下来,做一些操作。每天执行。于是就写出了这个脚本(其实是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
和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
至于后续文件要怎么用,包括要怎么修改,就要看实际情况了。拜拜。