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 16 Python
Linux环境下MySQL-python安装过程分享
Feb 02 Python
python中的计时器timeit的使用方法
Oct 20 Python
Python3学习urllib的使用方法示例
Nov 29 Python
python按照多个条件排序的方法
Feb 08 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
python针对mysql数据库的连接、查询、更新、删除操作示例
Sep 11 Python
python循环输出三角形图案的例子
Nov 22 Python
基于TensorFlow中自定义梯度的2种方式
Feb 04 Python
Python3将ipa包中的文件按大小排序
Apr 17 Python
python如何进入交互模式
Jul 06 Python
python保存图片的四个常用方法
Feb 28 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 &amp;&amp; 逻辑与运算符使用说明
2010/03/04 PHP
php下使用curl模拟用户登陆的代码
2010/09/10 PHP
详解js异步文件加载器
2016/01/24 PHP
微信开发之php表单微信中自动提交两次问题解决办法
2017/01/08 PHP
PHP simplexml_import_dom()函数讲解
2019/02/03 PHP
Avengerls vs Newbee BO3 第三场2.18
2021/03/10 DOTA
解决使用attachEvent函数时,this指向被绑定的元素的问题的方法
2007/08/13 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
Mac OS X 系统下安装和部署Egret引擎开发环境
2014/09/03 Javascript
Angularjs编写KindEditor,UEidtor,jQuery指令
2015/01/28 Javascript
Clipboard.js 无需Flash的JavaScript复制粘贴库
2015/10/02 Javascript
jquery仿QQ登录账号选择下拉框效果
2016/03/22 Javascript
Angular 根据 service 的状态更新 directive
2016/04/03 Javascript
js实现统计字符串中特定字符出现个数的方法
2016/08/02 Javascript
Linux使用Node.js建立访问静态网页的服务实例详解
2017/03/21 Javascript
Vue计算属性的使用
2017/08/04 Javascript
利用ES6的Promise.all实现至少请求多长时间的实例
2017/08/28 Javascript
微信小程序调用摄像头隐藏式拍照功能
2018/08/22 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
解决node.js含有%百分号时发送get请求时浏览器地址自动编码的问题
2019/11/20 Javascript
原生js+ajax分页组件
2020/01/30 Javascript
跟老齐学Python之编写类之一创建实例
2014/10/11 Python
Python 类的特殊成员解析
2018/06/20 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
python实现xml转json文件的示例代码
2020/12/30 Python
详解使用scrapy进行模拟登陆三种方式
2021/02/21 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
农业大学毕业生的个人自我评价
2013/10/11 职场文书
小区门卫岗位职责
2013/12/31 职场文书
工程开工庆典邀请函
2014/02/01 职场文书
加多宝凉茶广告词
2014/03/18 职场文书
员工生日活动方案
2014/08/24 职场文书
红高粱观后感
2015/06/10 职场文书
开票证明
2015/06/23 职场文书
运动会宣传稿50字
2015/07/23 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技