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 与文件对象共事的实例
Sep 11 Python
python使用opencv按一定间隔截取视频帧
Mar 06 Python
python+pandas生成指定日期和重采样的方法
Apr 11 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
Appium Python自动化测试之环境搭建的步骤
Jan 23 Python
用python拟合等角螺线的实现示例
Dec 27 Python
python基于opencv检测程序运行效率
Dec 28 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
Python爬虫爬取糗事百科段子实例分享
Jul 31 Python
Django如何使用asyncio协程和ThreadPoolExecutor多线程
Oct 12 Python
如何创建一个Flask项目并进行简单配置
Nov 18 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
Feb 25 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
JavaScript OOP类与继承
2009/11/15 Javascript
jquery实现的超出屏幕时把固定层变为定位层的代码
2010/02/23 Javascript
js数组方法扩展实现数组统计函数
2014/04/09 Javascript
如何防止回车(enter)键提交表单
2014/05/11 Javascript
JavaScript实现身份证验证代码
2016/02/17 Javascript
jQuery Mobile 触摸事件实例
2016/06/04 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
微信小程序实现轮播图效果
2017/09/07 Javascript
js中offset,client , scroll 三大元素知识点总结
2019/09/11 Javascript
layui实现显示数据表格、搜索和修改功能示例
2020/06/03 Javascript
js实现拖拽元素选择和删除
2020/08/25 Javascript
numpy中的高维数组转置实例
2018/04/17 Python
Python socket实现的简单通信功能示例
2018/08/21 Python
浅析Python函数式编程
2018/10/06 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
2018/12/12 Python
python3 深浅copy对比详解
2019/08/12 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
python 用户交互输入input的4种用法详解
2019/09/24 Python
PyTorch加载预训练模型实例(pretrained)
2020/01/17 Python
Python 写了个新型冠状病毒疫情传播模拟程序
2020/02/14 Python
PyTorch中Tensor的数据统计示例
2020/02/17 Python
python入门教程之基本算术运算符
2020/11/13 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
python 利用jieba.analyse进行 关键词提取
2020/12/17 Python
html5菜单折纸效果
2014/04/22 HTML / CSS
优秀学生干部推荐材料
2014/02/03 职场文书
销售竞赛活动方案
2014/08/23 职场文书
创先争优活动心得体会
2014/09/04 职场文书
银行授权委托书格式
2014/10/10 职场文书
寻找最美乡村教师观后感
2015/06/18 职场文书
关于运动会的宣传稿
2015/07/23 职场文书
SQL Server数据定义——模式与基本表操作
2021/04/05 SQL Server
如何使用Python提取Chrome浏览器保存的密码
2021/06/09 Python
python编程项目中线上问题排查与解决
2021/11/01 Python
SpringCloud Feign请求头删除修改的操作代码
2022/03/20 Java/Android
Python中的协程(Coroutine)操作模块(greenlet、gevent)
2022/05/30 Python