多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

接口自动化测试框架的发送邮件实现

更新时间:2021-10-28 10:24:36 作者:admin 浏览:315

接口自动化测试框架的发送邮件实现

  1、设置邮箱授权码

  想要使用代码发送邮件,首先要对邮箱进行设置:即设置邮箱授权码。

  (1)设置163邮箱

  第一次设置授权码:登录163邮箱 —> 设置 —> POP3/SMTP/IMAP —> 设置授权码。

  第n次设置授权码: 登录163邮箱 —> 设置 —> POP3/SMTP/IMAP —> 在界面左侧栏中有客户端授权码选项 —> 重置授权码。

  (2)设置QQ邮箱发送邮件

  找到QQ邮箱授权码,打开QQ邮箱 —> 设置 —> 账号 —> POP3开启服务 —> 开启

  (如果已经开启了,不知道授权码,就点温馨提示里面的‘生成授权码’)

  发验证短信获取授权码,照着提示发个短信,点我已发送,就会收到授权码了。

  收到授权码后复制,保存下来,这个就可以当QQ邮箱的密码了。

接口自动化测试框架的发送邮件实现

  2、安装zmail模块

  我们需要适用Python中的zmail模块,来实现邮件的发送。

  首先在cmd命令行中,执行如下命令,来安装zmail模块。

  pip install zmail或者python -m pip install zmail

  提示:在Python中适用zmail模块比使用smtplib库更加方便。

  3、实现代码

  """

  使用python的zmail模块实现发送邮件

  1.安装zmail库

  pip install zmail

  python -m pip install zmail

  2.设置邮箱的授权码

  3.发邮件

  1.编辑邮件内容

  2.填写发件人邮箱和授权码

  3.发送邮件

  """

  import zmail

  # 1.准备发送邮件的内容(字典格式)

  # 注意subject少用测试或者test,邮箱会自动屏蔽,多了还会拉黑你。

  mail_content = {

  "subject": "邮件主题",

  "content_text": "邮件内容,邮件正文",

  "attachments": "../data/add_dep.xls" # 邮件附件(路径)

  }

  # 2.使用发送邮件的账户和密码,密码是授权码

  server = zmail.server("xxxxxxx@163.com", "xxxxxxx123456")

  """

  说明:

  关于邮客户端设置的POP3,SMTP,IMAP地址,

  zmail模块都帮助我们设置好了

  点击zmail.server()方法即可查看,如下:

  def server(username: str, password: str,

  smtp_host: Optional[str] = None,

  smtp_port: Optional[int] = None,

  smtp_ssl: Optional[bool] = None,

  smtp_tls: Optional[bool] = None,

  pop_host: Optional[str] = None,

  pop_port: Optional[int] = None,

  pop_ssl: Optional[bool] = None,

  pop_tls: Optional[bool] = None,

  config: Optional[str] = None,

  timeout=60, debug=False, log: Optional[logging.Logger] = None,

  auto_add_from=True, auto_add_to=True) -> MailServer:

  """

  # 3.发送邮件

  # 参数:收件人,邮件内容

  server.send_mail("xxx@163.com", mail_content)

  # 给多人发送邮件

  # server.send_mail([收件人1, 收件人2], 邮件内容)

  4、发送html格式的邮件

  这可以把html格式的测试报告,作为邮件的正文进行发送。

  同时也可以把测试报告作为附件一起发送。

  # 导入zmail模块

  import zmail模块

  # 发送HTML作为邮件内容

  # 1.读取html文件

  with open("report.html", "r", encoding="utf-8") as fp:

  content_html = fp.read()

  # 2.准备发送邮件的内容(字典格式)

  mail_content = {

  "subject": "自动化测试报告",

  "content_html": content_html,

  "attachments": "report.html"

  }

  # 3.使用发送邮件的账户和密码,密码是授权码

  server = zmail.server("xxx@163.com", "xxxxxxx123456")

  # 4.发送邮件

  # 参数:收件人,邮件内容

  server.send_mail("xxx@163.com", mail_content)

  注意:

  zmail.read_html()可以读取html文件,但是read_html()方法读入纯英文的页面没有问题。但读取带有中文的页面,就会报错,因为没有做编码处理。

  所以我们会使用open()方法来读取html中的内容。

  我们也可以把源码中的read_html()方法修改一下,加上编码即可,如下:

  def read_html(html_path: str):

  """Get html content by its path."""

  path = get_abs_path(html_path)

  with open(path, 'r', encoding="utf-8") as f:

  content = f.read()

  return content

  修改完之后就可以用下面代码,代替上面的1,2步了。

  复制

  mail_content = {

  "subject": "自动化测试报告",

  "content_html": zmail.read_html("../report/report.html"),

  "attachments": "report.html"

  }

  以上内容为大家介绍了接口自动化测试框架的发送邮件实现,希望对大家有所帮助,如果想要了解更多接口自动化测试相关知识,请关注多测师。https://www.aichudan.com/


联系电话

17727591462

返回顶部