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实现屏幕截图的两种方式
Feb 05 Python
pyQt4实现俄罗斯方块游戏
Jun 26 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
Apr 29 Python
Django Rest framework三种分页方式详解
Jul 26 Python
对Pytorch中nn.ModuleList 和 nn.Sequential详解
Aug 18 Python
django 做 migrate 时 表已存在的处理方法
Aug 31 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
Jan 20 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
python 制作简单的音乐播放器
Nov 25 Python
python 批量将中文名转换为拼音
Feb 07 Python
python3 sqlite3限制条件查询的操作
Apr 07 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
用Socket发送电子邮件
2006/10/09 PHP
PHP下打开phpMyAdmin出现403错误的问题解决方法
2013/05/23 PHP
PHP编程实现微信企业向用户付款的方法示例
2017/07/26 PHP
laravel Task Scheduling(任务调度)在windows下的使用详解
2019/10/22 PHP
Chrome中JSON.parse的特殊实现
2011/01/12 Javascript
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
Function.prototype.bind用法示例
2013/09/16 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
URL的参数中有加号传值变为空格的问题(URL特殊字符)
2016/11/04 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
JavaScript对JSON数据进行排序和搜索
2017/07/24 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
JavaScript寄生组合式继承实例详解
2018/01/06 Javascript
仿iPhone通讯录制作小程序自定义选择组件的实现
2019/05/23 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
2020/05/26 Javascript
[07:43]《辉夜杯》公开赛晋级外卡赛战队—TRG训练生活探秘
2015/12/11 DOTA
[36:13]Mineski vs iG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
python reverse反转部分数组的实例
2018/12/13 Python
Python3.5 win10环境下导入kera/tensorflow报错的解决方法
2019/12/19 Python
python 消除 futureWarning问题的解决
2019/12/25 Python
GDAL 矢量属性数据修改方式(python)
2020/03/10 Python
Python @property及getter setter原理详解
2020/03/31 Python
Python OrderedDict字典排序方法详解
2020/05/21 Python
matplotlib交互式数据光标mpldatacursor的实现
2021/02/03 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
世界最大的票务市场:viagogo
2017/02/16 全球购物
Skyscanner波兰:廉价航班
2017/11/07 全球购物
曼城官方网上商店:Manchester City
2019/09/10 全球购物
Woods官网:加拿大最古老、最受尊敬的户外品牌之一
2020/09/12 全球购物
数控专业毕业生求职信范文
2013/09/21 职场文书
机械设计及其自动化专业推荐信
2013/10/31 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
优秀大学生自荐信
2014/06/09 职场文书
2015年学雷锋活动总结
2015/02/06 职场文书
社区工作者个人总结
2015/02/28 职场文书
四年级作文之说明文作文
2019/10/14 职场文书