python邮件中附加文字、html、图片、附件实现方法


Posted in Python onJanuary 04, 2021

关于python写邮件各种功能我们已经介绍过很多,大家有兴趣可以参考:

下面我们看下本次介绍的全部代码实例

import smtplib  
from email.mime.multipart import MIMEMultipart  
from email.mime.text import MIMEText  
from email.mime.image import MIMEImage 
from email.header import Header  
  
#设置smtplib所需的参数
#下面的发件人,收件人是用于邮件传输的。
smtpserver = 'smtp.163.com'
username = 'XXX@163.com'
password='XXX'
sender='XXX@163.com'
#receiver='XXX@126.com'
#收件人为多个收件人
receiver=['XXX@126.com','XXX@126.com']
 
subject = 'Python email test'
#通过Header对象编码的文本,包含utf-8编码信息和Base64编码信息。以下中文名测试ok
#subject = '中文标题'
#subject=Header(subject, 'utf-8').encode()
  
#构造邮件对象MIMEMultipart对象
#下面的主题,发件人,收件人,日期是显示在邮件页面上的。
msg = MIMEMultipart('mixed') 
msg['Subject'] = subject
msg['From'] = 'XXX@163.com <XXX@163.com>'
#msg['To'] = 'XXX@126.com'
#收件人为多个收件人,通过join将列表转换为以;为间隔的字符串
msg['To'] = ";".join(receiver) 
#msg['Date']='2012-3-16'
 
#构造文字内容  
text = "Hi!\nHow are you?\nHere is the link you wanted:\nhttp://www.baidu.com"  
text_plain = MIMEText(text,'plain', 'utf-8')  
msg.attach(text_plain)  
 
#构造图片链接
sendimagefile=open(r'D:\pythontest\testimage.png','rb').read()
image = MIMEImage(sendimagefile)
image.add_header('Content-ID','<image1>')
image["Content-Disposition"] = 'attachment; filename="testimage.png"'
msg.attach(image)
 
#构造html
#发送正文中的图片:由于包含未被许可的信息,网易邮箱定义为垃圾邮件,报554 DT:SPM :<p><img src="cid:image1"></p>
html = """
<html> 
 <head></head> 
 <body> 
  <p>Hi!<br> 
    How are you?<br> 
    Here is the <a href="http://www.baidu.com" rel="external nofollow" >link</a> you wanted.<br> 
  </p> 
 </body> 
</html> 
"""  
text_html = MIMEText(html,'html', 'utf-8')
text_html["Content-Disposition"] = 'attachment; filename="texthtml.html"'  
msg.attach(text_html)  
 
 
#构造附件
sendfile=open(r'D:\pythontest\1111.txt','rb').read()
text_att = MIMEText(sendfile, 'base64', 'utf-8') 
text_att["Content-Type"] = 'application/octet-stream' 
#以下附件可以重命名成aaa.txt 
#text_att["Content-Disposition"] = 'attachment; filename="aaa.txt"'
#另一种实现方式
text_att.add_header('Content-Disposition', 'attachment', filename='aaa.txt')
#以下中文测试不ok
#text_att["Content-Disposition"] = u'attachment; filename="中文附件.txt"'.decode('utf-8')
msg.attach(text_att)  
    
#发送邮件
smtp = smtplib.SMTP()  
smtp.connect('smtp.163.com')
#我们用set_debuglevel(1)就可以打印出和SMTP服务器交互的所有信息。
#smtp.set_debuglevel(1) 
smtp.login(username, password)  
smtp.sendmail(sender, receiver, msg.as_string())  
smtp.quit()

小编测试后发现,这个实例可以把很多元素当做一个多文本编辑器,放在邮件附件里,非常好用。

以上就是python邮件中附加文字、html、图片、附件实现方法的详细内容,更多关于python邮件中添加元素附件方法的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
闭包在python中的应用之translate和maketrans用法详解
Aug 27 Python
python通过pil模块获得图片exif信息的方法
Mar 16 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
Python实现进程同步和通信的方法
Jan 02 Python
使用Python来开发微信功能
Jun 13 Python
python用BeautifulSoup库简单爬虫实例分析
Jul 30 Python
python实现公司年会抽奖程序
Jan 22 Python
python中的print()输出
Apr 12 Python
python使用celery实现异步任务执行的例子
Aug 28 Python
使用python实现回文数的四种方法小结
Nov 24 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
Mar 03 Python
python实现商品进销存管理系统
May 30 Python
python自动化发送邮件实例讲解
Jan 04 #Python
Python Selenium库的基本使用教程
Jan 04 #Python
selenium学习教程之定位以及切换frame(iframe)
Jan 04 #Python
python自动打开浏览器下载zip并提取内容写入excel
Jan 04 #Python
python Scrapy框架原理解析
Jan 04 #Python
如何用 Python 处理不平衡数据集
Jan 04 #Python
Python创建简单的神经网络实例讲解
Jan 04 #Python
You might like
php mssql 数据库分页SQL语句
2008/12/16 PHP
php学习之运算符相关概念
2011/06/09 PHP
Linux下PHP加速器APC的安装与配置笔记
2014/10/24 PHP
使用Huagepage和PGO来提升PHP7的执行性能
2015/11/30 PHP
PHP单例模式是什么 php实现单例模式的方法
2016/05/14 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
老生常谈PHP面向对象之命令模式(必看篇)
2017/05/24 PHP
php微信开发之关注事件
2018/06/14 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
js调用后台servlet方法实例
2013/06/09 Javascript
跟我学Nodejs(一)--- Node.js简介及安装开发环境
2014/05/20 NodeJs
js进行表单验证实例分析
2015/02/10 Javascript
JavaScript设计模式之单体模式全面解析
2016/09/09 Javascript
基于jQuery实现左侧菜单栏可折叠功能
2016/12/27 Javascript
微信小程序 Button 组件详解及简单实例
2017/01/10 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
基于axios 的responseType类型的设置方法
2019/10/29 Javascript
spyder常用快捷键(分享)
2017/07/19 Python
PyQt5每天必学之QSplitter实现窗口分隔
2018/04/19 Python
Python函数参数匹配模型通用规则keyword-only参数详解
2019/06/10 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
2019/07/15 Python
opencv 图像加法与图像融合的实现代码
2020/07/08 Python
欧洲最大的婴幼儿服装及内衣公司:Petit Bateau(小帆船)
2016/08/16 全球购物
英国50岁以上人群的交友网站:Ourtime
2018/03/28 全球购物
澳大利亚最大的网上油画销售画廊:Direct Art Australia
2018/04/15 全球购物
大学生志愿者感言
2014/01/15 职场文书
司机检讨书
2014/02/13 职场文书
中考冲刺决心书
2014/03/11 职场文书
消防安全宣传口号
2014/06/10 职场文书
《酸的和甜的》教学反思
2016/02/18 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js