记录一下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. Bootstrap4后台导航栏制作

    <!Doctype html> <html lang="zh-cn"> <head> <!-- Required meta tags -- ...

  2. 处理 unassigned shard

    #查看所有分片 GET _cat/shards curl  10.1.2.2:9200/_cat/indices/iis_log* #查看索引的分片状态 #查看第一个unassigned shard的 ...

  3. 【微信小程序】抽象组件使用示例

        1.配置页面路径 ./app.json { "pages":[ "pages/index/index", "pages/logs/logs&q ...

  4. 点击Button按钮实现页面跳转

    1.首先我们新建一个带有button按钮的页面 <button type="submit" class="form-contrpl">注册</ ...

  5. js 字符串 有没有 像C# @ 那种 换行也可以显示的方法 \

  6. 生成Uuid工具类

    package com.freeter.util; import java.util.UUID; /** * @author liuqi * **/public class Uuid{ public ...

  7. flask项目结构

    project/ app/ # 整个程序的包目录 static/ # 静态资源文件 js/ # JS脚本 css/ # 样式表 img/ # 图片 favicon.ico # 网站图标 templat ...

  8. vue-cli3和ts建立vue项目

    第一步,如果你之前没有装vuecli,可以直接执行下面命令 npm install --global @vue/cli 注:这里我install 的时候不成,于是我用的是 cnpm install - ...

  9. LeetCode 489. Robot Room Cleaner

    原题链接在这里:https://leetcode.com/problems/robot-room-cleaner/ 题目: Given a robot cleaner in a room modele ...

  10. 原生php分页的封装,只封装函数,可适用所有的表

    <?php/** * 封装分页函数 * $table [字符串] 表名 * @$size [数字][每页显示条数] */function fenye($table, $size){ $link ...