SMTP库实现邮件发送

复制代码
'''
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

 

posted @   mafei666  阅读(13)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示