python SMTP实现发送带附件电子邮件


Posted in Python onMay 22, 2018

本文实例为大家分享了python SMTP发送带附件电子邮件的具体代码,供大家参考,具体内容如下

可采用email模块发送电子邮件附件。发送一个未知MIME类型的文件附件其基本思路如下:

1. 构造MIMEMultipart对象做为根容器
2. 构造MIMEText对象做为邮件显示内容并附加到根容器
3. 构造MIMEBase对象做为文件附件内容并附加到根容器

a. 读入文件内容并格式化

b. 设置附件头
4. 设置根容器属性
5. 得到格式化后的完整文本
6. 用smtp发送邮件

具体内容参见<programing python(3rd)> 14章第6节 “email: Parsing and Composing Mails”。发送一个未知MIME类型的文件附件实例代码如下:

import smtplib
import email.MIMEMultipart
import email.MIMEText
import email.MIMEBase
import os.path
 
From = "sender address"
To = "recipients"
file_name = "file name"
 
server = smtplib.SMTP("smtp server address")
server.login("username","password") #仅smtp服务器需要验证时
 
# 构造MIMEMultipart对象做为根容器
main_msg = email.MIMEMultipart.MIMEMultipart()
 
# 构造MIMEText对象做为邮件显示内容并附加到根容器
text_msg = email.MIMEText.MIMEText("this is a test text to text mime")
main_msg.attach(text_msg)
 
# 构造MIMEBase对象做为文件附件内容并附加到根容器
contype = 'application/octet-stream'
maintype, subtype = contype.split('/', 1)
 
## 读入文件内容并格式化
data = open(file_name, 'rb')
file_msg = email.MIMEBase.MIMEBase(maintype, subtype)
file_msg.set_payload(data.read( ))
data.close( )
email.Encoders.encode_base64(file_msg)
 
## 设置附件头
basename = os.path.basename(file_name)
file_msg.add_header('Content-Disposition',
 'attachment', filename = basename)
main_msg.attach(file_msg)
 
# 设置根容器属性
main_msg['From'] = From
main_msg['To'] = To
main_msg['Subject'] = "attach test "
main_msg['Date'] = email.Utils.formatdate( )
 
# 得到格式化后的完整文本
fullText = main_msg.as_string( )
 
# 用smtp发送邮件
try:
 server.sendmail(From, To, fullText)
finally:
 server.quit()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python后端接收前端回传的文件方法
Jan 02 Python
python在OpenCV里实现投影变换效果
Aug 30 Python
Python Tkinter模块 GUI 可视化实例
Nov 20 Python
关于Python3 lambda函数的深入浅出
Nov 27 Python
pytorch中的transforms模块实例详解
Dec 31 Python
django的模型类管理器——数据库操作的封装详解
Apr 01 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
python与c语言的语法有哪些不一样的
Sep 13 Python
python全栈开发语法总结
Nov 22 Python
PyQt5通过信号实现MVC的示例
Feb 06 Python
Python基础之操作MySQL数据库
May 06 Python
python 如何将两个实数矩阵合并为一个复数矩阵
May 19 Python
python 获取当天凌晨零点的时间戳方法
May 22 #Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 #Python
python3.x实现发送邮件功能
May 22 #Python
python 爬虫 批量获取代理ip的实例代码
May 22 #Python
python 获取当天每个准点时间戳的实例
May 22 #Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 #Python
python3实现163邮箱SMTP发送邮件
May 22 #Python
You might like
PHP中的正规表达式(一)
2006/10/09 PHP
微信扫描二维码登录网站代码示例
2013/12/30 PHP
浅谈PHP中JSON数据操作
2015/07/01 PHP
PHP获取用户访问IP地址的5种方法
2016/05/16 PHP
php操作路径的经典方法(必看篇)
2016/10/04 PHP
PHP中Laravel 关联查询返回错误id的解决方法
2017/04/01 PHP
Javascript匿名函数的一种应用 代码封装
2010/06/27 Javascript
Javascript异步编程的4种方法让你写出更出色的程序
2013/01/17 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
轻量级网页遮罩层jQuery插件用法实例
2015/07/31 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
node.js中debug模块的简单介绍与使用
2017/04/25 Javascript
JQuery EasyUI的一些常用组件
2017/07/12 jQuery
node.js 发布订阅模式的实例
2017/09/10 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
vux-scroller实现移动端上拉加载功能过程解析
2019/10/08 Javascript
js实现简易ATM功能
2020/10/27 Javascript
[37:22]DOTA2上海特级锦标赛D组资格赛#2 Liquid VS VP第一局
2016/02/28 DOTA
python解析基于xml格式的日志文件
2017/02/25 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
Python迭代器与生成器基本用法分析
2018/07/26 Python
Python模拟简单电梯调度算法示例
2018/08/20 Python
Python常用的json标准库
2019/02/19 Python
Python+Pyqt实现简单GUI电子时钟
2021/02/22 Python
python 如何上传包到pypi
2020/12/24 Python
CSS3 icon font完全指南(CSS3 font 会取代icon图标)
2013/01/06 HTML / CSS
html5是什么_动力节点Java学院整理
2017/07/07 HTML / CSS
泰国王权免税店官方网站:KingPower
2019/03/11 全球购物
英文推荐信格式范文
2014/05/09 职场文书
美术第二课堂活动总结
2014/07/08 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
服装店员工管理制度
2015/08/07 职场文书
学生早退检讨书(范文)
2019/08/19 职场文书
python 实现德洛内三角剖分的操作
2021/04/22 Python