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中map、any、all函数用法分析
Apr 21 Python
使用Python的判断语句模拟三目运算
Apr 24 Python
Python实现的单向循环链表功能示例
Nov 10 Python
Python实现学生成绩管理系统
Apr 05 Python
python3.5 tkinter实现页面跳转
Jan 30 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
对Python正则匹配IP、Url、Mail的方法详解
Dec 25 Python
python实现QQ邮箱/163邮箱的邮件发送
Jan 22 Python
Python3 串口接收与发送16进制数据包的实例
Jun 12 Python
python在新的图片窗口显示图片(图像)的方法
Jul 11 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
如何让python的运行速度得到提升
Jul 08 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
建立动态的WML站点(二)
2006/10/09 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
ThinkPHP路由机制简介
2016/03/23 PHP
php apache开启跨域模式过程详解
2019/07/08 PHP
ExtJS Store的数据访问与更新问题
2010/04/28 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
js 代码优化点滴记录
2012/02/19 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
JS读取XML文件示例代码
2013/11/15 Javascript
理解javascript回调函数
2014/12/28 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
基于JS对象创建常用方式及原理分析
2017/06/28 Javascript
React Native如何消除启动时白屏的方法
2017/08/08 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
webpack+react+antd脚手架优化的方法
2018/04/02 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
原生js实现自定义滚动条组件
2021/01/20 Javascript
Python中特殊函数集锦
2015/07/27 Python
python类的继承实例详解
2017/03/30 Python
opencv python统计及绘制直方图的方法
2019/01/21 Python
python wsgiref源码解析
2021/02/06 Python
e路東瀛(JAPANiCAN)香港:日本旅游、日本酒店和温泉旅馆预订
2018/11/21 全球购物
美国综合购物商城:UnbeatableSale.com
2018/11/28 全球购物
物业经理自我鉴定
2014/03/03 职场文书
职业女性的职业规划
2014/03/04 职场文书
法人代表身份证明书及授权委托书
2014/09/16 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
英语辞职信范文
2015/02/28 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
交通安全教育心得体会
2016/01/15 职场文书
2016学习全国教书育人楷模先进事迹心得体会
2016/01/21 职场文书
2019年怎样写好导游词?
2019/07/02 职场文书
使用react-virtualized实现图片动态高度长列表的问题
2021/05/28 Javascript