|  |  |  | 
|---|
|  |  |  | from email.header import Header | 
|---|
|  |  |  | import datetime | 
|---|
|  |  |  | import subprocess | 
|---|
|  |  |  | import urllib | 
|---|
|  |  |  | # get: request.query.username request.GET.get('username','') | 
|---|
|  |  |  | # post: request.forms.get('username')  request.POST.get('username') | 
|---|
|  |  |  | #=============================================================================== | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | elif stateType in ["MapError", "GameServerError", "PyMongoError"]: | 
|---|
|  |  |  | #groupID=%s&userDBName=%s&Type=PyMongoError | 
|---|
|  |  |  | ServerInfo = "错误类型:%s 服务器组:%s, dbname:%s"%(stateType, | 
|---|
|  |  |  | ServerInfo = "错误类型:%s 服务器组:%s, dbname:%s msg:%s"%(stateType, | 
|---|
|  |  |  | dataDict.get("groupID", 0), | 
|---|
|  |  |  | dataDict.get("userDBName", 0)) | 
|---|
|  |  |  | dataDict.get("userDBName", 0), | 
|---|
|  |  |  | urllib.unquote_plus(dataDict.get("MsgInfo", "0"))) | 
|---|
|  |  |  | SendEmail(ServerInfo) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | elif stateType == "MapDisconnect": | 
|---|
|  |  |  | 
|---|
|  |  |  | dataDict.get("userDBName", 0)) | 
|---|
|  |  |  | SendEmail(ServerInfo) | 
|---|
|  |  |  | return | 
|---|
|  |  |  | elif stateType == "GameWarning": | 
|---|
|  |  |  | # 游戏通用警告邮件使用 | 
|---|
|  |  |  | ServerInfo = "游戏警报:服务器组:%s, dbname:%s, 警告信息:%s"%( | 
|---|
|  |  |  | dataDict.get("groupID", 0), | 
|---|
|  |  |  | dataDict.get("userDBName", 0), | 
|---|
|  |  |  | urllib.unquote_plus(dataDict.get("MsgInfo", 0))) | 
|---|
|  |  |  | SendEmail(ServerInfo) | 
|---|
|  |  |  | elif stateType in ["MapServerRaiseException", "GameServerRaiseException", "RaiseException"]: | 
|---|
|  |  |  | ServerInfo = "%s 抛出Try异常报错:服务器组:%s, dbname:%s, MapID:%s 异常信息:%s"%( | 
|---|
|  |  |  | stateType, | 
|---|
|  |  |  | dataDict.get("groupID", 0), | 
|---|
|  |  |  | dataDict.get("userDBName", 0), | 
|---|
|  |  |  | dataDict.get("mapID", 0), | 
|---|
|  |  |  | urllib.unquote_plus(dataDict.get("MsgInfo", 0))) | 
|---|
|  |  |  | SendEmail(ServerInfo) | 
|---|
|  |  |  | elif stateType == "QueryMapOK": | 
|---|
|  |  |  | if g_AllMapCnt == 0: | 
|---|
|  |  |  | if not os.path.exists(".\MapCount.txt"): | 
|---|
|  |  |  | 
|---|
|  |  |  | return "服务器开启完毕,地图数:%s"%g_AllMapCnt | 
|---|
|  |  |  | except Exception, e: | 
|---|
|  |  |  | print e | 
|---|
|  |  |  | ServerInfo = "控制台报错,服务器异常!  %s"%e | 
|---|
|  |  |  | try: | 
|---|
|  |  |  | SendEmail(ServerInfo) | 
|---|
|  |  |  | except: | 
|---|
|  |  |  | print "无法发送邮件" | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 邮件汇报 | 
|---|
|  |  |  | def SendEmail(ServerInfo): | 
|---|
|  |  |  | 
|---|
|  |  |  | sender = '2199274165@qq.com' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | # 这里可以填写需要接收汇报的邮件地址 | 
|---|
|  |  |  | receivers = ['305670599@qq.com']#, '1142397645@qq.com'] | 
|---|
|  |  |  | receivers = ['305670599@qq.com']#, '1142397645@qq.com', '305670599@qq.com', '995275190@qq.com'] | 
|---|
|  |  |  |  | 
|---|
|  |  |  | message = MIMEText('异常汇报:%s'%ServerInfo, 'plain', 'gbk') | 
|---|
|  |  |  | message['From'] = Header("游戏服务器异常汇报", 'gbk') | 
|---|