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 相关文章推荐
详解Python3.1版本带来的核心变化
Apr 07 Python
python3+PyQt5实现使用剪贴板做复制与粘帖示例
Jan 24 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
Python3 读、写Excel文件的操作方法
Oct 20 Python
PyQt5实现五子棋游戏(人机对弈)
Mar 24 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 Python
Python中字符串List按照长度排序
Jul 01 Python
wxPython+Matplotlib绘制折线图表
Nov 19 Python
python 实现字符串下标的输出功能
Feb 13 Python
Python填充任意颜色,不同算法时间差异分析说明
May 16 Python
Python中递归以及递归遍历目录详解
Oct 24 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接收POST数据方式
2015/06/05 PHP
php数组合并与拆分实例分析
2015/06/12 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
利用phpexcel对数据库数据的导入excel(excel筛选)、导出excel
2017/04/27 PHP
在Laravel5中正确设置文件权限的方法
2019/05/22 PHP
firefox浏览器下javascript 拖动层效果与原理分析代码
2007/12/04 Javascript
js关闭子窗体刷新父窗体实现方法
2012/12/04 Javascript
js汉字转拼音实现代码
2013/02/06 Javascript
js和jquery中循环的退出和继续下一个循环
2014/09/03 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
js实现键盘上下左右键选择文字并显示在文本框的方法
2015/05/07 Javascript
浅谈Jquery核心函数
2015/06/18 Javascript
jQuery插件formValidator自定义函数扩展功能实例详解
2015/11/25 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
jQuery  ready方法实现原理详解
2016/10/19 Javascript
JS中setTimeout和setInterval的最大延时值详解
2017/02/13 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
jQuery中的$是什么意思及 $. 和 $().的区别
2018/04/20 jQuery
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
webpack优化之代码分割与公共代码提取详解
2019/11/22 Javascript
单线程JavaScript实现异步过程详解
2020/05/19 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
python的文件操作方法汇总
2017/11/10 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python实现logistic分类算法代码
2020/02/28 Python
Python3.9.1中使用split()的处理方法(推荐)
2021/02/07 Python
html5之Canvas路径绘图、坐标变换应用实例
2012/12/26 HTML / CSS
乌克兰在线商店的价格比较:Price.ua
2019/07/26 全球购物
马来西亚在线购物市场:PGMall.my
2019/10/13 全球购物
vue+django实现下载文件的示例
2021/03/24 Vue.js
2014年三八妇女节活动总结
2014/03/01 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
质量提升方案
2014/06/16 职场文书
被告代理词范文
2015/05/25 职场文书