利用python 删除腾讯企业邮箱中多余的邮件

一、背景

小编公司所有的是腾讯企业邮箱,因为公司自动化 所以总是自动给邮箱发送很多多余的邮件,但是有必须需要接收,于是小编写了一个脚本,定时清理这个邮件。

二、思路

首先,登录肯定是破不了的,于是小编采用的是cookie保持登录。

三、代码

# author:Administrator
# datetime:2019/4/10 12:31
# project_name:python_code_warehouse
# file_name:del_tengxun_email
# email:1163739580@qq.com 删除腾讯企业邮箱邮件 只需要替换self.cookie 以及sid即可,另外需要设置self.del_emails_user
import requests
from lxml import etree
import time
import logging
from requests.packages.urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

LOGGER = logging.getLogger("运行日志:")
LOGGER.setLevel(logging.DEBUG)
HANDLER = logging.FileHandler("log.txt", encoding='utf-8')
HANDLER.setLevel(logging.DEBUG)
CONHANDLER = logging.StreamHandler()
CONHANDLER.setLevel(logging.INFO)
FORMATER = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
LOGGER.addHandler(HANDLER)
LOGGER.addHandler(CONHANDLER)
HANDLER.setFormatter(FORMATER)
CONHANDLER.setFormatter(FORMATER)


class DelTengXunEmail(object):
    def __init__(self):
        self.host = "https://exmail.qq.com"
        self.header = {
            'User-Agent': 'Mozilla/5.0(WindowsNT6.1;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/73.0.3683.86Safari/537.36'}
        self.cookie = {'你的cookie': 'xxx'}
        self.sid = "你的sid"
        """需要删除的邮件发送者: 如果删除全部 ,设置成空元组即可"""
        self.del_emails_user = ()

    def del_tengxun_email(self):
        cnt = 0  # 循环次数变量
        while True:
            for i in range(100):
                LOGGER.info("当前正在删除%d页 邮件" % (i + 1))
                params = {'filetype': '', 'showattachtag': '', 'listmode': '', 'flag': '', 'fun': '', 'category': '',
                          'searchmode': '', 'stype': '', 'grpid': '', 'AddrID': '', 'ftype': '', 'page': i,
                          'folderid': '1', 'sid': self.sid, 's': 'inbox'}
                str_html = requests.get(url="https://exmail.qq.com/cgi-bin/mail_list", params=params, verify=False,
                                        headers=self.header, cookies=self.cookie).text
                email_info = self.get_email_info_by_strhtml(str_html)
                self.del_email_by_emails_info_list(*email_info)
                if i == 99:
                    cnt = cnt + 1
                    LOGGER.info("第%s次循环100页 结束" % cnt)
                if cnt == 50:  # 五次循环遍历后退出
                    LOGGER.info("遍历50次 100页循环完成  程序结束")
                    exit()

    def get_email_info_by_strhtml(self, str_html):
        """

        :param str_html: string类型的html
        :return: 返回email信息 [{email_id:'邮件id',email_in_user:'邮件发送者','email_name':'邮件标题','email_time':'邮件收到日期'},{}]
        """
        email_info = []
        email_dict = {}
        email_id = etree.HTML(str_html).xpath(
            '//table[@cellspacing="0"]/tr/td[@class="cx"]/input/@value')
        email_in_user = etree.HTML(str_html).xpath(
            '//table[@cellspacing="0"]/tr/td[@class="cx"]/input/@fa')
        email_name = etree.HTML(str_html).xpath(
            '//table[@cellspacing="0"]/tr/td[@class="gt tf"]/div[1]/u/text()')

        email_time = etree.HTML(str_html).xpath(
            '//table[@cellspacing=&#
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值