Files
smart-management-auto-test/base_framework/public_tools/mail_help.py
qiaoxinjiu 6994b185a3 addproject
2026-01-22 19:10:37 +08:00

98 lines
3.5 KiB
Python

# -*- coding:utf-8 -*-
"""
Author: qiaoxinjiu
Create Data: 2021/11/22 10:41
"""
import time
from base_framework.public_tools.my_faker import MyFaker
from base_framework.public_tools.pymailtm.pymailtm import MailTm
from retrying import retry
from base_framework.public_tools import log
from base_framework.public_tools.runner import Runner
magic_faker = MyFaker()
class MailHelper:
"""
邮件相关操作
"""
new_mt_mail_obj = None
def __init__(self):
self.mail_account = MailTm()
self.obj_runner = Runner()
self.obj_log = log.get_logger()
@retry(stop_max_attempt_number=5, wait_fixed=5000)
def get_ci_new_mail(self):
"""
| 功能说明: | 生成随机邮件地址 |
| 返回参数: | dic | 邮件地址 |
| 作者信息: | 作者 林于棚 | 修改时间 |
举例说明:
| get_ci_new_mail() |
"""
faker_mail = magic_faker.gen_str(min_chars=8)
faker_num = magic_faker.create_num(start=1, end=10000)
return faker_mail.lower()+str(faker_num)+'@citest.com'
@retry(stop_max_attempt_number=5, wait_fixed=5000)
def get_new_mail_mt(self):
"""
| 功能说明: | https://mail.tm/zh/ 生成随机邮件地址 |
| 返回参数: | dic | 邮件地址 |
| 作者信息: | 作者 林于棚 | 修改时间 |
举例说明:
| get_new_email() |
"""
self.new_mt_mail_obj = self.mail_account.get_account(password='666666')
return self.new_mt_mail_obj.address
# obj_log.info('生成的邮件地址:{}'.format(self.new_mt_mail_obj.address))
# @retry(stop_max_attempt_number=5, wait_fixed=5000)
def get_mt_mail_message(self, address=None, password='666666'):
"""
| 功能说明: | 获取 https://mail.tm/zh/ 生成邮件地址的信息 |
| 输入参数: | mail_obj | self.new_mt_mail_obj |
| 返回参数: | dic | 邮件地址 |
| 作者信息: | 作者 林于棚 | 修改时间 |
举例说明:
| get_mt_mail_message() |
"""
mail_message = []
first_flag = 0
self.get_new_mail_mt()
account = self.new_mt_mail_obj
if account.address != address and address:
account.address = address
account.password = password
account.jwt = MailTm._make_account_request("token", address, password)
account.auth_headers = {
"accept": "application/ld+json",
"Content-Type": "application/json",
"Authorization": "Bearer {}".format(account.jwt["token"])
}
self.obj_log.info('生成的邮件地址:{}'.format(account.address))
self.obj_log.info('收取邮件中.............')
for i in range(2):
first_len = len(mail_message)
mail_message = account.get_messages()
last_len = len(mail_message)
if first_len <= last_len != 0:
continue
elif last_len == 0 and first_flag < 1:
first_flag += 1
self.obj_log.info('没有收到邮件,重试中..............')
time.sleep(4)
else:
self.obj_log.info('没有收任何到邮件!')
break
return mail_message
if __name__ == '__main__':
obj_mail = MailHelper()
print(obj_mail.get_ci_new_mail())
# print(obj_mail.get_mt_mail_message())