记录一下Python 发送邮件的代码,这是半年前写的,不知道现在有什么类库的改动。

类库

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.header import Header
import datetime
 
def SendEmail(self,SendEmailExcelUrl,ProjectName):

        sender ='发送人邮箱'
senderPwd =os.environ.get('EmailPassword') #邮箱密码我这里是放在环境变量中了(Win)
receivers ='123@123.com,123@123.com' #接收人邮箱
#create a Instance
message = MIMEMultipart()
message['From'] = Header("发送人", 'utf-8')
message['To'] = Header("邮件内容标题", 'utf-8')
subject = '邮件标题’
message['Subject'] = Header(subject, 'utf-8')
#Message body content
message.attach(MIMEText(' Dear All, \n\n ××× \n\n Regards, \n ××××××× ', 'plain', 'utf-8'))
#Send xlsx file
att = MIMEText(open(SendEmailExcelUrl, 'rb').read(), 'base64', 'utf-8')
att["Content-Type"] = 'application/octet-stream'
#Here you can rename the attachments in the message.
att["Content-Disposition"] = 'attachment; filename="{}.xlsx"'.format(ProjectName)
message.attach(att)
try:
smtpObj = smtplib.SMTP('代理服务器地址','代理服务器端口')
smtpObj.starttls()
smtpObj.login(sender, senderPwd)#代理服务器帐号密码验证
smtpObj.sendmail(sender, receivers, message.as_string())
#terminating the session
smtpObj.quit()
print("Send email successful")
except smtplib.SMTPException as e:
print(e.__doc__,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
print(e.__context__,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))

下面是编辑excel 仅仅用于记录

  python编辑excel 还是比较坑的,个人观点。但是我是调用一个接口,该接口返回excel,该excel的样式什么的都有,如果我直接进行保存这样没问题,但是我需要对其加一列然后在保存excel就被破坏了,后来了解到目前该类库对样式的编辑支持的还不是很好

import xlrd
import xlwt
from openpyxl import Workbook ,load_workbook
    def CreateCoreExcel(self,SendEmailExcelUrl,ApiSaveExcelSaveUrl):
projectConfigJson=self.getProductfigJson()['Core']
Group= projectConfigJson['Group']
wb = load_workbook(ApiSaveExcelSaveUrl)
ws = wb['Vulnerabilities']
ws.insert_cols(2)
ws.insert_cols(3)
for index, row in enumerate(ws.rows):
if index == 0:
row[1].value='Group'
row[2].value='ServiceName'
else:
values= row[22].value
validationValues=True
try:
values.split('\\')
except Exception as e:
print(e.__doc__,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
print(e.__context__,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
validationValues=False
print("values not is path values:{}, datetime:{} ".format(values,datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")))
if validationValues == True:
strlist = values.split('\\')
serviceName=strlist[3]
groupName=""
if serviceName in Group['1']:
groupName="1"
elif serviceName in Group['2']:
groupName="2"
elif serviceName in Group['3']:
groupName="3"
else:
groupName="OtherGroup"
row[1].value=groupName
row[2].value=serviceName
else :
row[1].value="N/A"
row[2].value="N/A"
content = []
index = 1
for i in range(2,ws.max_row+2):
contentJson ={}
for j in range(1,ws.max_column+1):
contentJson[ws.cell(index,j).value]=ws.cell(i,j).value
content.append(contentJson)
jsonstr=json.dumps(content) wbnew = Workbook()
sheet = wbnew.active
listHead=[]
data= json.loads(jsonstr)
for c,i in enumerate(data[0].keys()):
sheet.cell(row=1,column=c+1,value=i)
listHead.append(i)
for r,i in enumerate(data):
row=r+2
for c,d in enumerate(listHead):
sheet.cell(row=row,column=c+1,value=i.get(d,""))
returnValue=os.path.exists(SendEmailExcelUrl)
if returnValue==True:
os.remove(SendEmailExcelUrl)
wbnew.save(SendEmailExcelUrl)

  该内容只是个人记录。

Python 发送邮件 and 编辑Excel的更多相关文章

  1. python接口自动化(三十二)--Python发送邮件(常见四种邮件内容)番外篇——上(详解)

    简介 本篇文章与前边没有多大关联,就是对前边有关发邮件的总结和梳理.在写脚本时,放到后台运行,想知道执行情况,会通过邮件.SMS(短信).飞信.微信等方式通知管理员,用的最多的是邮件.在linux下, ...

  2. Python导出数据到Excel表格-NotImplementedError: formatting_info=True not yet implemented

    在使用Python写入数据到Excel表格中时出现报错信息记录:“NotImplementedError: formatting_info=True not yet implemented” 报错分析 ...

  3. Python自动化测试发送邮件太麻烦?!一起聊一聊 Python 发送邮件的3种方式

    1. 前言 发送邮件,我们在平时工作中经用到,做为测试人员,在自动化测试中用的也比较多,需要发送邮件给某领导 SMTP是Python默认的邮件模块,可以发送纯文本.富文本.HTML 等格式的邮件 今天 ...

  4. python发送邮件

    python发送邮件(无附件) ======================================================= #!/usr/bin/env python#coding ...

  5. python发送邮件及附件

    今天给大伙说说python发送邮件,官方的多余的话自己去百度好了,还有一大堆文档说实话不到万不得已的时候一般人都不会去看,回归主题: 本人是mac如果没有按照依赖模块的请按照下面的截图安装 导入模块如 ...

  6. python 发送邮件实例

    留言板回复作者邮件提醒 -----------2016-5-11 15:03:58-- source:python发送邮件实例

  7. 解读Python发送邮件

    解读Python发送邮件 Python发送邮件需要smtplib和email两个模块.也正是由于我们在实际工作中可以导入这些模块,才使得处理工作中的任务变得更加的简单.今天,就来好好学习一下使用Pyt ...

  8. python 发送邮件例子

    想到用python发送邮件 主要是服务器 有时候会产生coredump文件  ,然后因为脚本重启原因,服务器coredump产生后会重启 但是没有主动通知开发人员 想了下可以写个脚本一旦产生cored ...

  9. VSTO学习笔记(五)批量编辑Excel 2010 x64

    原文:VSTO学习笔记(五)批量编辑Excel 2010 x64 近期因为工作的需要,经常要批量处理大量的Excel文件,如果纯手工一个个修改,非常的麻烦,于是写了这么一个帮助类,希望能对你有所帮助. ...

随机推荐

  1. Java内功心法,行为型设计模式

    行为型 1. 责任链(Chain Of Responsibility) Intent 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系. 将这些对象连成一条链,并沿着这条链发送该 ...

  2. js内存空间

    堆数据结构 堆数据结构是一种树状结构.它的存取数据的方式与书架和书非常相似.我们只需要知道书的名字就可以直接取出书了,并不需要把上面的书取出来.JSON格式的数据中,我们存储的key-value可以是 ...

  3. Vue递归组件实现层层嵌套显示数据

    问题来自朋友...记录一下 需求是表格头部后端返回的数据中是不确定的 n维数据,表头存在于 listVo 字段中,如何实现层层显示呢? 温馨提示,以下内容为5张大图,请打开 WIFI 享用... 以下 ...

  4. Mycat高可用解决方案一(mysql安装)

    Mycat高可用解决方案一(mysql安装) Mycat关键特性 关键特性 支持SQL92标准 支持MySQL.Oracle.DB2.SQL Server.PostgreSQL等DB的常见SQL语法 ...

  5. Golang 需要避免踩的 50 个坑(二)

    前言 Go 是一门简单有趣的编程语言,与其他语言一样,在使用时不免会遇到很多坑,不过它们大多不是 Go 本身的设计缺陷.如果你刚从其他语言转到 Go,那这篇文章里的坑多半会踩到. 如果花时间学习官方 ...

  6. np.append()

    1.numpy.append() np.append(arr,values,axis=None) 功能:在array后面追加values 参数: arr:array_like 值将附加到此数组的副本. ...

  7. LOJ 3159: 「NOI2019」弹跳

    题目传送门:LOJ #3159. 题意简述: 二维平面上有 \(n\) 个整点,给定每个整点的坐标 \((x_i,y_i)\). 有 \(m\) 种边,第 \(i\) 种边从 \(p_i\) 号点连向 ...

  8. 201871010109-胡欢欢《面向对象程序设计(java)》第二周学习总结

    开头: 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>     https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 <作业链接地 ...

  9. 4、组件注册-自定义TypeFilter指定过滤规则

    4.组件注册-自定义TypeFilter指定过滤规则 4.1 FilterType.ANNOTATION 按照注解方式 4.2 FilterType.ASSIGNABLE_TYPE 按照给定的类型 @ ...

  10. 基于react开发package.json的配置

    项目依赖 react网页开发的3件套: react, react-dom, react-router-dom, redux, react-reduxreact的UI组件库: antd(pc端), an ...