python pytest 框架内将报告发送邮箱时报错,单独试了一个smtp授权码,是通的。
1条回答 默认 最新
关注 【相关推荐】
- 这篇博客: python之SMTP发送邮件信息中的 2. python中的SMTP 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
下面只介绍了发送纯文本格式和HTML格式,下面分别进行发送两种格式邮件的讲解
2.1 发送文本格式的邮件(QQ邮箱为例)
首先导入需要的库或类,smtplib库用来进行邮件连接并发送邮件,MIMEText类对邮件内容及格式进行设置;Header类用于添加一些邮件头信息,比如发件人,收件人,主题等。
import smtplib from email.mime.text import MIMEText from email.header import Header
接下来进行一些初始化,其中MIMEText对象中有三个需要我们设置的参数,一个是正文内容,一个是正文内容的类型,例如:”text/plain”和”text/html”,一个是正文内容的编码。,我这里设置的是文本类型,所以是plain,如下
sender = '3512919120@qq.com' #发件人邮箱 receiver = '3512919120@qq.com' #收件人邮箱 mail_pass = 'axcqgncadvnujlychgj' #qq邮箱授权码,此处随便填的 #text为邮件正文内容,plain为文本格式,'utf-8'为编码格式 text = 'python 邮件发送测试...' message = MIMEText(text, 'plain', 'utf-8') #添加Header信息,From,To,Subject分别为发送者信息,接收者消息和邮件主题 message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') subject = 'Python STMP 邮件发送测试' message['Subject'] = Header(subject, 'utf-8')
qq邮箱授权码获取步骤如下
接下来就是调用SMTP进行连接和发送了,如下try: #smtp.xxx.com为邮箱服务类型,25为STMP的端口 smtpObj = smtplib.SMTP('smtp.qq.com', 25)#smtp.xxx.com为邮箱服务类型,25为STMP #smtpObj = smtplib.SMTP_SSL('smtp.xxx.com', 'xxx邮件服务的端口号') smtpObj.login(sender, mail_pass)#登录 smtpObj.sendmail(sender, receiver, message.as_string())#发送 print ("邮件发送成功") except smtplib.SMTPException: print ("Error: 邮件发送失败")
发送文本邮件完整代码和效果如下
#1. 发送文本文件 import smtplib from email.mime.text import MIMEText from email.header import Header sender = '3512919120@qq.com' #发件人邮箱 receiver = '3512919120@qq.com' #收件人邮箱 mail_pass = '你自己邮箱的授权码' #qq邮箱授权码 #text为邮件正文内容,plain为文本格式,'utf-8'为编码格式 text = 'python 邮件发送测试...' message = MIMEText(text, 'plain', 'utf-8') #添加Header信息,From,To,Subject分别为发送者信息,接收者消息和邮件主题 message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') subject = 'Python STMP 邮件发送测试' message['Subject'] = Header(subject, 'utf-8') try: #smtp.xxx.com为邮箱服务类型,25为STMP的端口 smtpObj = smtplib.SMTP('smtp.qq.com', 25)#smtp.xxx.com为邮箱服务类型,25为STMP #smtpObj = smtplib.SMTP_SSL('smtp.xxx.com', 'xxx邮件服务的端口号') smtpObj.login(sender, mail_pass)#登录 smtpObj.sendmail(sender, receiver, message.as_string())#发送 print ("邮件发送成功") except smtplib.SMTPException: print ("Error: 邮件发送失败")
2.2 发生HTML格式的邮件(QQ邮箱为例)
发送HTML格式的邮件其实很简单,只是把发送的text变为html文本以及将MIMEText对象中文本格式改为html就可以了,如下
html = ''' <p>Python STMP 发生html邮件格式测试。。。</p> <p><a href='https://www.baidu.com'>这是一个通往百度的链接</a></p> ''' message = MIMEText(html, 'html', 'utf-8')
如果要同时发给多个人的话,可将receiver设置为一个列表,如下
receiver = ['3512919120@qq.com','12646@qq.com']
发送HTML格式的邮件完整代码和效果如下
#2.发送html格式的邮件 import smtplib from email.mime.text import MIMEText from email.header import Header sender = '3512919120@qq.com' pass_word = 'qq邮箱授权码' receiver = '3512919120@qq.com' html = ''' <p>Python STMP 发生html邮件格式测试。。。</p> <p><a href='https://www.baidu.com'>这是一个通往百度的链接</a></p> ''' message = MIMEText(html, 'html', 'utf-8') message['From'] = Header(sender, 'utf-8') message['To'] = Header(receiver, 'utf-8') subject = 'Python SMTP 发送html格式邮件 测试' message['Subject'] = Header(subject, 'utf-8') try: smtp = smtplib.SMTP('smtp.qq.com', 25) smtp.login(sender, pass_word) smtp.sendmail(sender, receiver, message.as_string()) print("邮件发送成功") except smtplib.SMTPException: print("Error: 邮件发送失败")
如果有帮助到你,就点个赞吧!
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报- 这篇博客: python之SMTP发送邮件信息中的 2. python中的SMTP 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
悬赏问题
- ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
- ¥15 安装quartus II18.1时弹出此error,怎么解决?
- ¥15 keil官网下载psn序列号在哪
- ¥15 想用adb命令做一个通话软件,播放录音
- ¥30 Pytorch深度学习服务器跑不通问题解决?
- ¥15 部分客户订单定位有误的问题
- ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
- ¥15 Bug traq 数据包 大概什么价
- ¥15 在anaconda上pytorch和paddle paddle下载报错
- ¥25 自动填写QQ腾讯文档收集表