Python-SMTP发送邮件(HTML、图片、附件)
前言:
SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。
一、Python发送HTML邮件
# -*- coding: utf-8 -*- # @Time : 2018/6/6 上午11:27 # @Author : Wang # @File : test_mail_html.py import smtplib from email.header import Header from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText def sendMail(): # 定义相关数据,请更换自己的真实数据 smtpserver = 'smtp.163.com' sender = 'test1@163.com' #receiver可设置多个,使用“,”分隔 receiver = 'wang@mobile.cn,zhang@mobile.cn,lily@mobile.cn' username = 'test1@163.com' password = '2018' msg = MIMEMultipart() boby = """ <h3>Hi,all</h3> <p>附件为本次FM_自动化测试报告。</p> <p>请解压zip,并使用Firefox打开index.html查看本次自动化测试报告结果。</p> """ mail_body = MIMEText(boby, _subtype='html', _charset='utf-8') msg['Subject'] = Header("Android_自动化测试报告", 'utf-8') msg['From'] = sender receivers = receiver toclause = receivers.split(',') msg['To'] = ",".join(toclause) print(msg['To']) msg.attach(mail_body) # 登陆并发送邮件 try: smtp = smtplib.SMTP() ##打开调试模式 # smtp.set_debuglevel(1) smtp.connect(smtpserver) smtp.login(username, password) smtp.sendmail(sender, toclause, msg.as_string()) except: print("邮件发送失败!!") else: print("邮件发送成功") finally: smtp.quit()
二、Python发送邮件带附件
#添加report附件 att = MIMEText(open("/report/html.zip", "rb").read(), "base64", "utf-8") att["Content-Type"] = "application/octet-stream" times = time.strftime("%m_%d_%H_%M", time.localtime(time.time())) filename_report = 'FM_Android_Report'+'_'+times+'.zip' att["Content-Disposition"] = 'attachment; filename= %s ' %filename_report msg.attach(att)
三、Python发送邮件正文带图片
msg = MIMEMultipart() boby = """ <h3>Hi,all</h3> <p>附件为本次FM_自动化测试报告。</p> <p>请解压zip,并使用Firefox打开index.html查看本次自动化测试报告结果。</p> <p> <br><img src="cid:image1"></br> </p> <p> """ msg.attach(mail_body) fp = open("/image/1.png", 'rb') images = MIMEImage(fp.read()) fp.close() images.add_header('Content-ID', '<image1>') msg.attach(images)
以上~~对你有帮助的话,点赞吧~
作者:搁浅
出处: http://www.cnblogs.com/xiaoxi-3-/
如果对您有帮助,请关注我的同名简书:https://www.jianshu.com/u/da1677475c27
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JavaScript:我应该返回什么来注意这个函数是不正确的输入?
JavaScript:我应该返回什么来注意这个函数是不正确的输入? 如果用户在这个例子中输入1,我希望函数停止,那么我应该返回true还是NULL,还是1或0......或者它真的很重要吗? function foo() { // incorrect input if (bar === 1) { return true; } // correct input else { arr.push(bar); } } 我知道在C中,0返回的是具有正确输入的程序,但对于输入不正确的程序,它们返回1,2,3 .... 不确定JavaScript的协议是什么。 这取决于这个函数的上下文是什么。你在其他地方使用了返回值吗?如果不是的话,你可以用它return来停止函数执行: if (bar === 1) { return; } 如果您在其他地方使用返回值,并希望在失败时采取行动,则可以返回false或任何其他值,然后检查该值是否存在。 在你更新的上下文中,你可以使用下面的代码,如果true没有做任何事情,它将会推送到数组false if (bar !== 1) { arr.push(bar); }
- 下一篇
Java 学习(10)--方法重载/构造函数 常见问题
1.方法重载 输出: 2. 输出: 3.构造方法 构造方法:设置初始值方便,但无法改变对象中的值。 set方法:方便修改对象中的值 4.static
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS8编译安装MySQL8.0.19
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- Red5直播服务器,属于Java语言的直播服务器
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作