python自动化测试时需要获取邮件内容

python自动化测试时需要获取邮件中的验证码或者其他信息

根据邮件中的主题从最近的几封邮件中筛选出邮件,再选取最新的邮件,获取邮件中的验证码,我这里验证码都是数字,使用正则提取

def decode_str(s):
    try:
        value, charset = decode_header(s)[0]
        if charset:
            value = value.decode(charset)
        return value
    except Exception as e:
        logging.error(logging.error(f"decode_str方法出错了:{e}"))


def get_email_code(email_config):
    # print("开始获取邮件code")
    server = poplib.POP3_SSL(email_config["email_server"])
    server.user(email_config["email"])
    server.pass_(email_config["password"])
    # 登录的过程
    resp, mails, octets = server.list()
    index = len(mails)  # 邮件的总数
    # 此处的循环是取最近的几封邮件
    index_list = []
    index_dic = {}
    for i in range(index - 2, index + 1):
        resp, lines, octets = server.retr(i)  # 取邮件
        msg_content = b'\r\n'.join(lines).decode('utf-8', 'ignore')
        msg = Parser().parsestr(msg_content)
        # server.del(index) 删除邮件
        Subject = decode_str(msg.get('Subject', ''))
        if email_config["content"] in Subject:
            compileX = re.compile("\d")
            code = ''.join(map(str, compileX.findall(Subject)))
            index_dic[i] = code
            index_list.append(i)
    code = index_dic[max(index_list)]
    return code


email_config = {"email": "11111@xx.com", "password": "******", "email_server": "pop.exmail.qq.com", "content": "邮件主题中文案"}
get_email_code(email_config)

  • 7
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值