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和pyqt实现360的CLable控件
Feb 21 Python
python编程开发之类型转换convert实例分析
Nov 13 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
Jul 02 Python
python中常用的九种预处理方法分享
Sep 11 Python
在django中使用自定义标签实现分页功能
Jul 04 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
Oct 26 Python
python mac下安装虚拟环境的图文教程
Apr 12 Python
Django 表单模型选择框如何使用分组
May 16 Python
Django框架ORM数据库操作实例详解
Nov 07 Python
pycharm设置当前工作目录的操作(working directory)
Feb 14 Python
python 成功引入包但无法正常调用的解决
Mar 09 Python
Pycharm中使用git进行合作开发的教程详解
Nov 17 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中改变图片的尺寸大小的代码
2011/07/17 PHP
鸡肋的PHP单例模式应用详解
2013/06/03 PHP
CodeIgniter模板引擎使用实例
2014/07/15 PHP
php中实现可以返回多个值的函数实例
2015/03/21 PHP
如何使用纯PHP实现定时器任务(Timer)
2015/07/31 PHP
基于PHP微信红包的算法探讨
2016/07/21 PHP
thinkphp分页实现效果
2016/10/13 PHP
实现PHP中session存储及删除变量
2018/10/15 PHP
PHP chr()函数讲解
2019/02/11 PHP
js form 验证函数 当前比较流行的错误提示
2009/06/23 Javascript
10个基于jQuery或JavaScript的WYSIWYG 编辑器整理
2010/05/06 Javascript
Javasipt:操作radio标签详解
2013/12/30 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
基于BootStrap实现局部刷新分页实例代码
2016/08/08 Javascript
JS实现的表头列头固定页面功能示例
2017/01/10 Javascript
Angularjs分页查询的实现
2017/02/24 Javascript
angularJs在多个控制器中共享服务数据的方法
2018/09/30 Javascript
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
在Vue项目中,防止页面被缩放和放大示例
2019/10/28 Javascript
在vue中阻止浏览器后退的实例
2019/11/06 Javascript
JSONP 的原理、理解 与 实例分析
2020/05/16 Javascript
Python使用MySQLdb for Python操作数据库教程
2014/10/11 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
2017/06/15 Python
python奇偶行分开存储实现代码
2018/03/19 Python
python定时任务 sched模块用法实例
2019/11/04 Python
python文字转语音实现过程解析
2019/11/12 Python
Python绘图实现台风路径可视化代码实例
2020/10/23 Python
浅谈css3中的前缀
2016/07/20 HTML / CSS
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
环保建议书400字
2014/05/14 职场文书
四风问题民主生活会对照检查材料思想汇报
2014/09/27 职场文书
武侯祠导游词
2015/02/04 职场文书
《蜜蜂引路》教学反思
2016/02/22 职场文书
MySQL系列之四 SQL语法
2021/07/02 MySQL
Java SSM配置文件案例详解
2021/08/30 Java/Android