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开发常用的一些开源Package分享
Feb 14 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
Python简单实现TCP包发送十六进制数据的方法
Apr 16 Python
微信跳一跳游戏python脚本
Apr 01 Python
Python字符串格式化%s%d%f详解
Feb 02 Python
python如何使用unittest测试接口
Apr 04 Python
python pandas dataframe 行列选择,切片操作方法
Apr 10 Python
python 简单照相机调用系统摄像头实现方法 pygame
Aug 03 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
Python爬取破解无线网络wifi密码过程解析
Sep 17 Python
Python实现在Windows平台修改文件属性
Mar 05 Python
python怎么判断模块安装完成
Jun 19 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生成带有雪花背景的验证码
2006/10/09 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
2011/09/25 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
CI框架中$this->load->library()用法分析
2016/05/18 PHP
PHP使用递归算法无限遍历数组示例
2017/01/13 PHP
ExtJS 2.0实用简明教程 之ExtJS版的Hello
2009/04/29 Javascript
jquery 问答知识整理
2010/02/11 Javascript
javascript window.opener的用法分析
2010/04/07 Javascript
jquery uaMatch源代码
2011/02/14 Javascript
js实现单行文本向上滚动效果实例代码
2013/11/28 Javascript
java和javascript获取word文档的书签位置对比
2014/06/19 Javascript
JavaScript实现点击按钮就复制当前网址
2015/12/14 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
js实现图片缓慢放大缩小效果
2016/08/02 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
js动态添加表格逐行添加、删除、遍历取值的实例代码
2018/01/25 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
vue两个组件间值的传递或修改方式
2018/07/04 Javascript
解决vue中修改export default中脚本报一大堆错的问题
2018/08/27 Javascript
angular4强制刷新视图的方法
2018/10/09 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
2019/05/27 Javascript
用python做一个搜索引擎(Pylucene)的实例代码
2017/07/05 Python
django允许外部访问的实例讲解
2018/05/14 Python
python中的decorator的作用详解
2018/07/26 Python
PyQT5 QTableView显示绑定数据的实例详解
2019/06/25 Python
pycharm中显示CSS提示的知识点总结
2019/07/29 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
CSS3实现10种Loading效果
2016/07/11 HTML / CSS
美国购买汽车零件网站:Buy Auto Parts
2018/04/02 全球购物
办公室主任职责范文
2013/11/08 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
《美丽的田园》教学反思
2014/03/01 职场文书
项目投资意向书
2014/04/01 职场文书
2014领导班子正风肃纪思想汇报
2014/09/18 职场文书
小学信息技术教学反思
2016/02/16 职场文书
JMeter对MySQL数据库进行压力测试的实现步骤
2022/01/22 MySQL