mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-07 22:06:05 +01:00
restore email configurations once postfix is reset
This commit is contained in:
@@ -853,6 +853,17 @@ class MailServerManager(multi.Thread):
|
|||||||
if postFixData.find('myhostname = server.example.com') > -1:
|
if postFixData.find('myhostname = server.example.com') > -1:
|
||||||
return 0
|
return 0
|
||||||
else:
|
else:
|
||||||
|
try:
|
||||||
|
|
||||||
|
postFixLines = ProcessUtilities.outputExecutioner('cat %s' % (postfixPath)).splitlines()
|
||||||
|
|
||||||
|
for items in postFixLines:
|
||||||
|
if items.find('myhostname') > -1 and items[0] != '#':
|
||||||
|
self.mailHostName = items.split('=')[1].strip(' ')
|
||||||
|
self.MailSSL = 1
|
||||||
|
except BaseException as msg:
|
||||||
|
logging.CyberCPLogFileWriter.writeToFile('%s. [checkIfMailServerSSLIssued:864]' % (str(msg)))
|
||||||
|
|
||||||
ipFile = "/etc/cyberpanel/machineIP"
|
ipFile = "/etc/cyberpanel/machineIP"
|
||||||
f = open(ipFile)
|
f = open(ipFile)
|
||||||
ipData = f.read()
|
ipData = f.read()
|
||||||
@@ -1356,6 +1367,68 @@ class MailServerManager(multi.Thread):
|
|||||||
|
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
def configureOpenDKIM(self):
|
||||||
|
try:
|
||||||
|
|
||||||
|
## Configure OpenDKIM specific settings
|
||||||
|
|
||||||
|
openDKIMConfigurePath = "/etc/opendkim.conf"
|
||||||
|
|
||||||
|
configData = """
|
||||||
|
Mode sv
|
||||||
|
Canonicalization relaxed/simple
|
||||||
|
KeyTable refile:/etc/opendkim/KeyTable
|
||||||
|
SigningTable refile:/etc/opendkim/SigningTable
|
||||||
|
ExternalIgnoreList refile:/etc/opendkim/TrustedHosts
|
||||||
|
InternalHosts refile:/etc/opendkim/TrustedHosts
|
||||||
|
"""
|
||||||
|
|
||||||
|
writeToFile = open(openDKIMConfigurePath, 'a')
|
||||||
|
writeToFile.write(configData)
|
||||||
|
writeToFile.close()
|
||||||
|
|
||||||
|
## Configure postfix specific settings
|
||||||
|
|
||||||
|
postfixFilePath = "/etc/postfix/main.cf"
|
||||||
|
|
||||||
|
configData = """
|
||||||
|
smtpd_milters = inet:127.0.0.1:8891
|
||||||
|
non_smtpd_milters = $smtpd_milters
|
||||||
|
milter_default_action = accept
|
||||||
|
"""
|
||||||
|
|
||||||
|
writeToFile = open(postfixFilePath, 'a')
|
||||||
|
writeToFile.write(configData)
|
||||||
|
writeToFile.close()
|
||||||
|
|
||||||
|
if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu:
|
||||||
|
data = open(openDKIMConfigurePath, 'r').readlines()
|
||||||
|
writeToFile = open(openDKIMConfigurePath, 'w')
|
||||||
|
for items in data:
|
||||||
|
if items.find('Socket') > -1 and items.find('local:') and items[0] != '#':
|
||||||
|
writeToFile.writelines('Socket inet:8891@localhost\n')
|
||||||
|
else:
|
||||||
|
writeToFile.writelines(items)
|
||||||
|
writeToFile.close()
|
||||||
|
|
||||||
|
#### Restarting Postfix and OpenDKIM
|
||||||
|
|
||||||
|
command = "systemctl start opendkim"
|
||||||
|
ProcessUtilities.executioner(command)
|
||||||
|
|
||||||
|
command = "systemctl enable opendkim"
|
||||||
|
ProcessUtilities.executioner(command)
|
||||||
|
|
||||||
|
##
|
||||||
|
|
||||||
|
command = "systemctl restart postfix"
|
||||||
|
ProcessUtilities.executioner(command)
|
||||||
|
|
||||||
|
return 1
|
||||||
|
|
||||||
|
except BaseException as msg:
|
||||||
|
return 0
|
||||||
|
|
||||||
def fixCyberPanelPermissions(self):
|
def fixCyberPanelPermissions(self):
|
||||||
|
|
||||||
###### fix Core CyberPanel permissions
|
###### fix Core CyberPanel permissions
|
||||||
@@ -1527,13 +1600,16 @@ class MailServerManager(multi.Thread):
|
|||||||
ipAddressLocal = ipData.split('\n', 1)[0]
|
ipAddressLocal = ipData.split('\n', 1)[0]
|
||||||
|
|
||||||
self.LOCALHOST = ipAddressLocal
|
self.LOCALHOST = ipAddressLocal
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
self.remotemysql = 'OFF'
|
self.remotemysql = 'OFF'
|
||||||
|
|
||||||
if os.path.exists(ProcessUtilities.debugPath):
|
if os.path.exists(ProcessUtilities.debugPath):
|
||||||
logging.CyberCPLogFileWriter.writeToFile('%s. [setupConnection:75]' % (str(msg)))
|
logging.CyberCPLogFileWriter.writeToFile('%s. [setupConnection:75]' % (str(msg)))
|
||||||
|
|
||||||
|
###
|
||||||
|
|
||||||
|
self.checkIfMailServerSSLIssued()
|
||||||
|
|
||||||
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'Removing and re-installing postfix/dovecot..,5')
|
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'Removing and re-installing postfix/dovecot..,5')
|
||||||
|
|
||||||
if self.install_postfix_davecot() == 0:
|
if self.install_postfix_davecot() == 0:
|
||||||
@@ -1555,6 +1631,29 @@ class MailServerManager(multi.Thread):
|
|||||||
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'setup_postfix_davecot_config failed. [404].')
|
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'setup_postfix_davecot_config failed. [404].')
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'Restoreing OpenDKIM configurations..,70')
|
||||||
|
|
||||||
|
if self.configureOpenDKIM() == 0:
|
||||||
|
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'configureOpenDKIM failed. [404].')
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if self.MailSSL:
|
||||||
|
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'Setting up Mail Server SSL if any..,75')
|
||||||
|
from plogical.virtualHostUtilities import virtualHostUtilities
|
||||||
|
virtualHostUtilities.issueSSLForMailServer(self.mailHostName, '/home/%s/public_html' % (self.mailHostName))
|
||||||
|
|
||||||
|
from websiteFunctions.models import ChildDomains
|
||||||
|
from plogical.virtualHostUtilities import virtualHostUtilities
|
||||||
|
for websites in Websites.objects.all():
|
||||||
|
try:
|
||||||
|
child = ChildDomains.objects.get(domain='mail.%s' % (websites.domain))
|
||||||
|
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'],
|
||||||
|
'Creating mail domain for %s..,80' % (websites.domain))
|
||||||
|
virtualHostUtilities.setupAutoDiscover(1, '/dev/null', websites.domain, websites.admin)
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'Fixing permissions..,90')
|
logging.CyberCPLogFileWriter.statusWriter(self.extraArgs['tempStatusPath'], 'Fixing permissions..,90')
|
||||||
|
|
||||||
self.fixCyberPanelPermissions()
|
self.fixCyberPanelPermissions()
|
||||||
|
|||||||
@@ -59,7 +59,6 @@ class virtualHostUtilities:
|
|||||||
def setupAutoDiscover(mailDomain, tempStatusPath, virtualHostName, admin):
|
def setupAutoDiscover(mailDomain, tempStatusPath, virtualHostName, admin):
|
||||||
|
|
||||||
if mailDomain:
|
if mailDomain:
|
||||||
|
|
||||||
logging.CyberCPLogFileWriter.statusWriter(tempStatusPath, 'Creating mail child domain..,80')
|
logging.CyberCPLogFileWriter.statusWriter(tempStatusPath, 'Creating mail child domain..,80')
|
||||||
childDomain = 'mail.%s' % (virtualHostName)
|
childDomain = 'mail.%s' % (virtualHostName)
|
||||||
childPath = '/home/%s/public_html/%s' % (virtualHostName, childDomain)
|
childPath = '/home/%s/public_html/%s' % (virtualHostName, childDomain)
|
||||||
@@ -102,7 +101,10 @@ class virtualHostUtilities:
|
|||||||
writeToFile.close()
|
writeToFile.close()
|
||||||
|
|
||||||
postfixMapFile = '/etc/postfix/vmail_ssl.map'
|
postfixMapFile = '/etc/postfix/vmail_ssl.map'
|
||||||
postfixMapFileContent = open(postfixMapFile, 'r').read()
|
try:
|
||||||
|
postfixMapFileContent = open(postfixMapFile, 'r').read()
|
||||||
|
except:
|
||||||
|
postfixMapFileContent = ''
|
||||||
|
|
||||||
if postfixMapFileContent.find('/live/%s/' % (childDomain)) == -1:
|
if postfixMapFileContent.find('/live/%s/' % (childDomain)) == -1:
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user