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中使用xlrd、xlwt操作excel表格详解
Jan 29 Python
Django框架中的对象列表视图使用示例
Jul 21 Python
python 时间戳与格式化时间的转化实现代码
Mar 23 Python
Python如何生成树形图案
Jan 03 Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 Python
python爬虫获取小区经纬度以及结构化地址
Dec 30 Python
在python 不同时区之间的差值与转换方法
Jan 14 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
Python爬虫库BeautifulSoup获取对象(标签)名,属性,内容,注释
Jan 25 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Django mysqlclient安装和使用详解
Sep 17 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 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读取文件内容至字符串中,同时去除换行、空行、行首行尾空格(Zjmainstay原创)
2012/07/31 PHP
PHP 记录访客的浏览信息方法
2018/01/29 PHP
Yii2框架redis基本应用示例
2018/07/13 PHP
PHP7 安装event扩展的实现方法
2019/10/08 PHP
js 时间格式与时间戳的相互转换示例代码
2013/12/25 Javascript
JavaScript中检查对象property的存在性方法介绍
2014/12/30 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
通过Tabs方法基于easyUI+bootstrap制作工作站
2016/03/28 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
vue.js评论发布信息可插入QQ表情功能
2017/08/08 Javascript
vue中简单弹框dialog的实现方法
2018/02/26 Javascript
说说node中的可读流和可写流的区别
2018/06/01 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
vue接入腾讯防水墙代码
2019/05/07 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
[51:17]VGJ.T vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现图片转字符画的示例代码
2017/08/21 Python
Tensorflow 同时载入多个模型的实例讲解
2018/07/27 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
Python生成器实现简单"生产者消费者"模型代码实例
2020/03/27 Python
python中可以声明变量类型吗
2020/06/18 Python
详解python tcp编程
2020/08/24 Python
HTML5新特性之type=file文件上传功能
2018/02/02 HTML / CSS
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
Linux如何修改文件和文件夹的权限
2013/09/05 面试题
运动会通讯稿100字
2014/01/31 职场文书
护士自我鉴定总结
2014/03/24 职场文书
网络技术专业求职信
2014/05/02 职场文书
环保倡议书100字
2014/05/15 职场文书
应届生自荐信
2014/06/30 职场文书
大学课外活动总结
2014/07/09 职场文书
学生安全责任书模板
2014/07/25 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
python利用while求100内的整数和方式
2021/11/07 Python