From ad9981c2a4e2e76633b5e6af48aae59a3001d7c6 Mon Sep 17 00:00:00 2001 From: Usman Nasir Date: Thu, 30 Jan 2020 20:29:13 +0500 Subject: [PATCH] bug fix: dkim keys generation for subdomains --- plogical/CyberCPLogFileWriter.py | 50 ++++++++++++++++++++++++-------- plogical/mailUtilities.py | 8 +++-- plogical/processUtilities.py | 2 ++ 3 files changed, 46 insertions(+), 14 deletions(-) diff --git a/plogical/CyberCPLogFileWriter.py b/plogical/CyberCPLogFileWriter.py index 1b39f7d97..4bfe86a46 100755 --- a/plogical/CyberCPLogFileWriter.py +++ b/plogical/CyberCPLogFileWriter.py @@ -1,13 +1,33 @@ +import os,sys +sys.path.append('/usr/local/CyberCP') +import django +os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings") +try: + django.setup() +except: + pass import subprocess import time -from plogical.mailUtilities import mailUtilities import socket -from loginSystem.models import Administrator +try: + from loginSystem.models import Administrator +except: + pass import os +import smtplib class CyberCPLogFileWriter: fileName = "/home/cyberpanel/error-logs.txt" + @staticmethod + def SendEmail(sender, receivers, message): + try: + smtpObj = smtplib.SMTP('localhost') + smtpObj.sendmail(sender, receivers, message) + print("Successfully sent email") + except BaseException as msg: + CyberCPLogFileWriter.writeToFile(str(msg)) + @staticmethod def writeToFile(message): try: @@ -20,20 +40,26 @@ class CyberCPLogFileWriter: emailPath = '/usr/local/CyberCP/emailDebug' - if os.path.exists(emailPath): - SUBJECT = "CyberPanel log reporting" - admin = Administrator.objects.get(userName='admin') - sender = 'root@%s' % (socket.gethostname()) - TO = [admin.email] - message = """\ + try: + if os.path.exists(emailPath): + SUBJECT = "CyberPanel log reporting" + admin = Administrator.objects.get(userName='admin') + sender = 'root@%s' % (socket.gethostname()) + TO = [admin.email] + message = """\ From: %s To: %s Subject: %s - -%s - """ % (sender, ", ".join(TO), SUBJECT, '[%s] %s. \n' % (time.strftime("%m.%d.%Y_%H-%M-%S"), message)) - mailUtilities.SendEmail(sender, TO, message) +%s +""" % ( + sender, ", ".join(TO), SUBJECT, '[%s] %s. \n' % (time.strftime("%m.%d.%Y_%H-%M-%S"), message)) + CyberCPLogFileWriter.SendEmail(sender, TO, message) + except BaseException as msg: + file = open(CyberCPLogFileWriter.fileName, 'a') + file.writelines("[" + time.strftime( + "%m.%d.%Y_%H-%M-%S") + "] " + str(msg) + "\n") + file.close() except BaseException as msg: return "Can not write to error file." diff --git a/plogical/mailUtilities.py b/plogical/mailUtilities.py index 3a20fbfd5..eb20a73a2 100755 --- a/plogical/mailUtilities.py +++ b/plogical/mailUtilities.py @@ -217,7 +217,7 @@ class mailUtilities: #extractDomain = tldextract.extract(virtualHostName) #virtualHostName = extractDomain.domain + '.' + extractDomain.suffix - if os.path.exists("/etc/opendkim/keys/" + virtualHostName): + if os.path.exists("/etc/opendkim/keys/" + virtualHostName + "/default.txt"): return 1, "None" @@ -227,7 +227,11 @@ class mailUtilities: ## Generate keys - command = "opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % (virtualHostName, virtualHostName) + if ProcessUtilities.decideDistro() == ProcessUtilities.centos: + command = "/usr/sbin/opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % (virtualHostName, virtualHostName) + else: + command = "opendkim-genkey -D /etc/opendkim/keys/%s -d %s -s default" % ( + virtualHostName, virtualHostName) ProcessUtilities.normalExecutioner(command) ## Fix permissions diff --git a/plogical/processUtilities.py b/plogical/processUtilities.py index af1e0129d..d93fc1a92 100755 --- a/plogical/processUtilities.py +++ b/plogical/processUtilities.py @@ -92,6 +92,8 @@ class ProcessUtilities(multi.Thread): @staticmethod def normalExecutioner(command, shell=False): try: + if os.path.exists(ProcessUtilities.debugPath): + logging.writeToFile(command) if shell == False: res = subprocess.call(shlex.split(command)) else: