From 4e3ed932bd0ca46109da231d599e8e178994e3d2 Mon Sep 17 00:00:00 2001 From: wangxulong511 Date: Wed, 17 Oct 2018 17:18:31 +0800 Subject: [PATCH 1/3] Create sendMail.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit python 发送邮件html --- sendMail.py | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 sendMail.py diff --git a/sendMail.py b/sendMail.py new file mode 100644 index 00000000..769be9f2 --- /dev/null +++ b/sendMail.py @@ -0,0 +1,137 @@ +#coding:utf-8 #强制使用utf-8编码格式 +import cx_Oracle +from Channel import * +from email.header import Header +from email.mime.text import MIMEText +from email.utils import parseaddr, formataddr +import smtplib + +def _format_addr(str): + name, addr = parseaddr(str) + return formataddr((Header(name, 'utf-8').encode(), addr)) + +'''加密发送文本邮件''' +def sendEmail(from_addr,password,to_addr,centext,smtp_server): + ret = True + try: + msg = MIMEText(centext, 'html', 'utf-8') # 文本邮件 + msg['From'] = _format_addr('运维 <%s>' % from_addr) + msg['To'] = _format_addr('收件人: <%s>' % to_addr) + msg['Subject'] = Header('数据库用户密码过期警告', 'utf-8').encode() + #server = smtplib.SMTP(smtp_server, 25) + server = smtplib.SMTP_SSL(smtp_server, 465) + #server.starttls() # 调用starttls()方法,就创建了安全连接 + # server.set_debuglevel(1) # 记录详细信息 + server.login(from_addr, password) # 登录邮箱服务器 + server.sendmail(from_addr, to_addr, msg.as_string()) # 发送信息 + server.quit() + #print("加密后邮件发送成功!") + except Exception as e: + print("发送失败:" + e) + ret = False + return ret + + +def get_html_msg(centexts): + head = """ + +Load Test Results + + +""" + p = """

数据库账号过期监控

+
+ """ + body = """""" + p + """ +

请数据库管理员检查数据库用户密码状态以及在密码失效7天之前重置用户密码,避免应用系统无法连接到数据库,造成系统服务故障!!!

+

#账号过期详情:

+ + + + +""" + centexts + """ +
# 账号账号状态账号过期天数账号失效日期
+""" + html = """""" + head + body + """""" + return html + +def isDatabaseUserExpiry (): + connect = cx_Oracle.connect('system/test@101.192.10.28:1521/testdb ') + cursor = connect.cursor() + sqlSelect = "select t.username, t.ACCOUNT_STATUS, TRUNC(t.expiry_date - sysdate) expiry_day,t.expiry_date from dba_users t where TRUNC(t.expiry_date-sysdate) between 1 and 15" + cursor.execute(sqlSelect) + results = cursor.fetchall() + list = [] + if results != [] : + for row in results: + databaseUser = DatabaseUser(row[0], row[1], row[2], row[3]) + list.append(databaseUser) + cursor.close() + connect.close() + return list + else: + cursor.close() + connect.close() + return + +if __name__ == '__main__': + list = isDatabaseUserExpiry() + from_addr = 'qq@qq.com' # 邮箱登录用户名 + password = 'test' # 登录密码 + to_addr = ['qq@qq.com', 'qq@qq.com'] + + contexts = '' + # 发送对象地址,可以多个邮箱 + smtp_server = "smtp.exmail.qq.com" # 服务器地址,默认端口号25 + if list != [] and list != None: + for dsUser in list: + context = " %s %s %d %s" %(dsUser.username, dsUser.account_status, dsUser.expiry_day, dsUser.expiry_date ) + contexts = contexts + context + msg = get_html_msg(contexts) + res = sendEmail(from_addr, password, to_addr, msg, smtp_server) + if res: + print '发送邮件成功!' + else: + print '发送邮件失败!' + else: + print "账号没有过期" From b5f8b9524a8f2c39f465a33e4811b91d0d9c413d Mon Sep 17 00:00:00 2001 From: wangxulong511 Date: Wed, 17 Oct 2018 17:23:40 +0800 Subject: [PATCH 2/3] Update sendMail.py MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加注释 --- sendMail.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/sendMail.py b/sendMail.py index 769be9f2..a67a1702 100644 --- a/sendMail.py +++ b/sendMail.py @@ -118,10 +118,9 @@ def isDatabaseUserExpiry (): list = isDatabaseUserExpiry() from_addr = 'qq@qq.com' # 邮箱登录用户名 password = 'test' # 登录密码 - to_addr = ['qq@qq.com', 'qq@qq.com'] - - contexts = '' - # 发送对象地址,可以多个邮箱 + to_addr = ['qq1@qq.com', 'qq2@qq.com'] + # 发送对象地址,可以多个邮箱 + contexts = '' smtp_server = "smtp.exmail.qq.com" # 服务器地址,默认端口号25 if list != [] and list != None: for dsUser in list: From fca5da0389fb0e7a540f340f8fcb5a0c0780b580 Mon Sep 17 00:00:00 2001 From: wangxulong511 Date: Fri, 19 Oct 2018 17:57:45 +0800 Subject: [PATCH 3/3] Create python_templet_html --- python_templet_html | 119 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 python_templet_html diff --git a/python_templet_html b/python_templet_html new file mode 100644 index 00000000..d29c33b4 --- /dev/null +++ b/python_templet_html @@ -0,0 +1,119 @@ + + + + +Load Test Results + + + + +

每日构建结果

+ + + + +
构建时间: ${binding.now}.
+
+

构建情况汇总

+ + + + + + +
# 构建项目数失败项目数失败率
${binding.build_num}${binding.failed_num}${binding.failedPercent}%
+
+

构建失败详情

+ + + + + + +
项目构建地址
+ +