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 22 Python
idea创建springMVC框架和配置小文件的教程图解
Sep 18 Python
python bmp转换为jpg 并删除原图的方法
Oct 25 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
Jan 19 Python
Ubuntu18.04下python版本完美切换的解决方法
Jun 14 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
Aug 02 Python
Python中zip()函数的解释和可视化(实例详解)
Feb 16 Python
postman和python mock测试过程图解
Feb 22 Python
TensorFlow2.X结合OpenCV 实现手势识别功能
Apr 08 Python
在echarts中图例legend和坐标系grid实现左右布局实例
May 16 Python
python用opencv完成图像分割并进行目标物的提取
May 25 Python
python如何实现DES加密
Sep 21 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 Session 变量的使用方法详解与实例代码
2013/09/11 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
2016/09/30 PHP
php简单统计中文个数的方法
2016/09/30 PHP
php使用高斯算法实现图片的模糊处理功能示例
2016/11/11 PHP
AJAX的使用方法详解
2017/04/29 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
实例:用 JavaScript 来操作字符串(一些字符串函数)
2007/02/15 Javascript
location.search在客户端获取Url参数的方法
2010/06/08 Javascript
IE中jquery.form中ajax提交没反应解决方法分享
2012/09/11 Javascript
用JavaScript计算在UTF-8下存储字符串占用字节数
2013/08/08 Javascript
js通过location.search来获取页面传来的参数
2014/09/11 Javascript
JS非Alert实现网页右下角“未读信息”效果弹窗
2015/09/26 Javascript
jQuery添加删除DOM元素方法详解
2016/01/18 Javascript
js实现数字递增特效【仿支付宝我的财富】
2017/05/05 Javascript
小白教程|一小时上手最流行的前端框架vue(推荐)
2019/04/10 Javascript
在Vue中使用Select选择器拼接label的操作
2020/10/22 Javascript
微信小程序实现点击导航条切换页面
2020/11/19 Javascript
Vue+scss白天和夜间模式切换功能的实现方法
2021/01/05 Vue.js
解决DataFrame排序sort的问题
2018/06/07 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
2018/06/11 Python
对Python中数组的几种使用方法总结
2018/06/28 Python
Python按钮的响应事件详解
2019/03/04 Python
基于python 凸包问题的解决
2020/04/16 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
Django+Django-Celery+Celery的整合实战
2021/01/20 Python
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
video实现有声音自动播放的实现方法
2020/05/20 HTML / CSS
Ajax主要包含了哪些技术
2014/06/12 面试题
市场营销专业个人求职信范文
2013/12/14 职场文书
房地产财务管理制度
2014/02/02 职场文书
学校安全工作汇报材料
2014/08/16 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
党员评议自我评价
2015/03/03 职场文书
《蚂蚁和蝈蝈》教学反思
2016/02/22 职场文书
使用CSS自定义属性实现骨架屏效果
2022/06/21 HTML / CSS