天天看点

昨天入职的新人一个Python发送邮件操作很加分01.纯文本邮件Python发送邮件 常见邮箱服务器和端口 纯文本邮件 02.添加收件人和主题添加主题 发送html形式邮件 带附件的邮件 Python连接数据库的目的 DML(数据操纵语言) Python连接数据库 通过跳板机连接mysql 需求:excel表格群发邮件

01.纯文本邮件

Python发送邮件

SMTP是发送邮件的协议: SMTP ( Simple Mail Transfer Protocol )即简单邮件传输协议 , 它是一组用于由源地址到目的 地址传送邮件的规则,由它来控制信件的中转方式。 Python 内置对 SMTP 的支持,可以发送纯文本邮件、 HTML 邮件以及带附件的邮件。 Python 对 SMTP 支持有 smtplib 和 email 两个模块, email负责构造邮件, smtplib 负责发送邮件。

常见邮箱服务器和端口

163.com: SMTP 服务器地址 :smtp.163.com (端口: 25 ) QQ 邮箱: SMTP 服务器地址: smtp.qq.com (端口: 25 ) Foxmail : SMTP 服务器地址 :SMTP.foxmail.com (端口: 25 )

纯文本邮件

一:构建邮件内容 from email.mime.text import MIMEText from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText msg = MIMEText('hello, send by Python...', 'plain', 'utf-8') 第一个参数就是邮件正文 第二个参数是 subtype ,传入 'plain' 表示纯文本, html 表示 html , 要用 utf-8 编码保证多语言兼容性。 然后,通过 SMTP 发出去: 二:发送邮件 import smtplib server = smtplib.SMTP(smtp_server, 25) # SMTP 协议默认端口是 25 server.set_debuglevel(1) server.login(from_addr, password) server.sendmail(from_addr, [to_addr], msg.as_string()) from_addr: 邮件发送者地址。 to_addrs: 字符串列表,邮件发送地址。 msg: 发送消息 server.quit()

02.添加收件人和主题

添加主题

邮件没有主题; 收件人的名字没有显示为友好的名字,明明收到了邮件,却提示不在收件人中。 这是因为邮件主题、如何显示发件人、收件人等信息并不是通过 SMTP 协议发送,而是包含在发送 的文本中的, 所以,我们必须把 From 、 To 和 Subject 添加到 MIMEText 中,才是一封完整的邮件: 需要通过 Header 对象进行编码 content = MIMEText(' 第二次通过 python 发送邮件 ', 'plain', 'utf-8') content['From']=Header(sender,'utf-8') content['To']=receiver content['Subject']=Header(' 主题是自动化测试 ','utf-8') 发送给多人: content['To']=receiver # 字符串列表 , 逗号隔开例如 : '1,2'

发送html形式邮件

如果我们要发送 HTML 邮件,而不是普通的纯文本文件怎么办?方法 很简单,在构造MIMEText 对象时,把 HTML 字符串传进去,再把第二 个参数由plain 变为 html 就可以了: msg = MIMEText('<html><body><h1> 测试报告 </h1>' + '<p>send by <a href="http://localhost:63342/HuaceTestFramework/reports/2020-02-21- 21-08-30-interface-report.html?_ijt=qtb4k1nohtrff8pp1hs79glm5l" target="_blank" rel="external nofollow" > 详情 请点击 </a>...</p>' + '</body></html>', 'html', 'utf-8')

带附件的邮件

from email.mime.multipart import MIMEMultipart 带附件的邮件可以看做包含若干部分的邮件: 文本和各个附件本身 1. 可以构造一个 MIMEMultipart 对象代表邮件本身 2. 然后往里面加上一个 MIMEText 作为邮件正文 3. 再继续往里面加上表示附件 一:添加正文 data = MIMEMultipart() data.attach(MIMEText('hello', 'plain', 'utf-8')) # 增加邮件正文 data['from'] = Header(sender, 'utf-8') data['to'] = receiver data['subject'] = Header(' 包含附件 ', 'utf-8') 二'''增加附件,''' # 通过 open 方法打开一个文件,并且 read (), att = MIMEText(open(r'./test.html', encoding='utf-8').read()) # 说明该文件以附件形式展示 att["Content-Disposition"] = 'attachment;filename="report.html"' data.attach(att)

Python连接数据库的目的

1 :清除数据 。自动化测试时候,注册了一个新用户,产生了多余的数据,下次同一个账 号就无法注册了,这种情况怎么办呢?自动化测试都有数据准备和数据清理的操作,如果 因此用例产生了多余数据,就需要清理数据,可以用 Python 连接 Mysql 直接删除多余的数 据就可以了。 2 :进行断言 。自动化测试时,会对某一个测试点的结果进行判断,使用数据库中的数据 来进行判断也是一种常见的断言方式。 环境准备 Python 连接数据库的方法有两种:分别是 PyMySQL 和 mysql.connector 1. PyMySQL PyMySQL : 是封装了 MySQL 驱动的 Python 驱动,一个能使 Python 连接到 MySQL 的库 环境要求: Python version >= 3.4 安装命令: pip install PyMySQL

昨天入职的新人一个Python发送邮件操作很加分01.纯文本邮件Python发送邮件 常见邮箱服务器和端口 纯文本邮件 02.添加收件人和主题添加主题 发送html形式邮件 带附件的邮件 Python连接数据库的目的 DML(数据操纵语言) Python连接数据库 通过跳板机连接mysql 需求:excel表格群发邮件

DML(数据操纵语言)

pymysql 是利用游标来执行 sql 语句,必须要创建一个游标,并执行 SQL 语句 在 Python 中对数据库进行增删改使用的是事务处理,和查询不一样,这点需要注意,在执 行增删改 SQL 语句后,需要提交事务才能在数据库中完成操作,并且还需添加错误判断, 当执行 SQL 失败后,需要对事务进行回滚。

Python连接数据库

1. 导包 import pymysql 2. 数据库连接设置 conn=pymysql.connect(host,user,passwd,port,db,charset) 3. 生成游标 cur=conn.cursor(cursor=pymysql.cursors.DictCursor) 4. 编写sql 语句 sql='select * from student' 5. 执行sql 语句 cur.excute(sql) 6. 获取数据 data=cur.fetchall() 7. 关闭游标 cur.close() 8. 关闭连接 conn.close()

通过跳板机连接mysql

生产环境中,为了安全起见,大多数的数据库是无法在本地直接访问的,需要先连接跳板机 跳板机是通过密钥连接的,所以需要 ssh_pkey 参数,值是密钥的路径,如果需要通过密码连接, 将该参数换成 ssh_password 即可; 为了安全起见,连接之后再关闭连接,使用 with 语句,如下: server = SSHTunnelForwarder( (host_jump, int(port_jump)), # 跳板机的配置 ssh_pkey=ssh_pk_jump, ssh_username=user_name_jump, remote_bind_address=(host_mysql, int(port_mysql))) # 数据库服务器的配置 with SSHTunnelForwarder( (self.ssh_host, 22), # 跳板机(堡垒机) B 配置 ssh_password=self.ssh_password,

需求:excel表格群发邮件

1. 多个 sheet 表格依次发送所有的邮件 2. 每个邮件的内容不一样

微信搜一搜【程序员阿沐】关注这个文绉绉的程序员,关注后主页点击【领取资料】有我准备的一线大厂面试资料和简历模板,希望大家都能找到心仪的工作,学习是一条时而郁郁寡欢,时而开怀大笑的路,加油。如果你通过努力成功进入到了心仪的公司,一定不要懈怠放松,职场成长和新技术学习一样,不进则退。如果有幸我们江湖再见!

昨天入职的新人一个Python发送邮件操作很加分01.纯文本邮件Python发送邮件 常见邮箱服务器和端口 纯文本邮件 02.添加收件人和主题添加主题 发送html形式邮件 带附件的邮件 Python连接数据库的目的 DML(数据操纵语言) Python连接数据库 通过跳板机连接mysql 需求:excel表格群发邮件

继续阅读