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抓取网页图片示例(python爬虫)
Apr 27 Python
python学习教程之使用py2exe打包
Sep 24 Python
Python3实现发送QQ邮件功能(文本)
Dec 15 Python
python实现电脑自动关机
Jun 20 Python
Python实现网站表单提交和模板
Jan 15 Python
详解python算法之冒泡排序
Mar 05 Python
详解用Python为直方图绘制拟合曲线的两种方法
Aug 21 Python
python实现大量图片重命名
Mar 23 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
python实现从wind导入数据
Dec 03 Python
Python任务自动化工具tox使用教程
Mar 17 Python
5款实用的python 工具推荐
Oct 13 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实现telnet功能示例
2014/04/08 PHP
PHP封装的字符串加密解密函数
2015/12/18 PHP
js 提交和设置表单的值
2008/12/19 Javascript
JQuery 初体验(建议学习jquery)
2009/04/25 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
2010/06/25 Javascript
js data日期初始化的5种方法
2013/12/29 Javascript
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
jquery+CSS3实现3D拖拽相册效果
2016/07/18 Javascript
jQuery easyui刷新当前tabs的方法
2016/09/23 Javascript
完美解决UI-Grid表格元素中多个空格显示为一个空格的问题
2017/04/25 Javascript
vue中如何实现变量和字符串拼接
2017/06/19 Javascript
Express进阶之log4js实用入门指南
2018/02/10 Javascript
Vuex mutitons和actions初使用详解
2019/03/04 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
mock.js模拟数据实现前后端分离
2019/07/24 Javascript
layui表格分页 记录勾选的实例
2019/09/02 Javascript
解决ant design vue 表格a-table二次封装,slots渲染的问题
2020/10/28 Javascript
vue+Element-ui实现登录注册表单
2020/11/17 Javascript
教你如何将 Sublime 3 打造成 Python/Django IDE开发利器
2014/07/04 Python
Python中一行和多行import模块问题
2018/04/01 Python
Python操作Oracle数据库的简单方法和封装类实例
2018/05/07 Python
Django重置migrations文件的方法步骤
2019/05/01 Python
python3 实现函数写文件路径的正确方法
2019/11/27 Python
Python实现子类调用父类的初始化实例
2020/03/12 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
2020/06/28 Python
运动鞋中的劳斯莱斯:索康尼(SAUCONY)
2017/08/09 全球购物
AJAX检测用户名是否存在的方法
2021/03/24 Javascript
数控技术专科生自我评价
2014/01/08 职场文书
劳模先进事迹材料
2014/12/24 职场文书
小石潭记导游词
2015/02/03 职场文书
杜甫草堂导游词
2015/02/03 职场文书
情况说明书格式及范文
2019/06/24 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python
如何用JavaScipt测网速
2021/05/09 Javascript
Python如何识别银行卡卡号?
2021/06/10 Python