def emailVerificationJob(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) extraArgs = {} extraArgs['listName'] = data['listName'] delList = EmailLists.objects.get(listName=extraArgs['listName']) currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass elif delList.owner.id != userID: ACLManager.loadErrorJson() em = EM('verificationJob', extraArgs) em.start() time.sleep(2) data_ret = {"status": 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def saveEmailTemplate(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) name = data['name'] subject = data['subject'] fromName = data['fromName'] fromEmail = data['fromEmail'] replyTo = data['replyTo'] emailMessage = data['emailMessage'] admin = Administrator.objects.get(pk=userID) newTemplate = EmailTemplate(owner=admin, name=name.replace(' ', ''), subject=subject, fromName=fromName, fromEmail=fromEmail, replyTo=replyTo, emailMessage=emailMessage) newTemplate.save() data_ret = {"status": 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def deleteEmail(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) id = data['id'] delEmail = EmailsInList.objects.get(id=id) currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass elif delEmail.owner.owner.id != userID: ACLManager.loadErrorJson() delEmail.delete() data_ret = {"status": 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def submitEmailList(self): try: data = json.loads(self.request.body) extraArgs = {} extraArgs['domain'] = data['domain'] extraArgs['path'] = data['path'] extraArgs['listName'] = data['listName'].replace(' ', '') extraArgs['tempStatusPath'] = "/home/cyberpanel/" + str(randint(1000, 9999)) userID = self.request.session['userID'] currentACL = ACLManager.loadedACL(userID) admin = Administrator.objects.get(pk=userID) if ACLManager.checkOwnership(data['domain'], admin, currentACL) == 1: pass else: return ACLManager.loadErrorJson() if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() em = EM('createEmailList', extraArgs) em.start() time.sleep(2) data_ret = {"status": 1, 'tempStatusPath': extraArgs['tempStatusPath']} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def manageSMTP(self): try: userID = self.request.session['userID'] currentACL = ACLManager.loadedACL(userID) admin = Administrator.objects.get(pk=userID) if ACLManager.checkOwnership(self.domain, admin, currentACL) == 1: pass else: return ACLManager.loadError() if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadError() website = Websites.objects.get(domain=self.domain) emailLists = website.emaillists_set.all() listNames = [] for items in emailLists: listNames.append(items.listName) return render(self.request, 'emailMarketing/manageSMTPHosts.html', { 'listNames': listNames, 'domain': self.domain }) except KeyError, msg: return redirect(loadLoginPage)
def composeEmailMessage(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() return render(self.request, 'emailMarketing/composeMessages.html') except KeyError, msg: return redirect(loadLoginPage)
def fetchJobs(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) selectedTemplate = data['selectedTemplate'] template = EmailTemplate.objects.get(name=selectedTemplate) currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass elif template.owner != admin: return ACLManager.loadErrorJson() allJobs = EmailJobs.objects.filter(owner=template) json_data = "[" checker = 0 counter = 1 for items in allJobs: dic = { 'id': items.id, 'date': items.date, 'host': items.host, 'totalEmails': items.totalEmails, 'sent': items.sent, 'failed': items.failed } if checker == 0: json_data = json_data + json.dumps(dic) checker = 1 else: json_data = json_data + ',' + json.dumps(dic) counter = counter + 1 json_data = json_data + ']' data_ret = {"status": 1, 'data': json_data} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def smtpHostOperations(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) id = data['id'] operation = data['operation'] if operation == 'delete': delHost = SMTPHosts.objects.get(id=id) currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass elif delHost.owner.id != userID: ACLManager.loadErrorJson() delHost.delete() data_ret = {"status": 1, 'message': 'Successfully deleted.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) else: try: verifyHost = SMTPHosts.objects.get(id=id) verifyLogin = smtplib.SMTP(verifyHost.host, int(verifyHost.port)) verifyLogin.login(verifyHost.userName, verifyHost.password) data_ret = {"status": 1, 'message': 'Login successful.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except smtplib.SMTPHeloError: data_ret = {"status": 0, 'error_message': 'The server did not reply properly to the HELO greeting.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except smtplib.SMTPAuthenticationError: data_ret = {"status": 0, 'error_message': 'Username and password combination not accepted.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except smtplib.SMTPException: data_ret = {"status": 0, 'error_message': 'No suitable authentication method was found.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def saveSMTPHost(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) smtpHost = data['smtpHost'] smtpPort = data['smtpPort'] smtpUserName = data['smtpUserName'] smtpPassword = data['smtpPassword'] if SMTPHosts.objects.count() == 0: admin = Administrator.objects.get(pk=1) defaultHost = SMTPHosts(owner=admin, host='localhost', port=25, userName='******', password='******') defaultHost.save() try: verifyLogin = smtplib.SMTP(smtpHost, int(smtpPort)) verifyLogin.login(smtpUserName, smtpPassword) admin = Administrator.objects.get(pk=userID) newHost = SMTPHosts(owner=admin, host=smtpHost, port=smtpPort, userName=smtpUserName, password=smtpPassword) newHost.save() except smtplib.SMTPHeloError: data_ret = {"status": 0, 'error_message': 'The server did not reply properly to the HELO greeting.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except smtplib.SMTPAuthenticationError: data_ret = {"status": 0, 'error_message': 'Username and password combination not accepted.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) except smtplib.SMTPException: data_ret = {"status": 0, 'error_message': 'No suitable authentication method was found.'} json_data = json.dumps(data_ret) return HttpResponse(json_data) data_ret = {"status": 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def fetchSMTPHosts(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: allHosts = SMTPHosts.objects.all() else: admin = Administrator.objects.get(pk=userID) allHosts = admin.smtphosts_set.all() json_data = "[" checker = 0 counter = 1 for items in allHosts: dic = { 'id': items.id, 'owner': items.owner.userName, 'host': items.host, 'port': items.port, 'userName': items.userName } if checker == 0: json_data = json_data + json.dumps(dic) checker = 1 else: json_data = json_data + ',' + json.dumps(dic) counter = counter + 1 json_data = json_data + ']' data_ret = {"status": 1, 'data': json_data} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def createEmailList(self): try: userID = self.request.session['userID'] currentACL = ACLManager.loadedACL(userID) admin = Administrator.objects.get(pk=userID) if ACLManager.checkOwnership(self.domain, admin, currentACL) == 1: pass else: return ACLManager.loadError() if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadError() return render(self.request, 'emailMarketing/createEmailList.html', {'domain': self.domain}) except KeyError, msg: return redirect(loadLoginPage)
def deleteJob(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) id = data['id'] delJob = EmailJobs(id=id) delJob.delete() data_ret = {"status": 1} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)
def sendEmails(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() currentACL = ACLManager.loadedACL(userID) templateNames = emACL.allTemplates(currentACL, admin) hostNames = emACL.allSMTPHosts(currentACL, admin) listNames = emACL.allEmailsLists(currentACL, admin) Data = {} Data['templateNames'] = templateNames Data['hostNames'] = hostNames Data['listNames'] = listNames return render(self.request, 'emailMarketing/sendEmails.html', Data) except KeyError, msg: return redirect(loadLoginPage)
def fetchEmails(self): try: userID = self.request.session['userID'] admin = Administrator.objects.get(pk=userID) if emACL.checkIfEMEnabled(admin.userName) == 0: return ACLManager.loadErrorJson() data = json.loads(self.request.body) listName = data['listName'] recordstoShow = int(data['recordstoShow']) page = int(data['page']) finalPageNumber = ((page * recordstoShow)) - recordstoShow endPageNumber = finalPageNumber + recordstoShow emailList = EmailLists.objects.get(listName=listName) currentACL = ACLManager.loadedACL(userID) if currentACL['admin'] == 1: pass elif emailList.owner.id != userID: ACLManager.loadErrorJson() emails = emailList.emailsinlist_set.all() ## Pagination value pages = float(len(emails)) / float(recordstoShow) pagination = [] counter = 1 if pages <= 1.0: pages = 1 pagination.append(counter) else: pages = ceil(pages) finalPages = int(pages) + 1 for i in range(1, finalPages): pagination.append(counter) counter = counter + 1 ## Pagination value emails = emails[finalPageNumber:endPageNumber] json_data = "[" checker = 0 counter = 1 for items in emails: dic = {'id': items.id, 'email': items.email, 'verificationStatus': items.verificationStatus, 'dateCreated': items.dateCreated} if checker == 0: json_data = json_data + json.dumps(dic) checker = 1 else: json_data = json_data + ',' + json.dumps(dic) counter = counter + 1 json_data = json_data + ']' data_ret = {"status": 1, 'data': json_data, 'pagination': pagination} json_data = json.dumps(data_ret) return HttpResponse(json_data) except BaseException, msg: final_dic = {'status': 0, 'error_message': str(msg)} final_json = json.dumps(final_dic) return HttpResponse(final_json)