bug fix: email limits

This commit is contained in:
usmannasir
2024-02-29 09:38:41 +05:00
parent f3e21ef1dd
commit 03c150a738
2 changed files with 20 additions and 132 deletions

View File

@@ -108,6 +108,10 @@ class MailServerManager(multi.Thread):
domainName = data['domain']
userName = data['username'].lower()
password = data['passwordByPass']
try:
EmailLimits = data['EmailLimits']
except:
EmailLimits = -1
admin = Administrator.objects.get(pk=userID)
@@ -122,6 +126,22 @@ class MailServerManager(multi.Thread):
result = mailUtilities.createEmailAccount(domainName, userName.lower(), password)
if result[0] == 1:
if EmailLimits != -1:
lt = '30d'
limitString = f'@{domainName} {str(EmailLimits)}/{lt}\n'
RandomFile = "/home/cyberpanel/" + str(randint(100000, 999999))
writeToFile = open(RandomFile, 'w')
writeToFile.write(limitString)
writeToFile.close()
execPath = "/usr/local/CyberCP/bin/python " + virtualHostUtilities.cyberPanel + "/plogical/mailUtilities.py"
execPath = execPath + f" SaveEmailLimitsNew --tempConfigPath {RandomFile}"
ProcessUtilities.outputExecutioner(execPath)
data_ret = {'status': 1, 'createEmailStatus': 1, 'error_message': "None"}
json_data = json.dumps(data_ret)
return HttpResponse(json_data)

View File

@@ -1,132 +0,0 @@
# #
# # import imaplib
# # import getpass
# # from email import message_from_string
# # import socket
# #
# # import dns.resolver as dnspython
# #
# # def get_mx_records(domain):
# # try:
# # # Query MX records for the domain
# # mx_records = dns.resolver.resolve(domain, 'MX')
# # # Extract and return the MX record data
# # return [(mx.exchange.to_text(), mx.preference) for mx in mx_records]
# # except dns.resolver.NoAnswer:
# # print(f"No MX records found for {domain}")
# # return []
# # except dns.resolver.NXDOMAIN:
# # print(f"Domain {domain} not found")
# # return []
# # except Exception as e:
# # print(f"Error: {str(e)}")
# # return []
# #
# #
# # # IMAP server settings
# # imap_server = ''
# # imap_port = 993
# #
# # # User credentials
# # email_address = ''
# # password = ''
# #
# # # Connect to the IMAP server
# # mail = imaplib.IMAP4_SSL(imap_server, imap_port)
# #
# # # Log in to the mailbox
# # mail.login(email_address, password)
# #
# # # Select the INBOX
# # mail.select("inbox")
# #
# # # Search for all emails in the INBOX
# # result, data = mail.search(None, "ALL")
# # email_ids = data[0].split()
# #
# # # Fetch and print header information for each email
# # for email_id in email_ids:
# # result, message_data = mail.fetch(email_id, "(BODY[HEADER.FIELDS (FROM TO SUBJECT DATE)])")
# # raw_email = message_data[0][1].decode('utf-8')
# # msg = message_from_string(raw_email)
# # FromDomain = msg['From'].split('@')[1].rstrip('>')
# # MailServer = get_mx_records(FromDomain)
# # print(f'From Domain {FromDomain}')
# # print(f'MX Records of the domains {MailServer}')
# # print(f'Mail Server From Domain {MailServer}')
# # print(f"Email ID: {email_id}")
# # print(f"From: {msg['From']}")
# # print(f"To: {msg['To']}")
# # print(f"Subject: {msg['Subject']}")
# # print(f"Date: {msg['Date']}")
# # print("-" * 30)
# # print(message_data)
# #
# # # Logout
# # mail.logout()
# # #
# # # # from cryptography import x509
# # # # from cryptography.hazmat.backends import default_backend
# # # #
# # # # def get_domains_covered(cert_path):
# # # # with open(cert_path, 'rb') as cert_file:
# # # # cert_data = cert_file.read()
# # # # cert = x509.load_pem_x509_certificate(cert_data, default_backend())
# # # #
# # # # # Check for the Subject Alternative Name (SAN) extension
# # # # san_extension = cert.extensions.get_extension_for_class(x509.SubjectAlternativeName)
# # # #
# # # # if san_extension:
# # # # # Extract and print the domains from SAN
# # # # san_domains = san_extension.value.get_values_for_type(x509.DNSName)
# # # # return san_domains
# # # # else:
# # # # # If SAN is not present, return the Common Name as a fallback
# # # # return [cert.subject.get_attributes_for_oid(x509.NameOID.COMMON_NAME)[0].value]
# # # #
# # # # # Example usage
# # # # cert_path = '/etc/letsencrypt/live/cyberplanner.io/fullchain.pem'
# # # # domains_covered = get_domains_covered(cert_path)
# # # #
# # # # print("Domains covered by the certificate:")
# # # # for domain in domains_covered:
# # # # print(domain)
#
# import dns.resolver
#
#
# def query_sbl(ip):
# try:
# # Construct the reverse DNS lookup domain
# reversed_ip = '.'.join(reversed(ip.split('.')))
# sbl_domain = reversed_ip + '.zen.spamhaus.org'
#
# # Query the SBL DNS server
# result = dns.resolver.resolve(sbl_domain, 'A')
#
# # If the query returns a result, it means the IP is listed in SBL
# return True
# except dns.resolver.NXDOMAIN:
# # If the domain does not exist, the IP is not listed in SBL
# return False
# except dns.resolver.Timeout:
# # Handle DNS query timeout
# print("DNS query timed out")
# return None
# except dns.resolver.NoAnswer:
# # Handle no DNS answer
# print("No DNS answer")
#
# return None
#
#
# # Example usage
# ip_to_check = '209.85.166.5'
# result = query_sbl(ip_to_check)
# if result is True:
# print(f"The IP {ip_to_check} is listed in Spamhaus Block List (SBL)")
# elif result is False:
# print(f"The IP {ip_to_check} is not listed in Spamhaus Block List (SBL)")
# else:
# print("Unable to determine SBL status for the given IP")
#