第一步、进入如下网址申请163邮箱。

https://mail.163.com/

第二步、注册完之后登录、点击如下图设置­点击POP3/SMTP/IMAP。

第三步、右侧点击客户端授权密码。

第四步、点击开启­然后点击重置授权码。

第五步、按照如下操作编辑短信发送、然后就可以

 

  

重置授权码了、授权码和密码不要设置为一样的注意点:授权码和密码不一致、用代码连接163邮件服务器就需要用授权码而不是密码。

第六步、然后把 init 构造函数里面的psw默认参数的值改为你自己设置的授权码

就可以用如下的代码发送邮件了。

1#coding=utf‐8
2import smtplib
3from email.mime.text import MIMEText
4from email.mime.text import MIMEText
5from email.mime.multipart import MIMEMultipart
6from email.header import Header
7import os
8
9class SendMail:
10def init (self, send_msg,
11 smtpserver="smtp.163.com", sender="18617162994@163.com",
12psw="xxxxxx", receiver="18617162994@163.com", #psw这个为授权码
13port=25, attachment=None):
14# self.reportfile = reportfile
15self.send_msg = send_msg
16self.smtpserver = smtpserver
17self.sender = sender
18self.psw = psw
19self.receiver = receiver
20self.port = port
21self.attachment = attachment
22
23def send_mail(self):
24"""发送最新的测试报告内容"""

25 #打开测试报告,读取测试报告内容

26 with open(self.send_msg, "rb") as f:

27 mail_boday = f.read()

28 #定义邮件

29 msg = MIMEMultipart()

30 msg['subject'] = Header(u"自动化测试报告", 'utf‐8')

31 msg['From'] = Header(self.sender, 'utf‐8')

32 msg['To'] = self.receiver

33

34 #添加附件

35 if self.attachment != None:

36 file_name = self.attachment.split(os.path.sep)[‐1]

37 att = MIMEText(open(self.attachment, "rb").read(),

38 "base64", "utf‐8")

39 att["Content‐Type"] = "application/octet‐stream"

40 att.add_header('Content‐Disposition', 'attachment',

41 filename = file_name)

42 msg.attach(att)

43

44 body = MIMEText(mail_boday, _subtype="html", _charset='utf‐8')

45 msg.attach(body)

46 smtp = smtplib.SMTP()

47 smtp.set_debuglevel(1)

48 smtp.connect(self.smtpserver, self.port)

49 smtp.starttls()

50 #用户登录并发送邮件

51 smtp.login(self.sender, self.psw)

52 smtp.sendmail(self.sender, self.receiver, msg.as_string())

53 smtp.quit()

python3源码

#coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
import os class SendMail:
def __init__(self, send_msg,
smtpserver="smtp.163.com", sender="15949613302@163.com", #15949613302@163.com
psw="VOQGWBZYNBOAVZGE", receiver="15949613302@163.com", #psw这个为授权码
port=25, attachment=None):
# self.reportfile = reportfile
self.send_msg = send_msg
self.smtpserver = smtpserver
self.sender = sender
self.psw = psw
self.receiver = receiver
self.port = port
self.attachment = attachment def send_mail(self):
"""发送最新的测试报告内容"""
#打开测试报告,读取测试报告内容
with open(self.send_msg, "rb") as f:
mail_boday = f.read()
#定义邮件
msg = MIMEMultipart()
msg['subject'] = Header(u"自动化测试报告", 'utf-8')
msg['From'] = Header(self.sender, 'utf-8')
msg['To'] = self.receiver #添加附件
if self.attachment != None:
file_name = self.attachment.split(os.path.sep)[-1]
att = MIMEText(open(self.attachment, "rb").read(), "base64", "utf-8")
att["Content-Type"] = "application/octet-stream"
att.add_header('Content-Disposition', 'attachment', filename = file_name)
msg.attach(att) body = MIMEText(mail_boday, _subtype="html", _charset='utf-8')
msg.attach(body)
smtp = smtplib.SMTP()
smtp.set_debuglevel(1)
smtp.connect(self.smtpserver, self.port)
#用户登录并发送邮件
smtp.login(self.sender, self.psw)
smtp.sendmail(self.sender, self.receiver, msg.as_string())
smtp.quit()

  python2源码

#coding=utf-8
import smtplib
from email.mime.text import MIMEText
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
import os

class SendMail:
def __init__(self, send_msg,
smtpserver="smtp.163.com", sender="15949613302163.com", #15949613302@163.com
psw="xlh.1314", receiver="15949613302@163.com", #psw这个为授权码
port=25, attachment=None):
# self.reportfile = reportfile
self.send_msg = send_msg
self.smtpserver = smtpserver
self.sender = sender
self.psw = psw
self.receiver = receiver
self.port = port
self.attachment = attachment

def send_mail(self):
"""发送最新的测试报告内容"""
#打开测试报告,读取测试报告内容
with open(self.send_msg, "rb") as f:
mail_boday = f.read()
#定义邮件
msg = MIMEMultipart()
msg['subject'] = Header("自动化测试报告", 'utf-8')
msg['From'] = Header(self.sender, 'utf-8')
msg['To'] = self.receiver

#添加附件
if self.attachment != None:
file_name = self.attachment.split(os.path.sep)[-1]
att = MIMEText(open(self.attachment, "rb").read(), "base64", "utf-8")
att["Content-Type"] = "application/octet-stream"
att.add_header('Content-Disposition', 'attachment', filename = file_name)
msg.attach(att)

body = MIMEText(mail_boday, _subtype="html", _charset='utf-8')
msg.attach(body)
smtp = smtplib.SMTP()
smtp.set_debuglevel(1)
smtp.connect(self.smtpserver, self.port)
smtp.starttls()
#用户登录并发送邮件
smtp.login(self.sender, self.psw)
smtp.sendmail(self.sender, self.receiver, msg.as_string())
smtp.quit()

多测师讲解自动化 _邮件发送_高级讲师肖sir的更多相关文章

  1. 多测师讲解自动化selenium___定位元素002___高级讲师肖sir

    高级自动化测试python+selenium教程手册 --高级讲师肖sir(Harm) 第 2 章8种定位方法 总结: selenium 的 webdriver 提供了八种基本的元素定位方法,前面六种 ...

  2. 多测师讲解html _图片标签003_高级讲师肖sir

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>段 ...

  3. 多测师讲解html _段落标签002_高级讲师肖sir

    <html> <head> <meta charset="UTF-8"> <title>段落标签</title> < ...

  4. 多测师讲解自动化_rf框架搭建_高级讲师肖sir

    robot framework:自动化测试框架(简称RF框架) Python3.7 RIDE(可视化界面).  Wxpython  pip(在线下载) . setuptools(在线安装) . 第三方 ...

  5. 多测师讲解接口测试 _理论基础知识001_高级讲师肖sir

    前言: 我们今天进入接口测试的学习! 今天学习的内容是偏向理论 接口理论 了解接口测试(1) 一.什么是接口测试? 接口统称api,即程序与程序之间的对接.交接.交互.是测试系统组件间接口的一种测试. ...

  6. 多测师讲解接口测试 _面试题003_高级讲师肖sir

    接口测试 一.你对HTTP有没有了解过?具体讲一下对http的了解.(答题思路: 定义.常见请求类型.状态码.请求头请求体.响应头和响应体.三次握手和四次挥手.)答:了解,我们做接口的时候基本上都是基 ...

  7. 多测师讲解性能测试_面试题_001高级讲师肖sir

    什么叫做性能测试?1. 软件的性能是软件的一种非功能特性,它关注的不是软件是否能够完成特定的功能,所以一般来说性能测试介入的时机是在功能测试完成之后.另外,由定义中的及时性可知性能也是一种指标,可以 ...

  8. 多测师讲解jmeter _基本介绍_(001)高级讲师肖sir

    jmeter讲课课程 一.Jmeter简介 Jmeter是由Apache公司开发的一个纯Java的开源项目,即可以用于做接口测试也可以用于做性能测试. Jmeter具备高移植性,可以实现跨平台运行. ...

  9. 多测师讲解jmeter _图片详解_(全)高级讲师肖sir

  10. 多测师讲解jmeter _接口请求_(003)高级讲师肖sir

    1.简单接口的请求 2. 3. 正则查看: 正则提取:在后置处理器中正则请求 设置:正则表达式 JSESSIONID提取器: Debug  sampler 总结:

随机推荐

  1. 小白也能弄得懂的目标检测YOLO系列之YOLOv1网络训练

    上期给大家介绍了YOLO模型的检测系统和具体实现,YOLO是如何进行目标定位和目标分类的,这期主要给大家介绍YOLO是如何进行网络训练的,话不多说,马上开始! 前言: 输入图片首先被分成S*S个网格c ...

  2. Thymeleaf 中如何实现including

    Problem:Jsp中有including,Thymeleaf中有无类似的语法? Solution:有,Themeleaf中提供同样功能的标签是 th:fragment="blockNam ...

  3. odoo10中的邮件提醒

    odoo10中邮件提醒配置如下: 1.配置出向邮件服务器 打开开发者模式,设置-->技术-->email-->出向邮件服务器 设置如下: 如果配置成功,点击’测试连接‘,会出现如下弹 ...

  4. ctfhub sql注入 整数型注入

    整数型注入 手工注入 1.查看是否存在sql注入,及sql注入类型 2.确定列数 3.确定注入点,以及数据库版本,数据库名称 4.查表名 5.查字段名以及flag值 获得flag值 sqlmap做法 ...

  5. spyder如何切换python虚拟环境?

    2020/5/29 在anaconda下创建了很多个python虚拟环境,现在我想使用 spyder 运行python程序, 并且使用其中某一个虚拟环境,方法如下: 首先要知道 Anaconda自带的 ...

  6. 移动web开发之rem适配布局

    移动web开发之rem适配布局 方案: 页面布局文字能否随着屏幕大小变化而变化 流式布局和flex布局主要针对于宽度布局,那高度如何布局? 怎样让屏幕发生变化的时候元素高度和宽度等比例缩放? 1. r ...

  7. python中random库的使用

    基本随机函数 计算机产生随机数是需要随机数种子的,例如 给定一个随机数种子,就能利用梅森旋转算法产生一系列随机序列 每一个数都是随机数,只要随机种子相同,产生的随机数和数之间的关系都是确定的 随机种子 ...

  8. springboot:druid 404

    druid配置是在servlet中添加,所以需要servlet扫描 aplication里添加@ServletComponentScan("com")

  9. Java基础一篇过(一)反射

    一.反射是个啥 定义 : 在运行状态中动态获取的类的信息以及动态调用对象的方法,这种功能称为java语言的反射机制. 对于任意一个类,都能够知道这个类的所有属性和方法. 对于任意一个对象,都能够调用它 ...

  10. python环境变量的安装与配置

    安装最新的3.x(2.x如今已经不常见) 下图来源:百度(电脑已安装,不能重复) 一定要勾选"Add Python 3.6 to PATH".(如果没有勾选在安装完成后需要手动添加 ...