def checkargs(self): from Redis import RedisObject rc = RedisObject() if rc.ping(): if rc.exists(self.name): raise KeyError("Existing user name, exit!") else: print "\033[0;31;40mConnect Redis Server Error,Quit.\033[0m" sys.exit(7) if re.match(r'[a-zA-Z\_][0-9a-zA-Z\_]{1,19}', self.name) == None: raise ValueError('user_name illegal:A letter is required to begin with a letter or number, and the range number is 1-19.') sys.exit(129) if not self.time > 0: raise ValueError('Bad Value, demand is greater than 0 of the number.') sys.exit(127) if not self.service in Config.SERVICES: raise TypeError('Unsupport service:%s' % self.service) sys.exit(128) if re.match(r'([0-9a-zA-Z\_*\.*\-*]+)@([a-zA-Z0-9\-*\_*\.*]+)\.([a-zA-Z]+$)', self.email) == None: raise TypeError('Mail format error.') sys.exit(130)
server.sendmail(self.from_addr, [to_addr], msg.as_string()) server.quit() if __name__ == '__main__': #When the replacement did not receive mail import sys from Redis import RedisObject if len(sys.argv) == 2: user = sys.argv[1] else: raise KeyError('Args is not enough.') sinfo = {"Username":user} rc = RedisObject() if rc.ping() and rc.exists(user): uinfo = rc.hashget(user) email = uinfo['email'] sinfo['Service'] = uinfo['service'] sinfo['Password'] = uinfo['passwd'] if uinfo.get('dn', None): #if true, is web, or app. sinfo['Connection'] = uinfo['dn'] else: sinfo['Connection'] = uinfo['ip'] + ':' + uinfo['port'] sinfo['other'] = 'This is a supplemental email.' ec = SendMail() import json ec.send(user, email, json.dumps(sinfo)) else: print "No user or connect fail" sys.exit(1)