为什么80%的码农都做不了架构师?>>>   

# coding:utf-8
# @Date    : 2016-09-03
# @Author  : 丰申
# @Version : 0.0.1
# @Desc :Custom Email module
# @example:
#     temp_email = CustomEmail('smtp.126.com', 'XXXXX@126.com', 'XXXXX')
#     temp_email.AddMainContent('text/plain', '中文啊!')
#     temp_email.AddMainContent('text/html', '<h>我是</h>')
#     temp_email.AddMainContent('file/html', 'E:\\RFS\\Logs\\20160902\\1110385186\\mailrpt.html')
#     temp_email.AddAttachment('E:\\RFS\\Logs\\20160902\\1110385186.zip')
#     temp_email.AddToMSG()
#     temp_email.SendEmail('xxxxxxxxxxx@qq.com;xxxxxx@qq.com', 'XX自动化测试报告')import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.header import Header
import codecsclass CustomEmail(object):def __init__(self, host, host_user, host_password):''':param host: 服务器地址:param host_user:发信人账户:param host_password:发信人密码:return:无'''self.host = hostself.host_user = host_userself.host_password = host_passwordself.send_port = 25self.msg = MIMEMultipart()self.msg['From'] = self.host_userself.listAttach = []self.listMainContent = []self.flagAttach = Noneself.flagContent = Noneself.mail_client = smtplib.SMTP()self.mail_client.connect(host)self.mail_client.login(host_user, host_password)def AddToMSG(self):''':param to_text: 写入邮件主内容:param to_attach: 写入附件:return: 无'''try:# 下面是文本部分 ,这里分为了plain与HTML两种格式if len(self.listMainContent) != 0:for to_text in self.listMainContent:self.msg.attach(to_text)# 下面是附件部分 ,因判断获取的文件类型来附带类型。if len(self.listAttach) != 0:for to_attach in self.listAttach:self.msg.attach(to_attach)except BaseException, e:print u'邮件内容生成失败!',edef AddMainContent(self, contenttype, data):''':param contenttype:1.text/plain2.text/html3.file/html4.file/plain:param data::return:无'''try:maintype, subtype = contenttype.split('/')if maintype == 'text':content = MIMEText(data, subtype, 'utf-8')else:tmp_data = codecs.open(data, 'r').read()content = MIMEText(tmp_data, subtype, 'utf-8')self.listMainContent.append(content)self.flagContent = Trueexcept BaseException, e:self.flagContent = Falseprint u'生成邮件正文失败!',edef AddAttachment(self, filepath):''':param filepath: 附件地址:return:无'''try:print filepathtmp_filename = filepath[filepath.rfind('\\')+1:]content = MIMEApplication(open(filepath, 'rb').read())content.add_header('Content-Disposition', 'attachment', filename=tmp_filename)self.listAttach.append(content)self.flagAttach = Trueexcept BaseException, e:self.flagAttach = Falseprint u'添加邮件附件文件失败!',edef SendEmail(self, to_mail, to_subject=None):''':param to_mail:发送人地址,格式为字符串,以;分割:return: True/False'''try:list_tomail = to_mail.split(';')if (self.flagContent == False) or (self.flagAttach == False):print u'邮件正文或附件文件添加失败,发送邮件失败!'return Falseelse:if to_subject == None:to_subject = '自动化测试报告'self.msg['Subject'] = Header(to_subject, 'utf-8')self.mail_client.sendmail(self.msg['From'], list_tomail, self.msg.as_string())self.mail_client.quit()print u'邮件发送成功!'return Trueexcept smtplib.SMTPException, e:print u'邮件发送失败!', e.messagereturn False

转载于:https://my.oschina.net/TTSK/blog/743413

Windows下python发送邮件_CustomEmail.py[text、html、附件、读取文本到正文]相关推荐

  1. Windows 下python的tab自动补全

    Windows 下python的tab自动补全 对于新学python的朋友来说,python模块的功能多而难记,mac和Linux中有tab自动补全命令功能,使用Windows的同学们怎么办?下面我们 ...

  2. python3.7安装步骤-Windows下Python 3.7.0的安装步骤,Python370

    Windows下Python 3.7.0的安装步骤 由于Python版本太新的话,能会出现不稳定的情况,所以在这里,作者建议用版本不太新的Python.在这里,我用的是Python3.7.0版本(其他 ...

  3. windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法

    windows下 python 使用 pip 安装TA-Lib报错的原因及解决方法 问题环境 问题描述 问题原因 & 解决办法 问题环境 Windows 10 x64 .python 3.8. ...

  4. windows下python常用库的安装

    windows下python常用库的安装,前提安装了annaconda 的python开发环境.只要已经安装了anaconda,要安装别的库就很简单了.只要使用pip即可,正常安装好python,都会 ...

  5. windows下运行python打印有颜色的字_在windows下Python打印彩色字体的方法

    本文讲述了Python在windows下打印彩色字体的方法.分享给大家供大家参考,具体如下: ##################################################### ...

  6. Windows下Python开发环境搭建及 Python的HelloWorld示例

    最近较忙,都么时间更新博客了.本文介绍Windows下Python开发环境的搭建. 一.从链接http://www.python.org/downloads/ 下载安装包,注意32位和64位安装包区别 ...

  7. windows下python的mlab安装问题

    windows下python的mlab安装问题 windows在DOS环境下安装mlab时可能出现解码错误的信息,这个是README.rst文件内的字符是非gbk编码的缘故,最好可以直接去改setup ...

  8. 简述Linux和Windows下Python搭建步骤

    简述就Windows和Linux环境下安装Python的步骤. Python环境搭建首先到官网(www.python.org)下载相应的安装版本.主要分为Windows和Linux两种: 一.Linu ...

  9. Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题

    Windows下Python 3.6 + VS2017 + Anaconda 解决Unable to find vcvarsall.bat问题 参考文章: (1)Windows下Python 3.6 ...

最新文章

  1. SIGIR 2019 开源论文 | 基于图神经网络的协同过滤算法
  2. maven 项目报错Context initialization failed
  3. 记一次反馈,把钉钉客服聊跑了
  4. uni-app—微信公众号授权登录(截取code)
  5. 工业级PoE交换机的分类知识详解
  6. Linux忘记root密码怎么办?
  7. 培养宝贝惊人记忆力10妙招哦
  8. mybatis基于注解(三)
  9. OpenShift 4 之升级集群
  10. WPF控件TreeView使用
  11. Multiple commands produce xxxxxxxxxx app/Info.plist':
  12. dubbo教程(绝对的入门到入土)
  13. 3dmax2016的破解和安装
  14. 卷积神经网络与机器视觉,卷积神经网络图像分类
  15. Flutter:实现iOS无证书打包ipa
  16. 记录:图片转字符画及文字转字符画
  17. cold diffusion的个人理解
  18. Python 爬虫入门的教程(2小时快速入门、简单易懂、快速上手)
  19. 2023年法定节假日配置Mysql
  20. dwz打开自定义dialog

热门文章

  1. jupyter notebook使用入门2——创建一个基于scikit-Learn的线性预测ipynb文件
  2. 7-18 QQ帐户的申请与登陆 (10 分)
  3. 你还在使用xml配置mybatis吗,快来试试这种方式吧
  4. idea中将java项目中的单个类打包成jar包
  5. 王道计算机考研课件,王道考研计算机组成原理课件ppt
  6. linux msgctl函数,msgctl()函数
  7. api 微信内置浏览器js_微信小程序和HTML的区别
  8. 删除html中所有的脚本,从HTML内容中删除脚本标记
  9. mysql 左连接 和全连接_mysql左连接,右连接,内连,全连
  10. respondsToSelector的相关使用