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实现采用进度条实时显示处理进度的方法
Dec 19 Python
详解python3中的真值测试
Aug 13 Python
Python + selenium + requests实现12306全自动抢票及验证码破解加自动点击功能
Nov 23 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
Python实现二叉树前序、中序、后序及层次遍历示例代码
May 18 Python
Python 3.8中实现functools.cached_property功能
May 29 Python
python 应用之Pycharm 新建模板默认添加编码格式-作者-时间等信息【推荐】
Jun 17 Python
Flask模板引擎之Jinja2语法介绍
Jun 26 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
Python实现AES加密,解密的两种方法
Oct 03 Python
python 实现性别识别
Nov 21 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
Dec 04 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
Google Voice 短信发送接口PHP开源版(2010.5更新)
2010/07/22 PHP
php添加文章时生成静态HTML文章的实现代码
2013/02/17 PHP
PHP更新购物车数量(表单部分/PHP处理部分)
2013/05/03 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
CI框架中数据库操作函数$this-&gt;db-&gt;where()相关用法总结
2016/05/17 PHP
php7安装mongoDB扩展的方法分析
2017/08/02 PHP
innerHTML 和 getElementsByName 在IE下面的bug 的解决
2010/04/09 Javascript
jQuery之排序组件的深入解析
2013/06/19 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
JS实现从表格中动态删除指定行的方法
2015/03/31 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
js微信分享API
2020/10/11 Javascript
AngularJS 依赖注入详解和简单实例
2016/07/28 Javascript
JavaScript实现DOM对象选择器
2016/09/24 Javascript
JavaScript实现水平进度条拖拽效果
2017/01/18 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
jQuery菜单实例(全选,反选,取消)
2017/08/28 jQuery
JS组件系列之Gojs组件 前端图形化插件之利器
2017/11/29 Javascript
微信小程序实现图片上传、删除和预览功能的方法
2017/12/18 Javascript
JS实现面向对象继承的5种方式分析
2018/07/21 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
javascript用defineProperty实现简单的双向绑定方法
2020/04/03 Javascript
[04:13]2018国际邀请赛典藏宝瓶Ⅱ饰品一览
2018/07/21 DOTA
python妹子图简单爬虫实例
2015/07/07 Python
利用Python破解验证码实例详解
2016/12/08 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
暑期实践思想汇报
2014/01/06 职场文书
审计主管岗位职责
2014/01/31 职场文书
三八节主持词
2014/03/17 职场文书
预备党员公开承诺书
2014/05/28 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
旷工辞退通知书
2015/04/17 职场文书
盲山观后感
2015/06/11 职场文书