python smtplib发送带附件邮件小程序


Posted in Python onMay 22, 2018

最近经常需要出一些临时性的报表,于是就用python 的smtplib 和email 两模块写了个小程序,当数据处理完后通过邮箱把报表文件从服务器上发送出来!

程序名称:sendMail_func.py

#!/usr/bin/env python 
# -*- coding:utf-8 -*- 
import os 
import sys 
import time 
import smtplib 
from email import encoders 
from email.mime.text import MIMEText 
from email.mime.base import MIMEBase 
from email.mime.multipart import MIMEMultipart 
 
def send_mail(sub,content,mail_to,fileList): 
  mail_host='smtp.163.com' 
  mail_user='****@163.com' 
  mail_pass='******' 
  mail_to_list=mail_to.split(',') 
 
  msg = MIMEMultipart() 
  #msg=MIMEText(content,_charset='utf-8') 
  msg['Subject']=sub 
  msg['From']=mail_user 
  msg['To']=";".join(mail_to_list) 
  msg.attach(MIMEText(content,_charset='utf-8')) 
 
  files=fileList.split(',') 
  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).encode('utf-8')) 
    msg.attach(part) 
 
  try: 
    s=smtplib.SMTP() 
    s.connect(mail_host) 
    s.login(mail_user,mail_pass) 
    s.sendmail(mail_user,mail_to_list,msg.as_string()) 
    s.close() 
    return True 
  except Exception, e: 
    print str(e) 
    return False 
 
if __name__=="__main__": 
  if len(sys.argv) == 5: 
    send_mail(sys.argv[1],sys.argv[2],sys.argv[3],sys.argv[4]) 
  else: 
    print '' 
    print '*************************************************' 
    print ' Error: 请传入四个参数值:邮件主题 邮件内容 收件人 附件路径' 
    print '  如: python sendMail_func.py 邮件测试 邮件内容 abc@126.com,def@163.com,123456789@qq.com 1.xlsx,2.xlsx' 
    print '*************************************************' 
    print '' 
    exit

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
Python实现字典依据value排序
Feb 24 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python批量实现Word文件转换为PDF文件
Mar 15 Python
Python实现string字符串连接的方法总结【8种方式】
Jul 06 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
flask框架json数据的拿取和返回操作示例
Nov 28 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
python实现堆排序的实例讲解
Feb 21 Python
python安装和pycharm环境搭建设置方法
May 27 Python
python实现批量提取指定文件夹下同类型文件
Apr 05 Python
教你使用Python pypinyin库实现汉字转拼音
May 27 Python
python SMTP实现发送带附件电子邮件
May 22 #Python
python 获取当天凌晨零点的时间戳方法
May 22 #Python
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
May 22 #Python
python3.x实现发送邮件功能
May 22 #Python
python 爬虫 批量获取代理ip的实例代码
May 22 #Python
python 获取当天每个准点时间戳的实例
May 22 #Python
selenium+python 去除启动的黑色cmd窗口方法
May 22 #Python
You might like
解析php php_openssl.dll的作用
2013/07/01 PHP
PHP连接局域网MYSQL数据库的简单实例
2013/08/26 PHP
PHP中使用addslashes函数转义的安全性原理分析
2014/11/03 PHP
php微信开发自定义菜单
2016/08/27 PHP
lib.utf.js
2007/08/21 Javascript
jQuery Flash/MP3/Video多媒体插件
2010/01/18 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
Extjs4 关于Store的一些操作(加载/回调/添加)
2013/04/18 Javascript
JS预览图像将本地图片显示到浏览器上
2013/08/25 Javascript
JavaScript新窗口与子窗口传值详解
2014/02/11 Javascript
JavaScript中的条件判断语句使用详解
2015/06/03 Javascript
Jquery效果大全之制作电脑健康体检得分特效附源码下载
2015/11/02 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
JavaScript初学者必看“new”
2017/06/12 Javascript
AngularJS使用ui-route实现多层嵌套路由的示例
2018/01/10 Javascript
详解Webpack如何引入CDN链接来优化编译后的体积
2019/06/21 Javascript
5种Python单例模式的实现方式
2016/01/14 Python
理解python正则表达式
2016/01/15 Python
python 添加用户设置密码并发邮件给root用户
2016/07/25 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
不管你的Python报什么错,用这个模块就能正常运行
2018/09/14 Python
使用pyinstaller逆向.pyc文件
2019/12/20 Python
Python 读取xml数据,cv2裁剪图片实例
2020/03/10 Python
德国Discount-Apotheke中文官网:DC德式康线上药房
2020/02/18 全球购物
大学生创业策划书
2014/02/02 职场文书
简单的项目建议书模板
2014/03/12 职场文书
三分钟英语演讲稿
2014/04/24 职场文书
小学生竞选班干部演讲稿(5篇)
2014/09/12 职场文书
2014年网管工作总结
2014/12/11 职场文书
小学英语教学随笔
2015/08/14 职场文书
企业法人任命书
2015/09/21 职场文书
门面租赁合同范文
2019/08/06 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
go设置多个GOPATH的方式
2021/05/05 Golang
这样写python注释让代码更加的优雅
2021/06/02 Python
简单聊聊Vue中的计算属性和属性侦听
2021/10/05 Vue.js