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性能优化的20条建议
Oct 25 Python
python递归查询菜单并转换成json实例
Mar 27 Python
对python 判断数字是否小于0的方法详解
Jan 26 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
pyqt5 实现在别的窗口弹出进度条
Jun 18 Python
使用Pytorch来拟合函数方式
Jan 14 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
Python中import导入不同目录的模块方法详解
Feb 18 Python
python递归调用中的坑:打印有值, 返回却None
Mar 16 Python
解决Python 异常TypeError: cannot concatenate 'str' and 'int' objects
Apr 08 Python
Pycharm安装Qt Design快捷工具的详细教程
Nov 18 Python
python3 实现mysql数据库连接池的示例代码
Apr 17 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
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
手把手编写PHP框架 深入了解MVC运行流程
2016/09/19 PHP
Thinkphp 框架扩展之应用模式实现方法分析
2020/04/27 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
jscript之Read an Excel Spreadsheet
2007/06/13 Javascript
javascript iframe中打开文件,并检测iframe存在否
2008/12/28 Javascript
JQuery将文本转化成JSON对象需要注意的问题
2011/05/09 Javascript
jQuery判断复选框是否勾选的原理及示例
2014/05/21 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
js实现仿爱微网两级导航菜单效果代码
2015/08/31 Javascript
js中的关联数组与普通数组详解
2016/07/27 Javascript
Angular4学习笔记之根模块与Ng模块
2017/09/09 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
简单明了区分escape、encodeURI和encodeURIComponent
2018/05/26 Javascript
4个顶级开源JavaScript图表库
2018/09/29 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
javascript随机变色实例代码
2019/10/15 Javascript
JS中自定义事件的使用与触发操作实例分析
2019/11/01 Javascript
微信小程序实现列表的横向滑动方式
2020/07/15 Javascript
解决echarts echarts数据动态更新和dataZoom被重置问题
2020/07/20 Javascript
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
Python 中如何写注释
2020/08/28 Python
通过代码实例了解Python3编程技巧
2020/10/13 Python
匈牙利最大的健身制造商和销售商:inSPORTline
2018/10/30 全球购物
财务与信息服务专业推荐信
2013/11/28 职场文书
护士的岗位职责
2013/12/04 职场文书
大学生秋游活动方案
2014/02/17 职场文书
求职者怎样写自荐信
2014/04/13 职场文书
消防安全宣传口号
2014/06/10 职场文书
安全隐患整改报告
2014/11/06 职场文书
2015年幼儿园中班工作总结
2015/04/25 职场文书
新郎婚礼致辞
2015/07/27 职场文书
高中政治教学反思
2016/02/23 职场文书
2016年劳模先进事迹材料
2016/02/25 职场文书
MySQL 隔离数据列和前缀索引的使用总结
2021/05/14 MySQL