Пример #1
0
 def __send(self, to, msg):
     error_flag = True
     # -1 接收邮件地址或校验码填写非法
     # 0 公共邮件发送成功
     # 1 SMTP服务器连接失败
     # 2 公共邮箱登陆失败
     # 3 公共邮件发送失败
     error_type = 0
     logmsg = "准备发送邮件"
     sys_logger.info(logmsg)
     # 尝试连接服务器
     try:
         # 根据SMTP服务器SSL状态连接
         if self.smtp_ssl is True:
             smtp_server = smtplib.SMTP_SSL(self.smtp_host, self.smtp_port)
         else:
             smtp_server = smtplib.SMTP(self.smtp_host, self.smtp_port)
         # 打印日志
         logmsg = "SMTP服务器连接成功"
         sys_logger.debug(logmsg)
     except Exception as A:
         logmsg = "SMTP服务器连接失败,失败信息:" + repr(A)
         error_flag = False
         error_type = 1
         sys_logger.error(logmsg)
     else:
         try:
             smtp_server.login(self.send_address, self.send_password)
             logmsg = "公共邮件箱登陆成功"
             sys_logger.debug(logmsg)
         except Exception as B:
             logmsg = "公共邮件箱登陆失败,失败信息:" + repr(B)
             error_flag = False
             error_type = 2
             sys_logger.error(logmsg)
         else:
             try:
                 smtp_server.sendmail(self.send_address, to, msg.as_string())
                 smtp_server.quit()
                 logmsg = "公共邮件发送成功"
                 sys_logger.debug(logmsg)
             except Exception as C:
                 logmsg = "公共邮件发送失败,失败信息:" + repr(C)
                 error_flag = False
                 error_type = 3
                 sys_logger.warn(logmsg)
     logmsg = "邮件发送结束"
     sys_logger.info(logmsg)
     return error_flag, error_type
Пример #2
0
# -*- coding: utf-8 -*-

from automation import automation
from handler.log import sys_logger
from handler.config import appconfig
from gevent import pywsgi
from geventwebsocket.handler import WebSocketHandler


if __name__ == '__main__':
    logmsg = "系统初始化|准备启动测试环境"
    sys_logger.info(logmsg)
    try:
        # 不能在生产环境中执行本文件
        # automation.run(debug=False, host=appconfig.get("api", "host"), port=int(appconfig.get("api", "port")))
        server = pywsgi.WSGIServer(
            (appconfig.get("api", "host"), int(appconfig.get("api", "port"))),
            automation,
            handler_class=WebSocketHandler
        )
        print('服务已启动')
        server.serve_forever()
    except Exception as e:
        logmsg = "系统初始化|测试环境启动失败,失败原因:" + repr(e)
        sys_logger.error(logmsg)
    logmsg = "系统初始化|测试环境启动结束"
    sys_logger.info(logmsg)

Пример #3
0
# -*- coding: utf-8 -*-

from redis import Redis, ConnectionPool
from handler.config import database_config
from handler.log import sys_logger


msg = "准备初始化worker存储(redis)连接池"
sys_logger.info(msg)
try:
    pool = ConnectionPool(
        host=database_config.get("redis", "host"),
        port=int(database_config.get("redis", "port")),
        password=database_config.get("redis", "password") if database_config.get("redis", "password") else None,
        max_connections=int(database_config.get("redis", "max_connections"))
    )
    redis_pool = Redis(connection_pool=pool)
    msg = "worker存储(redis)连接池初始化成功"
    sys_logger.info(msg)
except Exception as e:
    msg = "worker存储(redis)连接池初始化失败,失败原因:" + repr(e)
    sys_logger.error(msg)
    raise RuntimeError(msg)
Пример #4
0
 def sendmail_changemail_success(self, to):
     # 检查传参合法性
     # to
     if type(to) is str:
         logmsg = "准备给" + to + "发送账户绑定邮箱修改成功邮件"
         sys_logger.info(logmsg)
         # 编辑邮件具体内容
         mail_msg = """
             <html>
                 <head>
                     <style type="text/css">
                         #platform_logo {
                             height: 18px;
                         }
                         #platform_logo_left{
                             transition: all 0.5s;
                             fill: #4DB6FF;
                         }
                         #platform_logo_center{
                             transition: all 0.5s;
                             fill: #539D2C;
                         }
                         #platform_logo_right{
                             transition: all 0.5s;
                             fill: #EDA833;
                         }
                         #platform_logo > path:hover{
                             transition: all 0.5s;
                             fill: lightgrey;
                         }
                     </style>
                 </head>
                 <body style="margin:0;">
                     <div style="background-color: #f5f5f5;">
                         <div style="margin-left: 20px;padding-top: 10px;
                         padding-bottom: 10px;font-size: 18px;font-weight: 600;">
                             Dear %s,
                         </div>
                         <div style="position: relative;margin-left: 20px;margin-right: 20px;
                         font-size: 15px;background-color: white;border: 1px solid darkgrey;border-radius: 4px;">
                             <div style="margin-top: 15px;margin-left: 15px;padding-bottom: 10px;">
                                 您正在尝试修改绑定邮箱:
                                 <a href="%s">绑定邮箱修改成功</a>
                                 <div style="margin-left: 10px;padding-bottom: 10px;font-size: 16px;"></div>
                             </div>
                         </div>
                         <div style="margin-top: 10px;padding-bottom: 10px;
                         color: darkgrey;text-align: right;">
                             <div style="margin-right: 20px;font-size: 12px;">
                                 本条消息发送自%s测试平台
                             </div>
                         </div>
                     </div>
                 </body>
             </html>
             """ % (
             to.split("@")[0],
             appconfig.get("web", "http") + "://" +
             appconfig.get("web", "host") + ":" +
             appconfig.get("web", "port") + appconfig.get("web_url", "login"),
             appconfig.get('org', 'abbreviation'),
         )
         # 装载消息
         # 添加根MIME
         msg = MIMEText(mail_msg, 'html', 'utf-8')
         # 初始化邮件发送人
         msg['From'] = Header(self.send_address, 'utf-8')
         # 初始化邮件接收人
         msg['To'] = Header(to, 'utf-8')
         # 初始化邮件主题
         msg['Subject'] = Header(
             '%s测试平台-账号注册' % appconfig.get('org', 'abbreviation'),
             'utf-8'
         )
         # 发送
         result_flag, result_type = self.__send(to, msg)
         logmsg = "给" + to + "发送绑定邮箱修改成功邮件结束"
         sys_logger.info(logmsg)
         return result_flag, result_type
     else:
         logmsg = "接收邮件地址或校验码填写非法"
         sys_logger.error(logmsg)
         return False, -1
Пример #5
0
 def sendmail_reset_password(self, user_id, to, code, operationid):
     # 检查传参合法性
     # to
     if type(to) is str and type(code) is str:
         logmsg = "准备给" + to + "发送重置密码邮件"
         sys_logger.info(logmsg)
         # 编辑邮件具体内容
         mail_msg = """
             <html>
                 <head>
                     <style type="text/css">
                         #platform_logo {
                             height: 18px;
                         }
                         #platform_logo_left{
                             transition: all 0.5s;
                             fill: #4DB6FF;
                         }
                         #platform_logo_center{
                             transition: all 0.5s;
                             fill: #539D2C;
                         }
                         #platform_logo_right{
                             transition: all 0.5s;
                             fill: #EDA833;
                         }
                         #platform_logo > path:hover{
                             transition: all 0.5s;
                             fill: lightgrey;
                         }
                     </style>
                 </head>
                 <body style="margin:0;">
                     <div style="background-color: #f5f5f5;">
                         <div style="margin-left: 20px;padding-top: 10px;
                         padding-bottom: 10px;font-size: 18px;font-weight: 600;">
                             Dear %s,
                         </div>
                         <div style="position: relative;margin-left: 20px;margin-right: 20px;
                         font-size: 15px;background-color: white;border: 1px solid darkgrey;border-radius: 4px;">
                             <div style="margin-top: 15px;margin-left: 15px;padding-bottom: 10px;">
                                 您正在尝试重置密码:
                                 <a href="%s?userId=%s&mail=%s&code=%s&operate=%s">点我打开重置密码页</a>
                                 <div style="margin-left: 10px;padding-bottom: 10px;font-size: 16px;"></div>
                             </div>
                         </div>
                         <div style="margin-top: 10px;padding-bottom: 10px;
                         color: darkgrey;text-align: right;">
                             <div style="margin-right: 20px;font-size: 12px;">
                                 本条消息发送自%s测试平台
                             </div>
                         </div>
                     </div>
                 </body>
             </html>
             """ % (
                     to.split("@")[0],
                     appconfig.get("web", "http") + "://" +
                     appconfig.get("web", "host") + ":" +
                     appconfig.get("web", "port") + appconfig.get("web_url", "resetPassword"),
                     str(user_id),
                     parse.quote(to),
                     parse.quote(code),
                     str(operationid),
                     appconfig.get('org', 'abbreviation'),
                 )
         # 装载消息
         # 添加根MIME
         msg = MIMEText(mail_msg, 'html', 'utf-8')
         # 初始化邮件发送人
         msg['From'] = Header(self.send_address, 'utf-8')
         # 初始化邮件接收人
         msg['To'] = Header(to, 'utf-8')
         # 初始化邮件主题
         msg['Subject'] = Header(
             '%s测试平台-账号注册' % appconfig.get('org', 'abbreviation'),
             'utf-8'
         )
         # 发送
         self.__send(to, msg)
         logmsg = "给" + to + "发送重置密码邮件结束"
         sys_logger.info(logmsg)
         return True
     else:
         logmsg = "接收邮件地址或校验码填写非法"
         sys_logger.error(logmsg)
         return False