Python smtplib实现自动发送纯文本与HTML邮件
本文介绍如何利用Python的smtplib模块实现自动化邮件发送功能,适用于自动化测试报告的分发场景。通过示例代码演示了纯文本和HTML两种格式邮件的构建与发送方法,包括服务器配置、登录认证及内容封装步骤,帮助开发者快速集成邮件通知功能。
在自动化测试脚本执行完毕后,系统通常会生成测试报告。如果能够将测试结果自动发送至指定邮箱,即可避免手动打开文件阅读的繁琐操作。随着测试脚本的持续运行,生成的报告会不断累积,手动查找最新报告变得愈发困难。因此,将结果自动发送给项目相关人员,是一种高效且便捷的处理方式。
Python标准库中的smtplib模块提供了一种简便的途径来发送电子邮件。
关于Python smtplib模块的具体用法,可以参考Python应用程序的帮助文档,其中详细记录了SMTP协议的各种封装实现。
接下来将分几个部分进行详细介绍。
一、发送纯文本格式的邮件
以下是具体的实现脚本:
#coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
'''发送邮箱'''
sender = 'abc@cieXXX.com' #企业263邮箱
'''接收邮箱'''
receiver = '123456@qq.com'
'''发送邮件主题'''
subject = 'python email test'
'''发送邮箱服务器'''
smtpserver = 'smtp.263xmail.com'
'''发送邮箱用户/密码'''
username = 'abc@cieXXX.com'
password = '123456'
'''中文需参数‘utf-8' ,单字节字符不需要'''
msg = MIMEText('你好!','text','utf-8')
msg['Subject'] = Header(subject, 'utf-8')
smtp = smtplib.SMTP()
smtp.connect('smtp.263xmail.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print ("Email has been sent out!")
按F5运行脚本,结果如图所示:
邮件内容展示如图所示:

至此,已成功实现纯文本格式邮件的自动发送功能。
二、发送HTML格式的邮件
HTML格式邮件的实现方式与纯文本类似,主要区别在于文件内容的表现形式。相比之下,针对HTML格式邮件的脚本修改幅度较小。
具体脚本如下:
#coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
'''发送邮箱'''
sender = 'abc@cieXXX.com' #企业263邮箱
'''接收邮箱'''
receiver = '123456@qq.com'
'''发送邮件主题'''
subject = 'python email test'
'''发送邮箱服务器'''
smtpserver = 'smtp.263xmail.com'
'''发送邮箱用户/密码'''
username = 'abc@cieXXX.com'
password = '123456'
'''中文需参数‘utf-8' ,单字节字符不需要'''
msg=MIMEText('<html><hl>Hello World!<hl></html>','html','utf-8')
msg['Subject'] = Header(subject, 'utf-8')
smtp = smtplib.SMTP()
smtp.connect('smtp.263xmail.com')
smtp.login(username, password)
smtp.sendmail(sender, receiver, msg.as_string())
smtp.quit()
print ("Email has been sent out!")
按F5运行脚本,结果如图所示:
登录邮箱查看,界面如图所示:
打开邮件正文,内容如图所示:

确认无误,至此实现了两种格式邮件的自动发送功能。
关于如何将Python smtplib模块的自动收发邮件功能应用到自动化测试流程中,后续章节将继续探讨。
以上就是本文的全部内容,希望对读者的学习有所帮助,也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













