'''
SMTP库实现邮件发送
SMTPLIB服务配置:
自动化邮件发送的形式来实现邮件的自动发送,是自动化测试过程中对于测试结果的产出方式。
在实际发送邮件的时候,是一定需要将邮件的相关配置信息保存在代码之中。
不同的邮箱所需要配置的内容会有一定的区别。需要用到什么类型的邮箱可以网上查询相关邮箱配置信息
以下用QQ邮箱作为示例
1.登录邮箱
2.进入设置-账号
3.启动smtp服务(默认是关闭状态,第一次启动的时候需要手动验证)
4.获取邮箱对应的授权码(授权码不是密码,与账号关联的密码没有任何关系,记得保存一下)
5.保存授权码到本地,以便后续的实际应用
基于配置文件实现邮件的发送:
smtp库默认无法直接给多人进行邮件发送。如果需要发送多人,则收件人数据需要二次处理
1.多人收件,则收件人必须为list类型,不同邮箱为不同元素
'''
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from class10_email.email_read import read
# 定义邮箱的选高管信息
# sender = 'xxx@qq.com'
# receiver = 'xxx@qq.com'
# pass_code = 'xxx'
data = read('Project_E')
print(data)
# receivers = ['xxx@qq.com','xxx@qq.com'] #多个收件人通过list发送
#处理配置项中的多个收件人,str转为list
receivers = []
for receiver in data['receiver'].split(','):
receivers.append(receiver)
# 连接邮箱服务
conn = smtplib.SMTP('smtp.qq.com', 587) # 这是qq邮箱的smtp服务器地址与端口
conn.starttls() # 启用TSL加密
# 邮件正文
content = '''
基于配置文件实现的邮件发送
test
'''
# 将正文写入邮件之中
cont = MIMEText(content, 'plain', 'utf-8') # plain表示纯文本邮件
# 定义邮件的发件人与收件人相关信息
cont['From'] = data['sender']
cont['To'] = data['receiver']
cont['Subject'] = Header('这是邮件主题', 'utf-8')
# 发送邮件
conn.login(data['sender'], data['pass_code'])
# conn.sendmail(data['sender'], data['receiver'], cont.as_string()) #发送定义好的邮件
conn.sendmail(data['sender'],receivers,cont.as_string()) #发送定义好的邮件
# 邮箱服务关闭
conn.close()
[Project_E]
SENDER=xxx@qq.com
RECEIVER=xxx@qq.com,xxx@qq.com
PASS_CODE=xxx