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 相关文章推荐
使用SAE部署Python运行环境的教程
May 05 Python
Python使用chardet判断字符编码
May 09 Python
详解Python编程中对Monkey Patch猴子补丁开发方式的运用
May 27 Python
Python while 循环使用的简单实例
Jun 08 Python
virtualenv实现多个版本Python共存
Aug 21 Python
Python正则表达式知识汇总
Sep 22 Python
python3如何将docx转换成pdf文件
Mar 23 Python
在cmd中运行.py文件: python的操作步骤
May 12 Python
Python实现京东秒杀功能代码
May 16 Python
python实现简单图书管理系统
Nov 22 Python
Python中bisect的使用方法
Dec 31 Python
Python中三种花式打印的示例详解
Mar 19 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
PHP精确计算功能示例
2016/11/29 PHP
php自定义函数br2nl实现将html中br换行符转换为文本输入中换行符的方法【与函数nl2br功能相反】
2017/02/17 PHP
PHP数组去重的更快实现方式分析
2018/05/09 PHP
JavaScript实现点击按钮后变灰避免多次重复提交
2013/07/15 Javascript
Jquery easyui 下loaing效果示例代码
2013/08/12 Javascript
table insertRow、deleteRow定义和用法总结
2014/05/14 Javascript
基于jquery实现动态竖向柱状条特效
2016/02/12 Javascript
javascript运算符——位运算符全面介绍
2016/07/14 Javascript
动态生成的DOM不会触发onclick事件的原因及解决方法
2016/08/06 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
使用express+multer实现node中的图片上传功能
2018/02/02 Javascript
React Native 图片查看组件的方法
2018/03/01 Javascript
详解Chart.js轻量级图表库的使用经验
2018/05/22 Javascript
使用gulp构建前端自动化的方法示例
2018/12/25 Javascript
JS中的函数与对象的创建方式
2019/05/12 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
jQuery加PHP实现图片上传并提交的示例代码
2020/07/16 jQuery
Echarts.js无法引入问题解决方案
2020/10/30 Javascript
关于JavaScript中异步/等待的用法与理解
2020/11/18 Javascript
[40:05]LGD vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
Python手机号码归属地查询代码
2016/05/04 Python
python中requests小技巧
2017/05/10 Python
python求加权平均值的实例(附纯python写法)
2019/08/22 Python
Python远程方法调用实现过程解析
2020/07/28 Python
用Python自动清理系统垃圾的实现
2021/01/18 Python
导出HTML5 Canvas图片并上传服务器功能
2019/08/16 HTML / CSS
瑞士图书网站:Weltbild.ch
2019/09/17 全球购物
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
Linux如何为某个操作添加别名
2015/02/05 面试题
小学假期安全广播稿
2014/09/28 职场文书
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
会议承办单位欢迎词
2015/09/30 职场文书
导游词创作书写原则以及开场白技巧怎么学?
2019/09/25 职场文书