python smtplib模块实现发送邮件带附件sendmail


Posted in Python onMay 22, 2018

本文实例为大家分享了python smtplib实现发送邮件的具体代码,供大家参考,具体内容如下

#!/usr/bin/env python 
# -*- coding: UTF-8 -*- 
 
from email.mime.multipart import MIMEMultipart 
from email.mime.base import MIMEBase 
from email.mime.text import MIMEText 
  
from email.utils import COMMASPACE,formatdate 
from email import encoders 
  
import os 
  
def send_mail(server, fro, to, subject, text, files=[]):  
  assert type(server) == dict  
  assert type(to) == list  
  assert type(files) == list  
  
  msg = MIMEMultipart()  
  msg['From'] = fro  
  msg['Subject'] = subject  
  msg['To'] = COMMASPACE.join(to) #COMMASPACE==', '  
  msg['Date'] = formatdate(localtime=True)  
  msg.attach(MIMEText(text))  
  
  for f in files:  
    part = MIMEBase('application', 'octet-stream') #'octet-stream': binary data  
    part.set_payload(open(f, 'rb').read())  
    encoders.encode_base64(part)  
    part.add_header('Content-Disposition', 'attachment; filename="%s"' % os.path.basename(f))  
    msg.attach(part)  
  
  import smtplib  
  smtp = smtplib.SMTP(server['name'], server['port'])  
  smtp.ehlo() 
  smtp.starttls() 
  smtp.ehlo()  
  smtp.login(server['user'], server['passwd'])  
  smtp.sendmail(fro, to, msg.as_string())  
  smtp.close() 
   
if __name__=='__main__': 
  server = {'name':'mail.server.com', 'user':'chenxiaowu', 'passwd':'xxxx', 'port':25} 
  fro = 'chenxiaowu@163.com' 
  to = ['xxxx@163.com'] 
  subject = '脚本运行提醒' 
  text = 'mail content' 
  files = ['top_category.txt'] 
  send_mail(server, fro, to, subject, text, files=files)

从网上找了些资料,不会有个别错误,上面代码经调试测试通过。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的字典遍历备忘
Jan 17 Python
python字符串对其居中显示的方法
Jul 11 Python
python使用opencv进行人脸识别
Apr 07 Python
用tensorflow实现弹性网络回归算法
Jan 09 Python
python自动发送测试报告邮件功能的实现
Jan 22 Python
python使用KNN算法识别手写数字
Apr 25 Python
django框架CSRF防护原理与用法分析
Jul 22 Python
python Elasticsearch索引建立和数据的上传详解
Aug 04 Python
python实现将列表中各个值快速赋值给多个变量
Apr 02 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
Apr 08 Python
Django rest framework如何自定义用户表
Jun 09 Python
python神经网络学习 使用Keras进行简单分类
May 04 Python
点球小游戏python脚本
May 22 #Python
python smtplib模块自动收发邮件功能(二)
May 22 #Python
python smtplib模块自动收发邮件功能(一)
May 22 #Python
python模块smtplib学习
May 22 #Python
Pipenv一键搭建python虚拟环境的方法
May 22 #Python
PyTorch线性回归和逻辑回归实战示例
May 22 #Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 #Python
You might like
php入门学习知识点五 关于php数组的几个基本操作
2011/07/14 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php图像处理类实例
2015/07/28 PHP
nginx下安装php7+php5
2016/07/31 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
Js动态创建div
2008/09/25 Javascript
ext 同步和异步示例代码
2009/09/18 Javascript
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
Javascript学习笔记 delete运算符
2011/09/13 Javascript
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
javascript 禁用IE工具栏,导航栏等等实现代码
2013/04/01 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
2014/05/14 Javascript
JQuery遍历json数组的3种方法
2014/11/08 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
Ionic + Angular.js实现图片轮播的方法示例
2017/05/21 Javascript
详解react使用react-bootstrap当轮子造车
2017/08/15 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
VUE + UEditor 单图片跨域上传功能的实现方法
2018/02/08 Javascript
官方推荐react-navigation的具体使用详解
2018/05/08 Javascript
JavaScript实现简单音乐播放器
2020/04/17 Javascript
微信小程序websocket聊天室的实现示例代码
2019/02/12 Javascript
详解在网页上通过JS实现文本的语音朗读
2019/03/28 Javascript
如何使用Node.js爬取任意网页资源并输出PDF文件到本地
2019/06/17 Javascript
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
python实现数据分析与建模
2019/07/11 Python
Python算法中的时间复杂度问题
2019/11/19 Python
Python3和pyqt5实现控件数据动态显示方式
2019/12/13 Python
OpenCV python sklearn随机超参数搜索的实现
2020/01/17 Python
丝芙兰新加坡官网:Sephora新加坡
2018/12/04 全球购物
介绍一下JNDI的基本概念
2013/07/26 面试题
大专生的学习自我评价
2013/12/04 职场文书
高中军训感言500字
2014/02/24 职场文书
清扬洗发水广告词
2014/03/14 职场文书
工程承包协议书范本
2014/09/29 职场文书
关于vue-router-link选择样式设置
2022/04/30 Vue.js