首页 > 其他分享 >删除邮件

删除邮件

时间:2022-10-17 09:46:32浏览次数:46  
标签:uid 删除 res postbox server 邮箱 imap 邮件

发邮件:https://www.cnblogs.com/hudieren/p/16792041.html

收邮件:https://www.cnblogs.com/hudieren/p/16792045.html

解析邮件:https://www.cnblogs.com/hudieren/p/16792096.html

删除邮件:https://www.cnblogs.com/hudieren/p/16798017.html
import imaplib

class EmailOperate:
    email_config = {
        "sender": "发件人邮箱账号",
        "sender_name": "发件人邮箱昵称",
        "sender_token": "发件人邮箱密码",  # (当时申请smtp给的口令)
        "attn": "收件人邮箱账号",  # 收件人邮箱账号
        "attn_name": "收件人邮箱昵称",
        "subject": "主题",
        "connect": "内容",
        "files": "附件,格式:{'path': '路径', 'read': 'r', 'encoding': 'utf-8', '_charset': 'utf-8', 'name': '文件名'}",
        "server": "邮箱服务器地址",
    }

    postbox = {
        "username": "邮箱账号",
        "token": "邮箱密码",  # (当时申请smtp给的口令)
        "server": "邮箱服务器地址",
    }

    @staticmethod
    def delete(postbox, email_uids):
        """
        :param postbox:
        :param email_uids: 邮件id列表
        :return:
        """
        username = postbox.get('username')
        token = postbox.get('token')
        server = postbox.get('server')
        # 连接
        imap = imaplib.IMAP4_SSL(host=server)
        # 登录
        imap.login(username, token)

        imaplib.Commands['ID'] = ('AUTH')
        args = ("name", "zhang3", "contact", f"{username}", "version", "2.58", "vendor", "myclient")
        ID_type, ID_result = imap._simple_command('ID', '("' + '" "'.join(args) + '")')
        imap.select('INBOX')

        error = []
        for uid in email_uids:
            if isinstance(uid, bytes):
                # res = imap.store(uid, '+FLAGS', '\\Deleted')
                res = imap.uid("STORE", uid, '+FLAGS', '(\\Deleted)')
                if res[0] == "NO":
                    error.append(uid.decode())
            elif isinstance(uid, str):
                # res = imap.store(uid.encode(), '+FLAGS', '\\Deleted')
                res = imap.uid("STORE", uid.encode(), '+FLAGS', '(\\Deleted)')
                if res[0] == "NO":
                    error.append(uid)
        imap.expunge()
        imap.close()
        imap.logout()
        return error
 

 

标签:uid,删除,res,postbox,server,邮箱,imap,邮件
From: https://www.cnblogs.com/hudieren/p/16798017.html

相关文章