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使用reportlab画图示例(含中文汉字)
Dec 03 Python
Python使用os模块和fileinput模块来操作文件目录
Jan 19 Python
Python之日期与时间处理模块(date和datetime)
Feb 16 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 Python
Python实现的简单线性回归算法实例分析
Dec 26 Python
利用python修改json文件的value方法
Dec 31 Python
python使用for循环计算0-100的整数的和方法
Feb 01 Python
Python collections中的双向队列deque简单介绍详解
Nov 04 Python
如何使用python切换hosts文件
Apr 29 Python
Python基于gevent实现文件字符串查找器
Aug 11 Python
python字符串拼接+和join的区别详解
Dec 03 Python
教你如何用python开发一款数字推盘小游戏
Apr 14 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中Collection 类的设计
2013/06/21 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
PHP一个简单的无需刷新爬虫
2019/01/05 PHP
用Div仿showModalDialog模式菜单的效果的代码
2007/03/05 Javascript
jquery的index方法实现tab效果
2011/02/16 Javascript
解决extjs grid 不随窗口大小自适应的改变问题
2014/01/26 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
浅析Javascript中bind()方法的使用与实现
2016/04/29 Javascript
js 弹出虚拟键盘修改密码的简单实例
2016/10/10 Javascript
JS实现根据密码长度显示安全条功能
2017/03/08 Javascript
webpack 2的react开发配置实例代码
2017/07/28 Javascript
Angular2监听页面大小变化的解决方法
2017/10/09 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
Vue图片浏览组件v-viewer用法分析【支持旋转、缩放、翻转等操作】
2019/11/04 Javascript
python 快速排序代码
2009/11/23 Python
Python 爬虫学习笔记之正则表达式
2016/09/21 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
python 处理dataframe中的时间字段方法
2018/04/10 Python
Python3中exp()函数用法分析
2019/02/19 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
详解Python 定时框架 Apscheduler原理及安装过程
2019/06/14 Python
python读写csv文件方法详细总结
2019/07/05 Python
pandas 时间格式转换的实现
2019/07/06 Python
python使用celery实现异步任务执行的例子
2019/08/28 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
HTML5本地存储localStorage、sessionStorage基本用法、遍历操作、异常处理等
2014/05/08 HTML / CSS
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
ECCO俄罗斯官网:北欧丹麦鞋履及皮具品牌
2020/06/26 全球购物
《骑牛比赛》教后反思
2014/04/22 职场文书
团队精神的演讲稿
2014/05/14 职场文书
2015年工程部工作总结
2015/04/30 职场文书
Django 实现jwt认证的示例
2021/04/30 Python
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL
pytorch中的 .view()函数的用法介绍
2022/03/17 Python