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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
python中urlparse模块介绍与使用示例
Nov 19 Python
python 使用值来排序一个字典的方法
Nov 16 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
python的内存管理和垃圾回收机制详解
May 18 Python
Python中遍历列表的方法总结
Jun 27 Python
超简单的Python HTTP服务
Jul 22 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
Python简易计算器制作方法代码详解
Oct 31 Python
python实现小世界网络生成
Nov 21 Python
Python抓新型冠状病毒肺炎疫情数据并绘制全国疫情分布的代码实例
Feb 05 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
Feb 17 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
getJSON跨域SyntaxError问题分析
2014/08/07 PHP
PHP集成百度Ueditor 1.4.3
2014/11/23 PHP
CI框架简单邮件发送类实例
2016/05/18 PHP
smarty模板数学运算示例
2016/12/11 PHP
PHP实现的支付宝支付功能示例
2019/03/26 PHP
yii2 在控制器中验证请求参数的使用方法
2019/06/19 PHP
Google Maps API地图应用示例分享
2014/10/23 Javascript
Angularjs 自定义服务的三种方式(推荐)
2016/08/02 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
基于JavaScript实现下拉列表左右移动代码
2017/02/07 Javascript
Vue计算属性的使用
2017/08/04 Javascript
jQuery实现点击DIV同时点击CheckBox,并为DIV上背景色的实例
2017/12/18 jQuery
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
详解微信小程序调用支付接口支付
2019/04/28 Javascript
前端js中的事件循环eventloop机制详解
2019/05/15 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
Python函数中的函数(闭包)用法实例
2016/03/15 Python
python实现类之间的方法互相调用
2018/04/29 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python进阶之自定义可迭代的类
2019/08/20 Python
Django框架 Pagination分页实现代码实例
2019/09/04 Python
基于Python把网站域名解析成ip地址
2020/05/25 Python
Django项目创建及管理实现流程详解
2020/10/13 Python
三年级语文教学反思
2014/02/01 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
就业意向书
2014/07/29 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
民主评议党员自我评议范文2014
2014/09/26 职场文书
见习报告格式要求
2014/11/04 职场文书
2015年元旦标语大全
2014/12/09 职场文书
社会治安综合治理责任书
2015/01/29 职场文书
承兑汇票延期证明
2015/06/23 职场文书
外出听课学习心得体会
2016/01/15 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
SQL Server一个字符串拆分多行显示或者多行数据合并成一个字符串
2022/05/25 SQL Server