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实现简单温度转换的方法
Mar 13 Python
实例说明Python中比较运算符的使用
May 13 Python
django+js+ajax实现刷新页面的方法
May 22 Python
python学习教程之Numpy和Pandas的使用
Sep 11 Python
在Python程序员面试中被问的最多的10道题
Dec 05 Python
Python装饰器知识点补充
May 28 Python
Python中浅拷贝copy与深拷贝deepcopy的简单理解
Oct 26 Python
Python爬虫将爬取的图片写入world文档的方法
Nov 07 Python
python实现一组典型数据格式转换
Dec 15 Python
Pytorch释放显存占用方式
Jan 13 Python
pytorch快速搭建神经网络_Sequential操作
Jun 17 Python
Python日志打印里logging.getLogger源码分析详解
Jan 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
模拟OICQ的实现思路和核心程序(三)
2006/10/09 PHP
基于mysql的论坛(3)
2006/10/09 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
php ctype函数中文翻译和示例
2014/03/21 PHP
php常用文件操作函数汇总
2014/11/22 PHP
在Mac OS上自行编译安装Apache服务器和PHP解释器
2015/12/24 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
2017/03/28 PHP
PHP利用Mysql锁解决高并发的方法
2018/09/04 PHP
Thinkphp自定义生成缩略图尺寸的方法
2019/08/05 PHP
js数组Array sort方法使用深入分析
2013/02/21 Javascript
在Javascript中 声明时用"var"与不用"var"的区别
2013/04/15 Javascript
基于NodeJS的前后端分离的思考与实践(六)Nginx + Node.js + Java 的软件栈部署实践
2014/09/26 NodeJs
jQuery实现页面下拉100像素出现悬浮窗口的方法
2016/09/05 Javascript
浅谈微信小程序flex布局基础
2018/09/10 Javascript
layui2.0使用table+laypage实现真分页
2019/07/27 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
2020/07/27 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
解决VUE 在IE下出现ReferenceError: Promise未定义的问题
2020/11/07 Javascript
Python实现在tkinter中使用matplotlib绘制图形的方法示例
2018/01/18 Python
TensorFlow实现MLP多层感知机模型
2018/03/09 Python
Python使用pip安装pySerial串口通讯模块
2018/04/20 Python
django反向解析URL和URL命名空间的方法
2018/06/05 Python
用python统计代码行的示例(包括空行和注释)
2018/07/24 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
Python判断两个文件是否相同与两个文本进行相同项筛选的方法
2019/03/01 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
详解CSS3实现响应式手风琴效果
2020/06/10 HTML / CSS
工程负责人任命书
2014/06/06 职场文书
关于读书的演讲稿1000字
2014/08/27 职场文书
个人存款证明书
2014/10/18 职场文书
合作意向协议书
2015/01/29 职场文书
投诉书范文
2015/07/02 职场文书
毕业班工作总结
2015/08/10 职场文书
导游词之湖北武当山
2019/09/23 职场文书
PyCharm配置KBEngine快速处理代码提示冲突、配置命令问题
2021/04/03 Python
Java 语言中Object 类和System 类详解
2021/07/07 Java/Android