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创建声明性迷你语言的教程
Apr 13 Python
Python导出数据到Excel可读取的CSV文件的方法
May 12 Python
Python正则获取、过滤或者替换HTML标签的方法
Jan 28 Python
举例讲解Python中的Null模式与桥接模式编程
Feb 02 Python
Django自带的加密算法及加密模块详解
Dec 03 Python
Python和Anaconda和Pycharm安装教程图文详解
Feb 04 Python
Python3实现建造者模式的示例代码
Jun 28 Python
Python使用socket模块实现简单tcp通信
Aug 18 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 Python
python爬虫破解字体加密案例详解
Mar 02 Python
Python离线安装openpyxl模块的步骤
Mar 30 Python
Python的property属性详细讲解
Apr 11 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使用数组实现队列
2012/02/05 PHP
php页面缓存ob系列函数介绍
2012/10/18 PHP
基于PHP实现短信验证码接口(容联运通讯)
2016/09/06 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
小程序微信退款功能实现方法详解【基于thinkPHP】
2019/05/05 PHP
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
JS利用cookie记忆当前位置的防刷新导航效果
2015/10/15 Javascript
JavaScript学习总结之JS、AJAX应用
2016/01/29 Javascript
如何使用PHP+jQuery+MySQL实现异步加载ECharts地图数据(附源码下载)
2016/02/23 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
基于JavaScript实现无限加载瀑布流
2017/07/21 Javascript
浅谈vue中使用图片懒加载vue-lazyload插件详细指南
2017/10/23 Javascript
echarts实现折线图的拖拽效果
2019/12/19 Javascript
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
详解Python3中yield生成器的用法
2015/08/20 Python
Django中使用celery完成异步任务的示例代码
2018/01/23 Python
把csv文件转化为数组及数组的切片方法
2018/07/04 Python
Python重新加载模块的实现方法
2018/10/16 Python
python pyheatmap包绘制热力图
2018/11/09 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
python ChainMap 合并字典的实现步骤
2019/06/11 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
使用Tkinter制作信息提示框
2020/02/18 Python
Python如何输出整数
2020/06/07 Python
python 基于wx实现音乐播放
2020/11/24 Python
如何用python实现一个HTTP连接池
2021/01/14 Python
荷兰领先的百货商店:De Bijenkorf
2018/10/17 全球购物
计算 s=(x*y)1/2,用两个宏定义来实现
2016/08/11 面试题
高二历史教学反思
2014/01/25 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
工伤事故赔偿协议书
2014/04/15 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
小学一年级学生评语大全
2014/12/25 职场文书
2015年车间主任工作总结
2015/05/21 职场文书
演讲比赛主持词
2015/06/29 职场文书
python异步的ASGI与Fast Api实现
2021/07/16 Python