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实现的桶排序算法示例
Nov 29 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
在python中按照特定顺序访问字典的方法详解
Dec 14 Python
Python可视化mhd格式和raw格式的医学图像并保存的方法
Jan 24 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
将 Ubuntu 16 和 18 上的 python 升级到最新 python3.8 的方法教程
Mar 11 Python
python随机模块random的22种函数(小结)
May 15 Python
Django contrib auth authenticate函数源码解析
Nov 12 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
Python xlwings插入Excel图片的实现方法
Feb 26 Python
python源文件的字符编码知识点详解
Mar 04 Python
python基础之匿名函数详解
Apr 21 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
人大复印资料处理程序_查询篇
2006/10/09 PHP
php adodb操作mysql数据库
2009/03/19 PHP
详解php的魔术方法__get()和__set()使用介绍
2012/09/19 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
js写一个字符串转成驼峰的实例
2013/06/21 Javascript
百度判断手机终端并自动跳转js代码及使用实例
2014/06/11 Javascript
JavaScript实现为指定对象添加多个事件处理程序的方法
2015/04/17 Javascript
JavaScript实现的Tween算法及缓冲特效实例代码
2015/11/03 Javascript
ashx文件获取$.ajax()方法发送的数据
2016/05/26 Javascript
JS 数字转换为大写金额的简单实例
2016/08/04 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
详解angularjs利用ui-route异步加载组件
2017/05/21 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
基于vue--key值的特殊用处详解
2020/07/31 Javascript
vue打开新窗口并实现传参的图文实例
2021/03/04 Vue.js
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
python使用minimax算法实现五子棋
2019/07/29 Python
python3 使用traceback定位异常实例
2020/03/09 Python
Python Selenium实现无可视化界面过程解析
2020/08/25 Python
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
20世纪40年代连衣裙和复古服装:The Seamstress Of Bloomsbury
2018/07/24 全球购物
马德里运动鞋商店:Nigra Mercato
2020/02/16 全球购物
卫校毕业生自我鉴定
2013/10/31 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
工作说明书范文
2014/05/07 职场文书
个人求职自荐信范文
2014/06/20 职场文书
国庆节演讲稿范文2014
2014/09/19 职场文书
2014年网络管理员工作总结
2014/12/01 职场文书
初中作文评语
2014/12/25 职场文书
大学生思想道德自我评价
2015/03/09 职场文书
银行自荐信范文
2015/03/25 职场文书
联谊会开场白
2015/06/01 职场文书
dubbo服务整合zipkin详解
2021/07/26 Java/Android
vue组件vue-esign实现电子签名
2022/04/21 Vue.js
利用Python脚本写端口扫描器socket,python-nmap
2022/07/23 Python