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开发vim插件及心得分享
Nov 04 Python
python实现的系统实用log类实例
Jun 30 Python
python生成二维码的实例详解
Oct 29 Python
Python实现的选择排序算法示例
Nov 29 Python
详解django.contirb.auth-认证
Jul 16 Python
python实现图片彩色转化为素描
Jan 15 Python
Python Pillow Image Invert
Jan 22 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
python pandas写入excel文件的方法示例
Jun 25 Python
python pyenv多版本管理工具的使用
Dec 23 Python
Python 实现二叉查找树的示例代码
Dec 21 Python
Python实现Word文档转换Markdown的示例
Dec 22 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过滤html字符串,防止SQL注入的方法
2013/07/02 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
使用php验证复选框有效性的示例
2013/11/13 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
php中switch语句用法详解
2015/08/17 PHP
PHP PDOStatement::bindColumn讲解
2019/01/30 PHP
JSONP 跨域访问代理API-yahooapis实现代码
2012/12/02 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
IE中getElementsByName()对有些元素无效的解决方案
2014/09/28 Javascript
angularjs指令中的compile与link函数详解
2014/12/06 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖动基本操作
2015/11/30 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
2017/07/28 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
2017/09/04 Javascript
详解Vue + Vuex 如何使用 vm.$nextTick
2017/11/20 Javascript
解决vue的 v-for 循环中图片加载路径问题
2018/09/03 Javascript
微信小程序上线发布流程图文详解
2019/05/06 Javascript
eslint 的三大通用规则详解
2019/05/16 Javascript
微信小程序开发之map地图组件定位并手动修改位置偏差
2019/08/17 Javascript
微信小程序反编译的实现
2020/12/10 Javascript
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
python使用opencv驱动摄像头的方法
2018/08/03 Python
对Pandas DataFrame缺失值的查找与填充示例讲解
2018/11/06 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
2019/10/17 Python
Python如何使用队列方式实现多线程爬虫
2020/05/12 Python
Python中zip函数如何使用
2020/06/04 Python
应届护士求职信范文
2014/01/26 职场文书
2014小学生国庆65周年演讲稿
2014/09/21 职场文书
大学生先进个人主要事迹材料
2015/11/04 职场文书
年终工作总结范文
2019/06/20 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
win11自动弹出虚拟键盘怎么关闭? Win11关闭虚拟键盘的技巧
2023/01/09 数码科技