博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python发送Email 带附件
阅读量:4298 次
发布时间:2019-05-27

本文共 1702 字,大约阅读时间需要 5 分钟。

加入压缩处理,使用python的zipfile模块


参考:

在python中,MIME的这些对象的继承关系如下。
-MIMEBase
- |– MIMENonMultipart
- |– MIMEApplication
- |– MIMEAudio
- |– MIMEImage
- |– MIMEMessage
- |– MIMEText
- |– MIMEMultipart
一般来说,不会用到MIMEBase,而是直接使用它的继承类。MIMEMultipart有attach方法,而MIMENonMultipart没有,只能被attach。


#!/usr/bin/env python#coding:utf-8import  zipfileimport osimport smtplibfrom email.mime.multipart import MIMEMultipartfrom email.mime.text import MIMETextfrom email.mime.application import MIMEApplicationif __name__=="__main__":    path = 'D:/Program Files/Python/TS/test.gif'    filename = os.path.basename(path)    filepath = os.path.dirname(path)    if os.path.getsize(path)>1*1024*1024:        zipFileName = filename.split('.')[0]+'.zip'        if not os.path.exists(zipFileName):            zipPath = os.path.join(filepath,zipFileName)            print zipPath            f=zipfile.ZipFile(zipPath,'w',zipfile.ZIP_DEFLATED)            f.write(os.path.join(path),filename)#注意后面一个参数只写文件名,如果加上路径。压缩后,会带上相应的文件路径。    _user = "***@163.com"    _pwd  = "***"    _to   = "***@163.com"    #可以添加多种类型的附件    msg = MIMEMultipart()    msg["Subject"] = "Python Email Test"    msg["From"]    = _user    msg["To"]      = _to    #可以添加文字    part = MIMEText("Text Area")    msg.attach(part)    #可以添加html元素    htmlText = '

' part = MIMEText(htmlText,'html','utf-8') msg.attach(part) #---这是附件部分--- #zip类型附件,MIMEApplication不管什么类型都可以用 part = MIMEApplication(open(zipPath,'rb').read()) part.add_header('Content-Disposition', 'attachment', filename=zipFileName) msg.attach(part) s = smtplib.SMTP("smtp.163.com", timeout=30)#连接smtp邮件服务器 s.login(_user, _pwd)#登陆服务器 s.sendmail(_user, _to, msg.as_string())#发送邮件 s.close()

转载地址:http://usnws.baihongyu.com/

你可能感兴趣的文章
Activiti工作流会签二 启动流程
查看>>
Activiti工作流会签三 撤销,审批,驳回
查看>>
Oauth2方式实现单点登录
查看>>
CountDownLatch源码解析加流程图详解--AQS类注释翻译
查看>>
ES相关度评分
查看>>
我们一起做一个可以商用的springboot脚手架
查看>>
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
查看>>
java设计基本原则----单一职责原则
查看>>
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>
Lock重入锁
查看>>
docker安装 rabbitMq
查看>>
git 常用命令 入门
查看>>
linux安装docker
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>