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中的map()函数和reduce()函数的用法
Apr 27 Python
Python自定义类的数组排序实现代码
Aug 28 Python
Python列表切片用法示例
Apr 19 Python
Python实现k-means算法
Feb 23 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
python3下使用cv2.imwrite存储带有中文路径图片的方法
May 10 Python
对python3.4 字符串转16进制的实例详解
Jun 12 Python
Python学习笔记之列表推导式实例分析
Aug 13 Python
python实现的生成word文档功能示例
Aug 23 Python
Python3 中作为一等对象的函数解析
Dec 11 Python
python实现图像全景拼接
Mar 27 Python
pandas to_excel 添加颜色操作
Jul 14 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获取音频文件的相关信息
2015/06/22 PHP
php通过淘宝API查询IP地址归属等信息
2015/12/25 PHP
php微信公众平台开发之微信群发信息
2016/09/13 PHP
YII框架模块化处理操作示例
2019/04/26 PHP
jquery高效反选具体实现
2013/05/05 Javascript
javascript验证只能输入数字和一个小数点示例
2013/10/21 Javascript
js实现按钮加背景图片常用方法
2014/11/01 Javascript
学习JavaScript设计模式之代理模式
2016/01/12 Javascript
jQuery实现的精美平滑二级下拉菜单效果代码
2016/03/28 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
JavaScript实战之带收放动画效果的导航菜单
2016/08/16 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
vue中如何使用ztree
2018/02/06 Javascript
vue中使用heatmapjs的示例代码(结合百度地图)
2018/09/05 Javascript
Express结合Webpack的全栈自动刷新
2019/05/23 Javascript
node.js中stream流中可读流和可写流的实现与使用方法实例分析
2020/02/13 Javascript
用Python写冒泡排序代码
2016/04/12 Python
Python实现的计数排序算法示例
2017/11/29 Python
对Python中gensim库word2vec的使用详解
2018/05/08 Python
Python读取英文文件并记录每个单词出现次数后降序输出示例
2018/06/28 Python
Python使用googletrans报错的解决方法
2018/09/25 Python
Python实现查找字符串数组最长公共前缀示例
2019/03/27 Python
Python 定义只读属性的实现方式
2020/03/05 Python
基于python实现ROC曲线绘制广场解析
2020/06/28 Python
python递归函数用法详解
2020/10/26 Python
python中操作文件的模块的方法总结
2021/02/04 Python
青年教师培训方案
2014/02/06 职场文书
学生期末评语大全
2014/04/30 职场文书
学习焦裕禄同志为人民服务思想汇报
2014/09/10 职场文书
社区个人对照检查材料(群众路线)
2014/09/26 职场文书
党支部审查意见
2015/06/02 职场文书
药房管理制度范本
2015/08/06 职场文书
2016年政治理论学习心得体会
2016/01/25 职场文书
java objectUtils 使用可能会出现的问题
2022/02/28 Java/Android