配置文email.ini件信息:

[email]
sender=xxxxxxxxxxx
pwd=xxxxxxxxxxxx
reciver=xxxxxxxxxxxxx
python 3.x代码如下:
import os,configparser,time,requests,hashlib,json
from email.header import Header
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.application import MIMEApplication
def filePath(path):
return os.path.join(os.path.abspath(os.path.dirname(os.path.dirname(__file__))),path)
def getEmailData():
#获取配置文件email信息
cf=configparser.ConfigParser()
ConfigPath=filePath('config\\email.ini')
cf.read(ConfigPath)
form_addr=cf.get('email','sender')
pwd=cf.get('email','pwd')
to_addr=cf.get('email','reciver')
return form_addr,pwd,to_addr
def sendEmail(report_path,report_name):
    #发送邮件
  '''
  report_path:发送的文件路径
  report_name:发送的文件命名
'''
from_add,pwd,to_user=getEmailData()
fp=open(report_path,'rb')
mail_body=fp.read()
fp.close()
msg=MIMEMultipart()
smtp_server='smtp.exmail.qq.com'
msg['From']=Header(from_add)
msg['To']=Header(to_user)
msg['Subject']=Header(u'私家云接口测试报告','utf-8')
msg['date']=time.strftime('%Y%m%d%H%M')
#发送内容
textpart=MIMEText(mail_body,_subtype='html',_charset='utf-8')
msg.attach(textpart)
#以html附件形式发送
htmlpart=MIMEApplication(open(reportPath(),'rb').read())
htmlpart.add_header('Content-Disposition','attachment',filename=report_name)
msg.attach(htmlpart)
#发送邮件
try:
s=smtplib.SMTP(smtp_server,25)
s.login(from_add,pwd)
s.sendmail(from_add,to_user.split(','),msg.as_string())
s.quit()
log.info(u'邮件发送成功!')
except smtplib.SMTPRecipientsRefused as err:
log.error(u'邮件发送失败!原因为:'+err)
except smtplib.SMTPAuthenticationError as err:
log.error(u'邮件发送失败!原因为:'+err)
except smtplib.SMTPException as err:
log.error(u'邮件发送失败!原因为:'+err)
												

发送邮件——stamplib的更多相关文章

  1. 利用SQLServer数据库发送邮件

    汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 这个应用案例很多,一般都是预警,比如异常连接的时候,或者数据库报错的时候.等等,,, 先 ...

  2. C# 多种方式发送邮件(附帮助类)

    因项目业务需要,需要做一个发送邮件功能,查了下资料,整了整,汇总如下,亲测可用- QQ邮箱发送邮件 #region 发送邮箱 try { MailMessage mail = new MailMess ...

  3. JavaMail发送邮件

    发送邮件包含的内容有: from字段  --用于指明发件人 to字段      --用于指明收件人 subject字段  --用于说明邮件主题 cc字段     -- 抄送,将邮件发送给收件人的同时抄 ...

  4. 技术笔记:Indy控件发送邮件

    工作中有个需求需要发送邮件,因为使用的delphi6,所以自然就选择了indy组件,想想这事挺简单的.实现的过程倒是简单,看着Indy的demo很快就完了,毕竟也不是很复杂的功能. 功能要求: 1.压 ...

  5. mono中发送邮件并保存本次收件人的地址

    在ios端mono开发中,发送邮件可以选择调用ios原生email程序.有两种方式实现这种功能,一是程序跳转到ipad中email程序,另外一种是将发送邮件的界面在自己应用里弹出. 首先第一种方式的代 ...

  6. Azure 上通过 SendGrid 发送邮件

    SendGrid 是什么? SendGrid 是架构在云端的电子邮件服务,它能提供基于事务的可靠的电子邮件传递. 并且具有可扩充性和实时分析的能力.常见的用例有: 自动回复用户的邮件 定期发送信息给用 ...

  7. 使用nodemailer发送邮件

    今天闲来无事,一时兴起看了下如果使用javascript来发送邮件.经过调研发现,nodeJs可以实现这个功能. 具体的步骤如下: 1.安装依赖 npm install nodemailer -g ( ...

  8. ASP.NET MVC 发送邮件(异步)

    最近写邮件发送搞死人了,最后的结果,真是醉了,现整理如下: 网上一搜一大把,到处都是.NET发送邮件的方法,我这里也大同小异的写了一个. 准备一个MailHelper.cs通用类,如下所示: 重要的命 ...

  9. MVC5发送邮件注册

    #region 发送邮件 //填写电子邮件地址,和显示名称 System.Net.Mail.MailAddress from = new System.Net.Mail.MailAddress(&qu ...

随机推荐

  1. springboot查找配置文件路径的过程

    spring加载配置文件是通过listener监视器实现的,在springboot启动时: 在容器启动完成后会广播一个SpringApplicationEvent事件,而SpringApplicati ...

  2. js 代码优化 (写的可以)

    Javascript是一门非常灵活的语言,我们可以随心所欲的书写各种风格的代码,不同风格的代码也必然也会导致执行效率的差异,开发过程中零零散散地接触到许多提高代码性能的方法,整理一下平时比较常见并且容 ...

  3. java 连接mariadb 无法获取数据源的问题,在ubuntu上部署的时候(原创)

    问题: 连接数据库时报错: log4j:WARN No appenders could be found for logger (com.mchange.v2.log.MLog).log4j:WARN ...

  4. iOS-如何读取Plist文件

    解决办法: // 1) 找到Plist文件的路径 "path" NSString *path = [[NSBundle mainBundle]pathForResource:@&q ...

  5. Handler用Bundle传值

    package com.handler.cn; import android.app.Activity; import android.os.Bundle; import android.os.Han ...

  6. c++ 流继承关系

  7. iOS tableview滑动到底部自动加载,向上拽加载

    - (void)scrollViewDidScroll:(UIScrollView *)aScrollView { CGPoint offset = aScrollView.contentOffset ...

  8. Dart SDK在Linux上的下载及配置

    Dart SDK在Linux上的下载及配置 首先建议想要学习Dart的小伙伴选择Linux开发环境比较好,具体原因就不多说了.如果想要尝试在Window或Mac上安装Dart SDK的话可以参考Ins ...

  9. 巨蟒python全栈开发数据库攻略6:索引2&重要内容汇总

    1.索引的添加和删除 2.正确命中索引举例,explain优化神奇的简单使用 3.联合索引 4.简述慢日志记录 5.用户创建和权限分配 6.mysqldump逻辑备份,浅谈主从复制和读写分离 7.浅谈 ...

  10. centos7.3下使用yum 安装pip

    centos下安装pip时失败: No package pip available.Error: Nothing to do 解决方法: 需要先安装扩展源EPEL. EPEL(http://fedor ...