bug fix: dkim keys generation for subdomains

This commit is contained in:
Usman Nasir
2020-01-30 20:29:13 +05:00
parent 8982422edc
commit ad9981c2a4
3 changed files with 46 additions and 14 deletions

View File

@@ -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)
""" % (
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."

View File

@@ -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

View File

@@ -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: