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获取图片颜色信息的方法
Mar 18 Python
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
Jun 14 Python
django实现前后台交互实例
Aug 07 Python
使用sklearn之LabelEncoder将Label标准化的方法
Jul 11 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
如何使用django的MTV开发模式返回一个网页
Jul 22 Python
Django框架视图函数设计示例
Jul 29 Python
Python函数基本使用原理详解
Mar 19 Python
Python ArgumentParse的subparser用法说明
Apr 20 Python
Python run()函数和start()函数的比较和差别介绍
May 03 Python
解决python使用list()时总是报错的问题
May 05 Python
Elasticsearch 索引操作和增删改查
Apr 19 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
上海永华YH-R296(华普R-96)12波段立体声收音机的分析和打理
2021/03/02 无线电
业余方法DIY电子管FM收音机
2021/03/02 无线电
php学习之数据类型之间的转换代码
2011/05/29 PHP
用PHP实现的四则运算表达式计算实现代码
2011/08/02 PHP
真正根据utf8编码的规律来进行截取字符串的函数(utf8版sub_str )
2012/10/24 PHP
PHP可变函数学习小结
2015/11/29 PHP
php错误日志简单配置方法
2016/07/11 PHP
laravel实现登录时监听事件,添加登录用户的记录方法
2019/09/30 PHP
functional继承模式 摘自javascript:the good parts
2011/06/20 Javascript
基于JQuery的模拟苹果桌面Dock效果(稳定版)
2012/10/15 Javascript
java与javascript之间json格式数据互转介绍
2013/10/29 Javascript
JS实现匀速运动的代码实例
2013/11/29 Javascript
JavaScript检测弹出窗口是否已经关闭的方法
2015/03/24 Javascript
angularjs学习笔记之完整的项目结构
2015/09/26 Javascript
JS实现的网页背景闪电闪烁效果代码
2015/10/17 Javascript
JS实现单击输入框弹出选择框效果完整实例
2015/12/14 Javascript
vue父组件向子组件传递多个数据的实例
2018/03/01 Javascript
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
浅谈Vue.js之初始化el以及数据的绑定说明
2019/11/14 Javascript
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
解决python给列表里添加字典时被最后一个覆盖的问题
2019/01/21 Python
pyhanlp安装介绍和简单应用
2019/02/22 Python
python线程信号量semaphore使用解析
2019/11/30 Python
Python使用pdb调试代码的技巧
2020/05/03 Python
django rest framework 自定义返回方式
2020/07/12 Python
全网最详细的PyCharm+Anaconda的安装过程图解
2021/01/25 Python
关于HTML5你必须知道的28个新特性,新技巧以及新技术
2012/05/28 HTML / CSS
安全月活动总结
2014/05/05 职场文书
幼儿教师暑期培训方案
2014/08/27 职场文书
房屋鉴定委托书范本
2014/09/23 职场文书
群众路线班子对照检查材料
2014/09/25 职场文书
信访维稳承诺书
2015/05/04 职场文书
2015年防汛工作总结
2015/05/15 职场文书
古诗文之爱国名句(77句)
2019/09/24 职场文书
python实现网络五子棋
2021/04/11 Python