【Python】导出163邮箱的邮件和附件到本地

背景

今天想要导出163邮箱的邮件和附件进行备份一下,手动导出的太麻烦。我之前导出过腾讯企业邮箱的邮件,相同的思路,也用Python导出到本地。

实现代码

import hashlib
import imaplib
import os
import email
from email.header import decode_header
from datetime import datetime
from imapclient import imap_utf7


def get_decoded_header(header: str) -> str:
    try:
        decoded_header = email.header.decode_header(header)
        header_value, encoding = decoded_header[0]

        if isinstance(header_value, bytes):
            try:
                if encoding and encoding.lower() != "unknown-8bit":
                    return header_value.decode(encoding)
                else:
                    raise LookupError("unknown-8bit encoding")
            except (UnicodeDecodeError, LookupError):
                # 尝试使用备选编码进行解码
                alt_encodings = ["gb18030", "gbk", "gb2312", "big5", "utf-8"]
                for alt_encoding in alt_encodings:
                    try:
                        return header_value.decode(alt_encoding)
                    except UnicodeDecodeError:
                        continue
                return header_value.decode("utf-8", errors="replace")

        return header_value
    except Exception as e:
        print(f"Error while decoding header: {
     e}")
        return "Error_Decoding_Header"


def decode_folder_name(encoded_name):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄旺鑫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值