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修改操作系统时间的方法
May 18 Python
Python中的下划线详解
Jun 24 Python
Python创建二维数组实例(关于list的一个小坑)
Nov 07 Python
django站点管理详解
Dec 12 Python
Python实现重建二叉树的三种方法详解
Jun 23 Python
Python字典循环添加一键多值的用法实例
Jan 20 Python
Django 项目重命名的实现步骤解析
Aug 14 Python
Pandas的Apply函数具体使用
Jul 21 Python
Python3爬虫中关于中文分词的详解
Jul 29 Python
详解Python利用configparser对配置文件进行读写操作
Nov 03 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
教你怎么用python爬取爱奇艺热门电影
May 20 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页面编码的两种方法示例介绍
2014/03/03 PHP
PHP5.3新特性小结
2016/02/14 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
2017/09/29 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
PHP7引入的"??"和"?:"的区别讲解
2019/04/08 PHP
php函数式编程简单示例
2019/08/08 PHP
tp5框架前台无限极导航菜单类实现方法分析
2020/03/29 PHP
js 一个关于图片onload加载的事
2013/11/10 Javascript
jQuery实现根据生日计算年龄 星座 生肖
2016/11/23 Javascript
JavaScript实现简单的树形菜单效果
2017/06/23 Javascript
javascript ES6 新增了let命令使用介绍
2017/07/07 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
详解关于element el-button使用$attrs的一个注意要点
2018/11/09 Javascript
Vue中util的工具函数实例详解
2019/07/08 Javascript
js实现上传图片并显示图片名称
2019/12/18 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[48:24]完美世界DOTA2联赛PWL S3 Forest vs INK ICE 第一场 12.09
2020/12/12 DOTA
python标准算法实现数组全排列的方法
2015/03/17 Python
详解Python中for循环的使用方法
2015/05/14 Python
python绘制简单折线图代码示例
2017/12/19 Python
Python3实现的判断环形链表算法示例
2019/03/07 Python
Python3模拟登录操作实例分析
2019/03/12 Python
pytorch之ImageFolder使用详解
2020/01/06 Python
东方电视购物:东方CJ
2016/10/12 全球购物
MANGO官方网站:西班牙芒果服装品牌
2017/01/15 全球购物
迪卡侬印度官网:购买所有体育用品
2017/06/24 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
.NET是怎么支持多种语言的
2015/02/24 面试题
初三政治教学反思
2014/01/30 职场文书
师范生求职信
2014/06/14 职场文书
学习张林森心得体会
2014/09/10 职场文书
集结号观后感
2015/06/08 职场文书
Goland使用Go Modules创建/管理项目的操作
2021/05/06 Golang
MySQL 分组查询的优化方法
2021/05/12 MySQL
springboot+zookeeper实现分布式锁
2022/03/21 Java/Android
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python