HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/emailPremium/__pycache__/views.cpython-310.pyc
o

��h3.�@s|ddlZddlZddlmZddlmZddlmZddlm	Z	m
Z
ddlmZddl
mZddlmZddlmZddlZd	d
lmZmZddlmZddlmZdd
lmZddlmZddl m!Z!ddl"m#Z#ddl$m%Z%ddl&m'Z'ddl(m)Z)dd�Z*dd�Z+dd�Z,dd�Z-dd�Z.dd�Z/d d!�Z0d"d#�Z1d$d%�Z2d&d'�Z3d(d)�Z4d*d+�Z5d,d-�Z6d.d/�Z7d0d1�Z8d2d3�Z9d4d5�Z:d6d7�Z;d8d9�Z<d:d;�Z=d<d=�Z>d>d?�Z?d@dA�Z@dBdC�ZAdDdE�ZBdFdG�ZCdHdI�ZDdJdK�ZEdLdM�ZFdNdO�ZGdPdQ�ZHdRdS�ZIdTdU�ZJdVdW�ZKdXdY�ZLdZd[�ZMd\d]�ZNd^d_�ZOd`da�ZPdbdc�ZQddde�ZRdfdg�ZSdhdi�ZTdjdk�ZUdldm�ZVdndo�ZWdpdq�ZXdrds�ZYdS)t�N)�redirect)�HttpResponse)�
Administrator)�Domains�EUsers)�ApplicationInstaller)�Websites)�
loadLoginPage�)�DomainLimits�EmailLimits)�ceil)�cacheClient)�
mailUtilities)�virtualHostUtilities)�randint)�
ACLManager)�ProcessUtilities)�httpProc)�CloudManagercC�t|ddd�}|��S)NzemailPremium/policyServer.html�admin�r�render��request�proc�r�(/usr/local/CyberCP/emailPremium/views.py�emailPolicyServer��rc

Cs6zp|jd}t�|�}|ddkrnt��WSz6|jdkrJd}t�|��d�}d}|D]
}|�d�d	kr8d}nq+dd
|d�}t	�
|�}t|�WWSWWdStyp}	zdt
|	�d�}t	�
|�}t|�WYd}	~	WSd}	~	wwty�}	ztj�t
|	��dt
|	�d�}t	�
|�}t|�WYd}	~	Sd}	~	ww)
N�userIDrr
�POST�sudo cat /etc/postfix/main.cf�
r�5check_policy_service unix:/var/log/policyServerSocket����None)�status�
error_message�installCheck�r(r))�sessionr�	loadedACL�
loadErrorJson�methodr�outputExecutioner�split�find�json�dumpsr�
BaseException�str�KeyError�logging�CyberCPLogFileWriter�writeToFile)
rr!�
currentACL�command�outputr*�items�data_ret�	json_data�msgrrr�fetchPolicyServerStatus#sB



�
�
��
��rBc
Csrz�|jd}t�|�}|ddkrnt��WSzT|jdkrht�|j�}|d}d}|dkr/d}d	tj	d
}|d|}t
�|�}|�d�d
krXddd�}t�
|�}	t|	�WWSd|d�}t�
|�}	t|	�WWSWWdSty�}
zdt|
�d�}t�
|�}	t|	�WYd}
~
WSd}
~
wwty�}
ztj�t|
��dt|
�d�}t�
|�}	t|	�WYd}
~
Sd}
~
ww)Nr!rr
r"�policServerStatus�0T�1�/usr/local/CyberCP/bin/python �/plogical/mailUtilities.pyz" savePolicyServerStatus --install �1,Noner&r'r+r)r,rr-r.r/r3�loads�bodyr�
cyberPanelrr0r2r4rr5r6r7r8r9r:)rr!r;�datarC�install�execPathr=r?r@rArrr�savePolicyServerStatusJsJ








�
��
��rOcCs�tj��}d}t�|��d�}d}|D]
}|�d�dkr d}nq|dkr2t|dd|id	�}|��St	t
|��t	d
�}g}|dkrJd}|�d�nt|�}t
|�d}	td|	�D]
}
|�d
t|
�d�qYt|d||d�d	�}|��S)Nr#r$rr%r&r
zemailPremium/listDomains.htmlr*r�
��?�<li><a href="\#"></a></li>�<li><a href="\#">�	</a></li>)�
paginationr*)r�objects�allrr0r1r2rr�float�len�appendr
�int�ranger6)r�websitesr<r=r*r>r�pagesrU�
finalPages�irrr�listDomains}s2
�
�racCs��z,|jd}t�|�}|ddkrnt��WSz�|jdkrEzt�|j�}|d}t|�}Wnt	yD}z
t
|�}WYd}~nd}~ww|dd}|d}tj�
�||�}	d}
d}|	D]�}z8tjj|d	�}
tjj|
d
�}|j|
j�
���|j|j|jd�}|dkr�|
t�|�}
d}n	|
dt�|�}
Wq^t	y�}zPz	tjj|d	�}
Wnt||jd
�}
|
��Yt|
d
�}|��|j|
j�
���|j|j|jd�}|dkr�|
t�|�}
d}n	|
dt�|�}
WYd}~q^d}~ww|
d}
dd|
d�}t�|�}t|�WWSt	�y-}zdt
|�d�}t�|�}
t|
�WYd}~WSd}~wwt�yP}zdt
|�d�}t�|�}
t|
�WYd}~Sd}~ww)Nr!rr
r"�pagerP�[r��domainOwner��domain)rg�emails�monthlyLimit�monthlyUsedr(�,)rerg�]r')�listWebSiteStatusr)rL)rmr))r,rr-r.r/r3rIrJr[r5r6rrVrWr�getrrg�
eusers_set�countrirj�limitStatusr4�saverr7)rr!r;rLr(�
pageNumberrA�finalPageNumber�
endPageNumberr]r@�checkerr>rg�domainLimits�dic�	final_dic�
final_jsonrrr�getFurtherDomains�s�



����

���

��
��r{c
C�Pz�|jd}t�|�}|ddkrnt��WSzK|jdkr_t�|j�}|d}|d}tj	j
|d�}tj	j
|d�}||_|�
�d|d	t|�}t�|�dd
d�}	t�|	�}
t|
�WWSWWdSty�}zdt|�d�}	t�|	�}
t|
�WYd}~WSd}~wwty�}zdt|�d
�}	t�|	�}
t|
�WYd}~Sd}~ww)Nr!rr
r"�operationVal�
domainNamerfz#cyberpanelCleaner purgeLimitDomain � r'r+r��statusar))r,rr-r.r/r3rIrJrrVrnrrqrrr6r�handleCachePurgeRequestr4rr5r7)rr!r;rLr}r~rgrwr<rxr@rArrr�enableDisableEmailLimits�sB






�
��
��r�cCs:tjj|d���r�tjj|d�}tjj|d�}tjj|d�}i}||d<|j|d<|j|d<|j	�
�|d<|jdkrCd|d<d	|d
<nd	|d<d|d
<t|d�td�}g}|dkrcd}|�
d
�nt|�}t|�d}td|�D]
}	|�
dt|	�d�qr||d<t|d|d�}
|
��St|dddd�d�}
|
��S)Nrfrdrgrirj�
emailAccountsr
�limitsOnr�	limitsOffrPrQrRrSrTrUzemailPremium/emailLimits.htmlrzThis domain does not exists)�errorrg)rrV�filter�existsrnrrrirjrorprqrXrZr
r[r\r6rr)rrg�website�domainEmailrw�Datar^rUr_r`rrrr�emailLimitss<



�r�c
Cr|)Nr!rr
r"�newLimitr~rfz$cyberpanelCleaner updateDomainLimit rr'r+rr�)r,rr-r.r/r3rIrJrrVrnrrirrr6rr�r4rr5r7)rr!r;rLr�r~rgrwr<rxr@rArrr�changeDomainLimitHsB






�
��
��r�cCs�z�|jd}t�|�}|ddkrnt��WSz�|jdkr�t�|j�}|d}|d}t|�}|dd}|d}t	j
j|d�}	|	j�
�||�}
d	}d
}|
D]K}
z/tj
j|
d�}|
j|j|j|j|j|jd�}|d
krv|t�|�}d}n	|d
t�|�}WqOty�}ztj�t|��WYd}~qOd}~ww|d}dd|d�}t�|�}t|�WWSWWdSty�}zd
t|�d�}t�|�}t|�WYd}~WSd}~wwty�}zd
t|�d�}t�|�}t|�WYd}~Sd}~ww)Nr!rr
r"rbr~rPrfrcr��email)r�rirj�hourlyLimit�
hourlyUsedr(rkrlr'�r(r)rLr+)r,rr-r.r/r3rIrJr[rrVrnrorWrr��
monthlyLimitsrjr�r�rqr4r5r8r9r:r6rr7)rr!r;rLr(r~rsrtrurgrhr@rv�item�emailLtsrxrAryrzrrr�getFurtherEmailpsf



����
�&
��
��r�c
Cr|)Nr!rr
r"r}�emailAddressr�zcyberpanelCleaner purgeLimit rr'r+rr�)r,rr-r.r/r3rIrJrrVrnrrqrrr6rr�r4rr5r7�rr!r;rLr}r�r��	emailtLtsr<rxr@rArrr�"enableDisableIndividualEmailLimits��B






�
��
��r�c
Cs�i}||d<tjj|d�}|j����}t|�td�}g}|dkr*d}|�d�nt|�}t	|�d}t
d|�D]
}|�dt|�d�q9||d	<t|d
|d�}	|	�
�S)Nr�r�rPrQr
rRrSrTrUzemailPremium/emailPage.htmlr)rrVrn�
emaillogs_setrWrprXrZr
r[r\r6rr)
rr�r�r��
logEntriesr^rUr_r`rrrr�	emailPage�s r�c
Cs4zw|jd}t�|�}|ddkrnt��WSz=|jdkrQt�|j�}|d}tj	j
|d�}tj	j
|d�}dd|j|j
|j|j|j|jd�}t�|�}t|�WWSWWdStyw}	zd	t|	�d
�}
t�|
�}t|�WYd}	~	WSd}	~	wwty�}	zd	t|	�d
�}
t�|
�}t|�WYd}	~	Sd}	~	ww)Nr!rr
r"r�r�r')r(r)rirjr�r�rq�
logsStatusrr+)r,rr-r.r/r3rIrJrrVrnrr�rjr�r�rq�	emailLogsr4rr5r6r7)rr!r;rLr�r��emailLTSryrzrArxr@rrr�
getEmailStats�s@



�
�
��
��r�c
Cr|)Nr!rr
r"r}r�r�zcyberpanelCleaner purgeLog rr'r+rr�)r,rr-r.r/r3rIrJrrVrnrr�rrr6rr�r4rr5r7r�rrr� enableDisableIndividualEmailLogsr�r�c
Cs z�|jd}t�|�}|ddkrnt��WSz�|jdkr�t�|j�}|d}|d}|d}||krCdd	d
�}t�|�}t	|�WWS|�
d�d}	tjj
|	d�}
tjj
|
d�}|
j��}d}
|D]}tjj
|d
�}|j|
}
qa|j|
}||kr�ddd
�}t�|�}t	|�WWStjj
|d
�}tjj
|d
�}||_||_|��d|dt|�dt|�}t�|�ddd
�}t�|�}t	|�WWSWWdSty�}zdt|�d
�}t�|�}t	|�WYd}~WSd}~wwt�y}zdt|�d�}t�|�}t	|�WYd}~Sd}~ww)Nr!rr
r"r�rir�rz2Monthly limit should be greater then hourly limit.r+�@rfr�zJYou can not set this monthly limit, first increase limits for this domain.z"cyberpanelCleaner purgeLimitEmail rr'r�)r,rr-r.r/r3rIrJr4rr1rrVrnrrorWrr�rirr�rrr6rr�r5r7)rr!r;rLr�rir�rxr@r~�dbDomain�domainLimit�	allEmails�currentEmailConsumptionr�r��allowedLimitr<rArrr�!changeDomainEmailLimitsIndividual8sp







�
�


�4
��
��r�c
Cs�z�|jd}t�|�}|ddkrnt��WSzt|jdkr�t�|j�}|d}|d}t|�}|dd}|d}t	j
j|d�}	|	j�
�||�}
d	}d
}|
D]#}
|
j||
j|
jd�}|d
kri|t�|�}d}qO|dt�|�}qO|d
}dd|d�}t�|�}t|�WWSWWdSty�}zd
t|�d�}t�|�}t|�WYd}~WSd}~wwty�}zd
t|�d�}t�|�}t|�WYd}~Sd}~ww)Nr!rr
r"rbr�rPr�rcr)�id�source�destination�timerkrlr'r�r+)r,rr-r.r/r3rIrJr[rrVrnr�rWr�r��	timeStampr4rr5r6r7)rr!r;rLr(r�rsrtrur�r�r@rvr�rxryrzrArrr�getEmailLogs�sV




�
� 
��
��r�c

Cs&zp|jd}t�|�}|ddkrnt��WSz6|jdkrJt�|j�}|d}tj	j
|d�}|j��D]}|�
�q3ddd�}t�|�}t|�WWSWWdStyp}	zd	t|	�d�}t�|�}t|�WYd}	~	WSd}	~	wwty�}	zd	t|	�d
�}t�|�}t|�WYd}	~	Sd}	~	ww)Nr!rr
r"r�r�r'r+rr�)r,rr-r.r/r3rIrJrrVrnr�rW�deleter4rr5r6r7)
rr!r;rLr�r��logEntryrxr@rArrr�flushEmailLogs�s:






�
��
��r�cCs.d}t��dkr
d}t|dd|id�}|��S)Nrr
zemailPremium/SpamAssassin.html�checkIfSpamAssassinInstalledr)rr�rr)rr�rrrr�spamAssassinHome�s�r�c
Cs�zX|jd}t�|�}|ddkrnt��WSzdtjd}|d}t�|�t�	ddd��}t
|�WWStyX}zd	t|�d�}t�	|�}t
|�WYd}~WSd}~wwt
yod	d
d�}t�	|�}t
|�YSw)Nr!rr
rFrGz installSpamAssassinr'r+r�6Not Logged In, please refresh the page or login again.)r,rr-r.rrKr�popenExecutionerr3r4rr5r6r7�rr!r;rNrzrAryrrr�installSpamAssassin�s.




��

�r�c

Cs�z�|jd}z�|jdkr�dtj}t�|�}|�d�dkrfdtjd}|d}t�|d	�}|�d
�dkrVddl	}|j
�tj�rF|�
tj�t�d|d
d
d��}t|�WWSt�d|d
dd��}t|�WWS|�d�dkr}t�d
dd|d��}t|�WWSt�dd|d��}t|�WWSWWdSty�}zd
dt|�d�}	t�|	�}t|�WYd}~WSd}~wwty�d
ddd�}	t�|	�}t|�YSw)Nr!r"�	sudo cat �[200]r&zjexport PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin  && /usr/local/CyberCP/bin/python rGz configureSpamAssassin�rootrHrr'r
�r)�
requestStatus�abort�	installedz.Failed to install SpamAssassin configurations.�[404]�r�r�r)r��r�r)r��r�r�r)r�)r,r/r�spamassassinInstallLogPathrr0r2rrK�os�pathr��mailScannerInstallLogPath�remover3r4rr5r6r7)
rr!r<�
installStatusrNr=r�rzrAryrrr�installStatusSpamAssassinsp



�����2
���
�r�c
Cs�z�|jd}t�|�}|ddkrnt�dd�WSz�|jdkr�d}d}d}d	}d
}t��dkr�d|}t�|��	�}	|	D]a}
|
�
d�d
krQ|
�
d�d
krOd}q<d}|
�
d�d
kry|
�d�}d}d}|D]}
|dkrn|d}qc||
�d�d}qcq<|
�
d�d
kr�|
�d�d�d�}q<|
�
d�d
kr�|
�d�d�d�}q<q<dd||||d�}nddd�}t
�|�}t|�WWSWWdSty�}zdt|�d�}t
�|�}t|�WYd}~WSd}~wwty�tt�YSw)Nr!rr
�fetchStatusrr"z5.0zSubject [SPAM]�5z/etc/mail/spamassassin/local.cfr�zreport_safe r&rD�rewrite_header r�r$�required_score �required_hits )r�r��report_safe�rewrite_header�required_score�
required_hits�r�r��r�r))r,rr-r.r/rr�rr0�
splitlinesr2r1�stripr3r4rr5r6r7rr	)rr!r;r�r�r�r��confPathr<rLr>�tempData�counter�
headerDataryrzrArrr�fetchSpamAssassinSettingsDsz



��	�
�9
���r�c
Csz�|jd}t�|�}|ddkrnt�dd�WSz�|jdkr�t�|j�}|d}|d}|d	}|d
}|dkr<d}nd
}d|}d|}d|}dtt	dd��}t
|d�}	|	�|d�|	�|d�|	�|d�|	�|d�|	��dt
jd}
|
d|}
t�|
�}|�d�dkr�ddd�}t�|�}
t|
�WWSd|d�}t�|�}
t|
�WWSWWdSty�}zdt|�d�}t�|�}
t|
�WYd}~WSd}~wwt�y}ztj�t|��dt|�d�}t�|�}
t|
�WYd}~Sd}~ww)Nr!rr
�
saveStatusrr"r�r�r�r�Tz
report_safe 1z
report_safe 0r�r�r�z/home/cyberpanel/i�i'�wr$rFrGz* saveSpamAssassinConfigs --tempConfigPath rHr&r'�r�r))r,rr-r.r/r3rIrJr6r�open�
writelines�closerrKrr0r2r4rr5r7r8r9r:)rr!r;rLr�r�r�r��tempConfigPathr�rNr=r?r@rArrr�saveSpamAssassinConfigurations�sd








�.
��
��r�cCr)NzemailPremium/mailQueue.htmlrrrrrr�	mailQueue�r r�c
Cs�zU|jd}t�|�}|ddkrnt��WSt�|j�}d}d}t�d��	d�}|D]}|dkr8||}d}q+|d|}q+|�
d�d	}dd
|d�}t�|�}	t|	�WSt
yw}
zdt|
�d�}t�|�}t|�WYd}
~
Sd}
~
ww)
Nr!rr
rcrzpostqueue -jr$rkrlr'r�r+)r,rr-r.r3rIrJrr0r1�rstripr4rr5r6)rr!r;rLr@rv�queues�queueryrzrArxrrr�fetchMailQueue�s2





��r�c

Csz^|jd}t�|�}|ddkrnt��WSz$t�|j�}|d}d|}t�|�}dd|d�}t�	|�}t
|�WWSty^}	zdt|	�d	�}t�	|�}t
|�WYd}	~	WSd}	~	wwt
y�}	zdt|	�d	�}t�	|�}t
|�WYd}	~	Sd}	~	ww)
Nr!rr
r�zpostcat -vq %sr')r(r)�emailMessageContentrr+)r,rr-r.r3rIrJrr0r4rr5r6r7)
rr!r;rLr�r<r�rxr@rArrr�fetchMessages4





��
��r�c
Cs�zQ|jd}t�|�}|ddkrnt��WSzd}t�|�ddd�}t�|�}t|�WWSt	yQ}zdt
|�d�}t�|�}t|�WYd}~WSd}~wwtys}zdt
|�d�}t�|�}t|�WYd}~Sd}~ww)Nr!rr
zpostqueue -fr'r+r)r,rr-r.r�executionerr3r4rr5r6r7�rr!r;r<rxr@rArrr�
flushQueue s0






��
��r�c	
Cs
zb|jd}t�|�}|ddkrnt��WSz(t�|j�}|d}|dkr)d}nd}t�|�ddd	�}t�	|�}t
|�WWStyb}zd
t|�d	�}t�	|�}t
|�WYd}~WSd}~wwt
y�}zd
t|�d	�}t�	|�}t
|�WYd}~Sd}~ww)Nr!rr
�typerWzpostsuper -d ALLzpostsuper -d ALL deferredr'r+r)r,rr-r.r3rIrJrr�r4rr5r6r7)	rr!r;rLr�r<rxr@rArrrr�=s8






��
��r�cCsTd}d}t|�}|��}|�dd�d}t��dkrd}t|d||d�d�}|��S)Nr�/etc/cyberpanel/machineIPr$r
zemailPremium/MailScanner.html)�checkIfMailScannerInstalled�	ipAddressr)r��readr1rr�rr)rr��ipFile�f�ipDatar�rrrr�MailScannercs
�r�c	
Cs4z�|jd}t�|�}|ddkrnt��WSzHt��tjks&t��tjkrBd}t�|�}|�	d�dkrBt
�ddd	��}t|�WWSd
t
jd}|d}t�|�t
�dd
d	��}t|�WWSty�}zdt|�d	�}t
�|�}t|�WYd}~WSd}~wwty�ddd	�}t
�|�}t|�YSw)Nr!rr
�sestatus�disabledr&rz.Disable selinux before installing MailScanner.r+rFrGz installMailScannerr'r�)r,rr-r.r�decideDistro�centos�cent8r0r2r3r4rrrKr�r5r6r7)	rr!r;r<�resultrzrNrAryrrr�installMailScannerss>



�

��

�rc
CsHz�|jd}t�|�}|ddkrnt��WSzP|jdkrddtj}t�|�}|�	d�dkr>t
�d|ddd	��}t|�WWS|�	d
�dkrUt
�ddd|d��}t|�WWSt
�dd|d
��}t|�WWSWWdSt
y�}zddt|�d�}t
�|�}t|�WYd}~WSd}~wwty�dddd�}t
�|�}t|�YSw)Nr!rr
r"r�r�r&r'r�r�rr�r�r�r�)r,rr-r.r/rr�rr0r2r3r4rr5r6r7)rr!r;r<r�rzrAryrrr�installStatusMailScanner�s\





����"
���
�rcCs�d}dt��d�}ddl}|j|t�|�d�}|��d}|dks(t��tjkrRd}d}t	|�}|�
�}	|	�d	d�d}
t�
�dkrDd}t|d
||
d�d�}|��Std
�S)N�@https://platform.cyberpersons.com/CyberpanelAdOns/Adonpermission�email-debugger��name�IPr�rLr(r
r�r$zemailPremium/Rspamd.html)�checkIfRspamdInstalledr�r�(https://cyberpanel.net/cyberpanel-addons)r�GetServerIP�requests�postr3r4r�decideServer�entr�r�r1rr
rrr)r�urlrLr
�response�Statusr
r�r�r�r�rrrr�Rspamd�s(�
�rc
Cs6z�|jd}t�|�}|ddkrnt��WSd}dt��d�}ddl}|j|t�|�d�}|��d	}|dks?t	�
�t	jkr�zd
tj
d}|d}t	�|�t�dd
d��}	t|	�WWSty�}
zdt|
�d�}t�|�}	t|	�WYd}
~
WSd}
~
wwWdSty�ddd�}t�|�}	t|	�YSw)Nr!rr
rrrrr	r(rFrGz installRspamdr'r+r�)r,rr-r.rr
rr3r4rrrrrKr�rr5r6r7)rr!r;rrLr
rrrNrzrAryrrr�
installRspamd�s@


�

���

�rc	
C�pz�|jd}t�|�}|ddkrnt��WSzd|jdkrxdtj}t�|�}|�	d�dkrHt
�d|ddd	��}d
tj}t�|�t
|�WWS|�	d�dkrit
�ddd|d
��}d
tj}t�|�t
|�WWSt
�dd|d��}t
|�WWSWWdSty�}zddt|�d�}t
�|�}t
|�WYd}~WSd}~wwty�dddd�}t
�|�}t
|�YSw�Nr!rr
r"r�r�r&r'r�zrm -f %sr�rr�r�r�r�)r,rr-r.r/r�RspamdInstallLogPathrr0r2r3r4r�rr5r6r7�	rr!r;r<r�rz�cmdrAryrrr�installStatusRspamd�d





�

�

��%
���
�rc/
Cs�zv|jd}t�|�}|ddkrnt�dd�WSd}dt��d�}ddl}|j|t�|�d	�}|��d
}|dksCt	�
�t	jk�ru�z|jdk�rMd}d
}	d
}
d}d}d
}
d
}d}d}t
��dk�r=d|}t	�|���}|D]�}|�d�dkr�|�d�dkr�d}qqd}|�d�dkr�|�d�}z)t|�dkr�|d}n
t|�dkr�|d}nWqq|�d�}t|�dkr�|d}	WnY|�d�dkr�|�d�}t|�dkr�|d}|�d�}
|�d�dkr�|�d�dkr�d}qqd}|�d�dk�r|�d�dk�rd}qqd}|�d�dk�r0|�d�}t|�dk�r0|d}|�d�}|�d�}t|�dk�r0|d}
|�d �dk�r]|�d�}t|�d!k�r]|d!}|�d�}|�d�}t|�dk�r]|d}qqd
}d
}d|}t	�|���}|D]�}|�d"�dk�s�|�d#�dk�r�|�d$�dk�r�|�d%�} t| �dk�r�| d}tj�t	j��r�tj�d&|���|�d�}n|�d'�}!t|!�dk�r�|!d��}|�d(�dk�s�|�d)�dk�r�|�d'�}!t|!�dk�r�|!d}tj�t	j��r�tj�d*|���|�d�}�qod+}"d
}#d
}$d|"}t	�|���}|D]]}|�d,�dk�r<|�d�}t|�dk�r<|d}%|%�d�}|�d�}t|�dk�r<|d}$|�d-�dk�ri|�d�}t|�dk�ri|d}&|&�d�}|�d�}t|�dk�ri|d}#�q
d}'d
}(d
})d
}*t	��t	jk�s�t	��t	j k�r�d.}+nt	��t	j!k�s�t	��t	j"k�r�d/}+d|+}t	�|���}|D]a}|�d0�dk�r�|�d�}t|�dk�r�|d}*|�d1�dk�r�|�d�}t|�dk�r�|d})|�d2�dk�r�|�d�}t|�dk�r�|d}(|�d3�dk�r|�d4�dk�rd}'�q�d}'�q�idd�d5d�d6|�d7|	�d8|
�d9|�d:|�d;|
�d<|�d=|�d$|�d>|#�d?|$�d@|'�d2|(�d1|)�d0|*�},ndddA�},t�|,�}-t#|-�WWSWWdSt$�yt}.zdt%|.�dB�},t�|,�}-t#|-�WYd}.~.WSd}.~.wwWdSt&�y�t't(�YSw)CNr!rr
r�rrrrr	r(r"Tr�z"/etc/rspamd/local.d/antivirus.confz/etc/postfix/main.cfr�zenabled r&zenabled = trueFzaction =r���"�max_size�;zscan_mime_parts zscan_mime_parts = truezlog_clean  z	servers =zCLAMAV_VIRUS =�zsmtpd_milters=zsmtpd_milters =�non_smtpd_miltersrkzsmtpd_milters: �=znon_smtpd_milters=znon_smtpd_milters =znon_smtpd_milters: z/etc/rspamd/local.d/redis.confzwrite_servers =zread_servers =z/etc/clamd.d/scan.confz/etc/clamav/clamd.conf�	TCPSocket�TCPAddr�LogFile�Debugz
Debug truer��enabled�action�max_Size�scan_mime_partsz
log_clean �Server�CLAMAV_VIRUS�
smtpd_milters�read_servers�
write_servers�clamav_Debugr�r�))r,rr-r.rr
rr3r4rrrr/rr
r0r�r2r1rYr�r�r�r��	debugPathr8r9r:�lstripr�r�r�r�ubuntu�ubuntu20rr5r6r7rr	)/rr!r;rrLr
rrr)r*r+r,�	log_cleanr-r.r��postfixpathr<r>r��a�ac�max�Ser�x�y�CLAMAVr`�jr/r#�postdata�
split_data�eq_split�	Redispathr0r1�writer�r2r'r&r%�clamavconfpathryrzrArrr�fetchRspamdSettingsNs�

�



�







�0

 

�





�  


���������	�
���
�����
��I
����O�rGc
C� z�|jd}t�|�}|ddkrnt�dd�WSzF|jdkr\t�|j�}d}tj|dd	�}t	|d
�}|�
|�|��dtj
d}|d
}t�|�}ddd�}	t�|	�}
t|
�WWSWWdSty�}zdt|�d�}	t�|	�}
t|
�WYd}~WSd}~wwty�tt�YSw)Nr!rr
r�rr"z&/home/cyberpanel/tempfilerspamdconfigsr��indentr�rFrGz changeRspamdConfig r'r��r,rr-r.r/r3rIrJr4r�rEr�rrKrr0rr5r6r7rr	�rr!r;rL�tempfilepath�json_object�writeDataToFilerNr=r?r@rArrr�saveRspamdConfigurations3s<







�
���rPc
CrH)Nr!rr
r�rr"z'/home/cyberpanel/tempfilepostfixconfigsrrIr�rFrGz changePostfixConfig r'r�rKrLrrr�savepostfixConfigurationsW�<







�
���rQc
CrH)Nr!rr
r�rr"z(/home/cyberpanel/saveRedisConfigurationsrrIr�rFrGz changeRedisxConfig r'r�rKrLrrr�saveRedisConfigurations{rRrSc
CrH)Nr!rr
r�rr"z)/home/cyberpanel/saveclamavConfigurationsrrIr�rFrGz changeclamavConfigr'r�rKrLrrr�saveclamavConfigurations�rRrTc
Cs�z^tj�d�|jd}t�|�}|ddkrnt��WSzdtjd}|d}t	�
|�t�ddd	��}t
|�WWSty^}zd
t|�d	�}t�|�}t
|�WYd}~WSd}~wwtyud
dd	�}t�|�}t
|�YSw)NzunistallRspamd...1r!rr
rFrGz uninstallRspamdr'r+rr�)r8r9r:r,rr-r.rrKrr�r3r4rr5r6r7r�rrr�unistallRspamd�s0




��

�rUc	
Crr)r,rr-r.r/r�RspamdUnInstallLogPathrr0r2r3r4r�rr5r6r7rrrr�uninstallStatusRspamd�rrWc	Cs�zH|jd}t�|�}|ddkrnt��WSd}zd|}t�|�}dd|d�}t�|�}t|�WWSdddd�}t�|�}t|�YWSt	y`ddd	d
�}t�|�}t|�YSw)Nr!rr
z/var/log/rspamd/rspamd.logzsudo tail -100 )r(�	logstatus�logsdatazEmtpy File.rr�r�)
r,rr-r.rr0r3r4rr7)	rr!r;�fileNamer<�fewLinesOfLogFiler(rzryrrr�FetchRspamdLogs0





�
�r\c
Cszi|jd}t�|�}|ddkrnt��WSz/d}t�|�t��tjks-t��tjkr0d}nd}t�|�ddd�}t	�
|�}t|�WWStyi}zd	t
|�d�}t	�
|�}t|�WYd}~WSd}~wwty�d	t
d
�d�}t	�
|�}t|�YSw)Nr!rr
zsystemctl restart rspamdzsystemctl start clamd@scanzsystemctl restart clamav-daemonr'r+rr�)r,rr-r.rr�r�r�rr3r4rr5r6r7r�rrr�
RestartRspamd;s6







��
�r]c
Cs�d}dt��d�}ddl}|j|t�|�d�}|��d}|dks(t��tjkrU|j	d}t�
|�}|d	dkr9nt��St�
|�}t�||�}t
|d
d|id	�}	|	��Std�S)
Nrrrrr	r(r
r!rzemailPremium/EmailDebugger.html�websiteListr)rrr
rr3r4rrrr,r-r.�findAllSitesrrr)
rrrLr
rrr!r;�websitesNamerrrr�
EmailDebugger^s(�


�rac
C�z4|jd}t�|�}|ddkrnt��WSt�d�r&t�}|��}|WSddd�}t�|�}t	|�WSt
yV}zdt|�d�}t�|�}t	|�WYd}~Sd}~ww�Nr!rr
rr�%Kindly purchase email debugger Add-onr+)r,rr-r.�CheckForPremFeaturer�RunServerLevelEmailChecksr3r4rr5r6�rr!r;�ob�resrxr@rArrrrfzs&







��rfc
Crbrc)r,rr-r.rer�ResetEmailConfigurationsr3r4rr5r6rgrrrrj�s&







��rjc
Cs�z%|jd}t�|�}|ddkrnt��WStt�|j��}|��}|WSt	yG}zdt
|�d�}t�|�}t|�WYd}~Sd}~ww)Nr!rr
rr+)
r,rr-r.rr3rIrJ�
statusFuncr5r6r4r)rr!r;rhrirArxr@rrrrk�s



��rkc
s�z�|jd}t�|�}|ddkrnt��WSt�d�r�z�tt�|j��}|�	�}t�|j
�}|d}t���|dkr��fdd�}i}|d�rLd	|d
<nd|d
<|d�rYd	|d
<nd|d
<|d�rfd	|d<nd|d<|d�rsd	|d<nd|d<|d�r�d	|d<nd|d<|d�r�d	|d<nd|d<|d�r�d	|d<nd|d<�|d<|}	||	d<t�|	�}
t
|
�WWSd|fWWSty�}ztj�dt|��WYd}~WdSd}~wwddd�}t�|�}
t
|
�WSty�tt�YSw) Nr!rr
rr(c
s�ddl}|�|j|j�}z.z|�d�|��|f�WW|��dS|jy:}zWYd}~W|��dSd}~ww|��w)Nrr
)�socket�AF_INET�SOCK_STREAM�
settimeout�connectr�r�)�portrl�s�e�rrr�	CheckPort�s
���
zReadReport.<locals>.CheckPort��Open�Port25z!Closed, mail will not go through.iK�Port587i��Port465�n�Port110zClosed, POP3 will not work.��Port143zClosed, IMAP will not work.i��Port993i��Port995�serverHostName�reportr�Result....3:rdr+)r,rr-r.rerr3rIrJ�
ReadReport�contentrr4rr5r8r9r:r6r7rr	)rr!r;rhri�Resultr(rur��finalResultrzrArxr@rrtrr��sj












$��


�r�cCs�z9|jd}t�|�}|ddkrnt��WSt�d�r+tt�|j��}|�	�}|WSddd�}t�
|�}t|�WStyFt
t�YSwrc)r,rr-r.rerr3rIrJ�debugEmailForSiter4rr7rr	)rr!r;rhrirxr@rrrr�s 






�r�cCs�zT|jd}t�|�}|ddkrnt��WStjj|d�}t�d�rFtt	�
|j�|�}|�|�}t
j�tj�rCtj�dt|j��|WSddd	�}t	�|�}t|�WStyatt�YSw)
Nr!rr
)�pkrr�rrdr+)r,rr-r.rrVrnrerr3rIrJ�
fixMailSSLr�r�r�rr3r8r9r:r6r�r4rr7rr	)rr!r;r�cmrirxr@rrrr�#s&







�r�)Zr�r��django.shortcutsr�django.httpr�loginSystem.modelsr�mailServer.modelsrr�plogical.applicationInstallerr�websiteFunctions.modelsr�loginSystem.viewsr	�plogical.CyberCPLogFileWriterr9r8r3�modelsrr�mathr
�postfixSenderPolicy.clientr�plogical.mailUtilitiesr�plogical.virtualHostUtilitiesr�randomr�plogical.aclr�plogical.processUtilitiesr�plogical.httpProcr�cloudAPI.cloudManagerrrrBrOrar{r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrrrrrGrPrQrSrTrUrWr\r]rarfrjrkr�r�r�rrrr�<module>s�'3'O),(<&&&J6%ALE% &&:&9f$$$$#9#U