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 相关文章推荐
Linux下编译安装MySQL-Python教程
Feb 02 Python
python获取从命令行输入数字的方法
Apr 29 Python
Python3导入自定义模块的三种方法详解
Apr 13 Python
Python简单实现阿拉伯数字和罗马数字的互相转换功能示例
Apr 17 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
Python多进程入门、分布式进程数据共享实例详解
Jun 03 Python
简单的Python调度器Schedule详解
Aug 30 Python
详解django中Template语言
Feb 22 Python
python GUI库图形界面开发之PyQt5信号与槽机制、自定义信号基础介绍
Feb 25 Python
Python尾递归优化实现代码及原理详解
Oct 09 Python
一篇文章弄懂Python中的内建函数
Aug 07 Python
Python pyecharts绘制条形图详解
Apr 02 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 mysql数据库操作类
2008/06/04 PHP
php 过滤器实现代码
2010/08/09 PHP
PHP中获取时间的下一周下个月的方法
2014/03/18 PHP
PHP调用VC编写的COM组件实例
2014/03/29 PHP
php使用curl简单抓取远程url的方法
2015/03/13 PHP
PHP实现微信网页授权开发教程
2016/01/19 PHP
javascript 学习笔记(六)浏览器类型及版本信息检测代码
2011/04/08 Javascript
读jQuery之六 缓存数据功能介绍
2011/06/21 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
js取值中form.all和不加all的区别介绍
2014/01/20 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
jQuery实现ctrl+enter(回车)提交表单
2015/10/19 Javascript
Angular-Touch库用法示例
2016/12/22 Javascript
js正则表达式最长匹配(贪婪匹配)和最短匹配(懒惰匹配)用法分析
2016/12/27 Javascript
详解如何优雅地在React项目中使用Redux
2017/12/28 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
javascript导出csv文件(excel)的方法示例
2019/08/25 Javascript
vue如何实现动态加载脚本
2020/02/05 Javascript
python生成指定长度的随机数密码
2014/01/23 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
详解Python中for循环是如何工作的
2017/06/30 Python
python3.5基于TCP实现文件传输
2020/03/20 Python
python之super的使用小结
2018/08/13 Python
python实现简单flappy bird
2018/12/24 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
python3定位并识别图片验证码实现自动登录功能
2021/01/29 Python
简单介绍CSS3中Media Query的使用
2015/07/07 HTML / CSS
关于HTML5的22个初级技巧(图文教程)
2012/06/21 HTML / CSS
德国圣伯纳德草药屋:Kräuterhaus Sanct Bernhard(有中文站)
2018/08/05 全球购物
椰子猫砂:CatSpot
2018/08/27 全球购物
美国一家著名的手表在线折扣网站:Discount Watch Store
2020/02/24 全球购物
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
2014年效能监察工作总结
2014/11/21 职场文书
检察院起诉意见书
2015/05/20 职场文书
聊聊基于pytorch实现Resnet对本地数据集的训练问题
2022/03/25 Python
详解MongoDB排序时内存大小限制与创建索引的注意事项
2022/05/06 MongoDB