bug fix: email marketing tool

This commit is contained in:
Usman Nasir
2020-06-04 22:24:51 +05:00
parent 7468b9bf96
commit ba353a4d56
2 changed files with 73 additions and 50 deletions

View File

@@ -188,68 +188,91 @@ class emailMarketing(multi.Thread):
tempPath = "/home/cyberpanel/" + str(randint(1000, 9999)) tempPath = "/home/cyberpanel/" + str(randint(1000, 9999))
emailJob = EmailJobs(owner=emailMessage, date=time.strftime("%I-%M-%S-%a-%b-%Y"),
host=self.extraArgs['host'], totalEmails=totalEmails,
sent=sent, failed=failed
)
emailJob.save()
for items in allEmails: for items in allEmails:
message = MIMEMultipart('alternative') try:
message['Subject'] = emailMessage.subject message = MIMEMultipart('alternative')
message['From'] = emailMessage.fromEmail message['Subject'] = emailMessage.subject
message['reply-to'] = emailMessage.replyTo message['From'] = emailMessage.fromEmail
if (items.verificationStatus == 'Verified' or self.extraArgs['verificationCheck']) and not items.verificationStatus == 'REMOVED': message['reply-to'] = emailMessage.replyTo
try:
removalLink = "https:\/\/" + ipAddress + ":8090\/emailMarketing\/remove\/" + self.extraArgs[ if (items.verificationStatus == 'Verified' or self.extraArgs[
'listName'] + "\/" + items.email 'verificationCheck']) and not items.verificationStatus == 'REMOVED':
messageText = emailMessage.emailMessage.encode('utf-8', 'replace') try:
message['To'] = items.email
if re.search(b'<html', messageText, re.IGNORECASE) and re.search(b'<body', messageText, removalLink = "https:\/\/" + ipAddress + ":8090\/emailMarketing\/remove\/" + self.extraArgs[
re.IGNORECASE): 'listName'] + "\/" + items.email
finalMessage = messageText.decode() messageText = emailMessage.emailMessage.encode('utf-8', 'replace')
message['To'] = items.email
self.extraArgs['unsubscribeCheck'] = 0 if re.search(b'<html', messageText, re.IGNORECASE) and re.search(b'<body', messageText,
if self.extraArgs['unsubscribeCheck']: re.IGNORECASE):
messageFile = open(tempPath, 'w') finalMessage = messageText.decode()
messageFile.write(finalMessage)
messageFile.close()
command = "sudo sed -i 's/{{ unsubscribeCheck }}/" + removalLink + "/g' " + tempPath self.extraArgs['unsubscribeCheck'] = 0
ProcessUtilities.executioner(command, 'cyberpanel') if self.extraArgs['unsubscribeCheck']:
messageFile = open(tempPath, 'w')
messageFile.write(finalMessage)
messageFile.close()
messageFile = open(tempPath, 'r') command = "sudo sed -i 's/{{ unsubscribeCheck }}/" + removalLink + "/g' " + tempPath
finalMessage = messageFile.read() ProcessUtilities.executioner(command, 'cyberpanel')
messageFile.close()
html = MIMEText(finalMessage, 'html') messageFile = open(tempPath, 'r')
message.attach(html) finalMessage = messageFile.read()
messageFile.close()
else: html = MIMEText(finalMessage, 'html')
finalMessage = messageText message.attach(html)
if self.extraArgs['unsubscribeCheck']: else:
finalMessage = finalMessage.replace('{{ unsubscribeCheck }}', removalLink) finalMessage = messageText
html = MIMEText(finalMessage, 'plain') if self.extraArgs['unsubscribeCheck']:
message.attach(html) finalMessage = finalMessage.replace('{{ unsubscribeCheck }}', removalLink)
smtpServer.sendmail(message['From'], items.email, message.as_string()) html = MIMEText(finalMessage, 'plain')
sent = sent + 1 message.attach(html)
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Successfully sent: ' + str(sent) + ' Failed: ' + str(
failed))
except BaseException as msg:
failed = failed + 1
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Successfully sent: ' + str(
sent) + ', Failed: ' + str(failed))
logging.CyberCPLogFileWriter.writeToFile(str(msg))
emailJob = EmailJobs(owner=emailMessage, date=time.strftime("%I-%M-%S-%a-%b-%Y"), smtpServer.sendmail(message['From'], items.email, message.as_string())
host=self.extraArgs['host'], totalEmails=totalEmails, sent = sent + 1
sent=sent, failed=failed emailJob.sent = sent
) emailJob.save()
emailJob.save() logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Successfully sent: ' + str(
sent) + ' Failed: ' + str(
failed))
except BaseException as msg:
failed = failed + 1
emailJob.failed = failed
emailJob.save()
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Successfully sent: ' + str(
sent) + ', Failed: ' + str(failed))
logging.CyberCPLogFileWriter.writeToFile(str(msg))
except BaseException as msg:
failed = failed + 1
emailJob.failed = failed
emailJob.save()
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Successfully sent: ' + str(
sent) + ', Failed: ' + str(failed))
logging.CyberCPLogFileWriter.writeToFile(str(msg))
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Email job completed. [200]') emailJob = EmailJobs(owner=emailMessage, date=time.strftime("%I-%M-%S-%a-%b-%Y"),
host=self.extraArgs['host'], totalEmails=totalEmails,
sent=sent, failed=failed
)
emailJob.save()
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
'Email job completed. [200]')
except BaseException as msg: except BaseException as msg:
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], str(msg) + '. [404]') logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], str(msg) + '. [404]')
return 0 return 0

View File

@@ -684,7 +684,7 @@ class EmailMarketingManager:
em = EM('startEmailJob', extraArgs) em = EM('startEmailJob', extraArgs)
em.start() em.start()
time.sleep(2) time.sleep(5)
data_ret = {"status": 1, 'tempStatusPath': extraArgs['tempStatusPath']} data_ret = {"status": 1, 'tempStatusPath': extraArgs['tempStatusPath']}
json_data = json.dumps(data_ret) json_data = json.dumps(data_ret)