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 相关文章推荐
python的迭代器与生成器实例详解
Jul 16 Python
跟老齐学Python之让人欢喜让人忧的迭代
Oct 02 Python
Python实现的建造者模式示例
Aug 06 Python
树莓派与PC端在局域网内运用python实现即时通讯
Jun 22 Python
Python绘图实现显示中文
Dec 04 Python
pandas实现DataFrame显示最大行列,不省略显示实例
Dec 26 Python
Pytorch 的损失函数Loss function使用详解
Jan 02 Python
keras中的backend.clip用法
May 22 Python
python能做哪些生活有趣的事情
Sep 09 Python
Django 用户认证Auth组件的使用
Nov 30 Python
python中pop()函数的语法与实例
Dec 01 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
完美解决thinkphp验证码出错无法显示的方法
2014/12/09 PHP
php 数组处理函数extract详解及实例代码
2016/11/23 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
如何实现iframe(嵌入式帧)的自适应高度
2006/07/26 Javascript
jQuery性能优化28条建议你值得借鉴
2013/02/16 Javascript
js禁止document element对象选中文本实现代码
2013/03/21 Javascript
jquery链式操作的正确使用方法
2014/01/06 Javascript
JS基于VML技术实现的五角星礼花效果代码
2015/10/26 Javascript
在React框架中实现一些AngularJS中ng指令的例子
2016/03/06 Javascript
js实现密码强度检测【附示例】
2016/03/30 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
JavaScript之WebSocket技术详解
2016/11/18 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
windows下vue-cli及webpack搭建安装环境
2017/04/25 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
vue-cli之router基本使用方法详解
2017/10/17 Javascript
jQuery插件实现的日历功能示例【附源码下载】
2018/09/07 jQuery
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
Vue 同步异步存值取值实现案例
2020/08/05 Javascript
自定义Django_rest_framework_jwt登陆错误返回的解决
2020/10/18 Python
利用HTML5的新特点实现图片文件异步上传
2014/05/29 HTML / CSS
个性大学生自我评价
2013/12/04 职场文书
会计专业毕业自荐书范文
2014/02/08 职场文书
财务担保书范文
2014/04/02 职场文书
工程造价专业求职信
2014/07/17 职场文书
节约每一滴水演讲稿
2014/09/09 职场文书
2014年人民警察入党思想汇报
2014/10/12 职场文书
总账会计岗位职责
2015/04/02 职场文书
校园歌手大赛主持词
2015/07/03 职场文书
市语委办2016年第十九届“推普周”活动总结
2016/04/05 职场文书
基于Python实现的购物商城管理系统
2021/04/27 Python