mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-15 17:56:12 +01:00
bug fix: email marketing tool
This commit is contained in:
@@ -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
|
||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user