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 struct模块解析
Jun 12 Python
Python中使用PyQt把网页转换成PDF操作代码实例
Apr 23 Python
python的else子句使用指南
Feb 27 Python
Python增量循环删除MySQL表数据的方法
Sep 23 Python
利用 python 对目录下的文件进行过滤删除
Dec 27 Python
django框架之cookie/session的使用示例(小结)
Oct 15 Python
Python3实现将一维数组按标准长度分隔为二维数组
Nov 29 Python
详解pandas.DataFrame.plot() 画图函数
Jun 14 Python
python tkiner实现 一个小小的图片翻页功能的示例代码
Jun 24 Python
python编写实现抽奖器
Sep 10 Python
如何利用python读取micaps文件详解
Oct 18 Python
python使用matplotlib的savefig保存时图片保存不完整的问题
Jan 08 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
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
PHP 采集获取指定网址的内容
2010/01/05 PHP
PHP自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
Smarty简单生成表单元素的方法示例
2016/05/23 PHP
Laravel使用RabbitMQ的方法示例
2019/06/18 PHP
js判断字符长度以及中英文数字等
2013/12/31 Javascript
在页面加载完成后通过jquery给多个span赋值
2014/05/21 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
浅谈JavaScript 框架分类
2014/11/10 Javascript
jQuery+jRange实现滑动选取数值范围特效
2015/03/14 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
JavaScript弹窗基础篇
2016/04/27 Javascript
微信jssdk用法汇总
2016/07/16 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
使用JavaScript获取Request中参数的值方法
2016/09/27 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
angular之ng-template模板加载
2017/11/09 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
python中实现php的var_dump函数功能
2015/01/21 Python
Python配置文件解析模块ConfigParser使用实例
2015/04/13 Python
python定时关机小脚本
2018/06/20 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
2019/08/13 Python
Python 使用指定的网卡发送HTTP请求的实例
2019/08/21 Python
详解pandas.DataFrame.plot() 画图函数
2020/06/14 Python
python闭包与引用以及需要注意的陷阱
2020/09/18 Python
python元组拆包实现方法
2021/02/28 Python
html5中canvas学习笔记1-画板的尺寸与实际显示尺寸
2013/01/06 HTML / CSS
Urban Outfitters美国官网:美国生活方式品牌
2016/08/26 全球购物
农田水利实习自我鉴定
2013/09/19 职场文书
婚前协议书范本
2014/04/15 职场文书
安全横幅标语
2014/06/09 职场文书
酒店爱岗敬业演讲稿
2014/09/02 职场文书
写给老婆的保证书
2015/02/27 职场文书
pycharm2021激活码使用教程(永久激活亲测可用)
2021/03/30 Python
win10拖拽文件时崩溃怎么解决?win10文件不能拖拽问题解决方法
2022/08/14 数码科技