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/emailMarketing/__pycache__/emailMarketing.cpython-310.pyc
o

��h�T�@s�ddlZddlZddlZddlZddlmZddlmZm	Z	m
Z
mZmZm
Z
ddlmZddlmZddlZddlZddlZddlZddlmZddlmZGdd	�d	ej�ZdS)
�N�)�
EmailLists�EmailsInList�
EmailTemplate�	EmailJobs�	SMTPHosts�
ValidationLog)�backupSchedule)�Websites)�randint)�ProcessUtilitiesc@sDeZdZdd�Zdd�Zdd�Zdd�Zd	d
�Zdd�Zd
d�Z	dS)�emailMarketingcCstj�|�||_||_dS)N)�multi�Thread�__init__�function�	extraArgs)�selfrr�r�3/usr/local/CyberCP/emailMarketing/emailMarketing.pyrs
zemailMarketing.__init__c
Cs�z'|jdkr
|��WdS|jdkr|��WdS|jdkr%|��WdSWdStyD}ztj�t|�d�WYd}~dSd}~ww)N�createEmailList�verificationJob�
startEmailJobz [emailMarketing.run])	rrrr�
BaseException�logging�CyberCPLogFileWriter�writeToFile�str)r�msgrrr�runs


�"��zemailMarketing.runc

Cs��zJtjj|jdd�}zt||jdt�d�d�}|��Wntjj|jdd�}Yd}|jd�d	�r�t	|jdd
��v}t
j|dd�}|D]d}zF|D]A}t�
d
|�dkr�z
tjj||d�}Wnzt||dt�d�d�}	|	��WnYYtj�|jdt|�d�|d}qOWqJty�}
ztj�dt|
��WYd}
~
qJd}
~
wwWd�n1s�wYn||jd�d��r;t	|jdd
��b}|��}|�r+|�d�}t�
d
|�dk�r%z
tjj||d�}Wn"t�y}
zt||dt�d�d�}	|	��WYd}
~
nd}
~
wwtj�|jdt|�d�|d}|��}|s�Wd�n	1�s6wYtj�|jdt|�d�WdSt�ym}
ztj�|jdt|
�d�WYd}
~
dSd}
~
ww)N�domain)r �listName�%I-%M-%S-%a-%b-%Y)�ownerr!�dateCreated�r!r�pathz.csv�r�,)�	delimiterzE^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$)r#�emailzNOT CHECKED)r#r*�verificationStatusr$�tempStatusPathz
 emails read.rz%s. [createEmailList]z.txt�
z#Successfully read all emails. [200]�. [404])r
�objects�getrr�time�strftime�save�endswith�open�csv�reader�re�matchrrr�statusWriterrrr�readline�strip)
r�website�newList�counter�
emailsList�data�items�value�getEmail�newEmailr�emailsr*rrrr"s����������
������"��zemailMarketing.createEmailListc
CsRz�|jddkrWdS|jddkrP|jd�d�dkr"|jdWS|jd�d�}|jdkr4|dWSd}|D]}|d	krC|WS||jkrJd	}q8|dWS|jd
�d�dkr`|jd
WS|jd
�d�}|jdkrr|dWSd}|D]}|d	kr�|WS||jkr�d	}qv|dWSty�}ztj�t|��WYd}~dSd}~ww)N�rotation�Disable�IPv4�ipv4r(����rr�ipv6)	�	delayData�find�split�	currentIPrrrrr)r�ipv4s�returnCheckrBrMrrrr�
findNextIPXsF



�




�
��zemailMarketing.findNextIPcCs��z$tjj|jdd�}|jj}tj�d|�st�	d|�d|d|jd}t
j�|d�d}d}|j
��}d}d	||f}ddl}	tj�|�rW|	�t|d
����|_d|_t|tjdd
���|D�]�}
|
jdk�r�zQ|
j}||_|�d�d}t�|dd�}
|d}|
D�]$}t� �}tj�|��r`z�|jd}|dk�r!|t!|jd�kr�t|tjd|jdd
���t"�#t!|jd��d}|�$�|_t|tjdt%|j�d
���|jdkr�t&j'dd�}nOt&j'|jdd�}nF|jdk�r|�$�|_t|tjdt%|j�d
���|jdk�rt&j'dd�}nt&j'|jdd�}nt
j�(d�t|tjdd
���t&j'dd�}Wn-t)�y_}zt|tj*dt%|�d
���t&j'dd�}WYd}~nd}~wwt&j'dd�}|�+d�|�,|d�|�-|�|�.d|�|�/t%|��\}}|�0�|dk�r�d|
_|
��nt|tj*d||�1�fd
���d|
_|
��q�t
j�|t%|�d �|d}Wn/t)�y�}z"d|
_|
��|d}t|tj*d|jt%|�fd
���WYd}~nd}~ww|j
j2dd!��3�|_4|j
j2dd!��3�|_5|��qft|tj*t%|�d"d
���t
j�|t%|�d"�WdSt)�ye}z3tjj|jdd�}|jj}d|d|jd}t
j�|t%|�d#�t
j�(t%|��WYd}~dSd}~ww)$Nr!r%�/home/cyberpanel/�/zStarting verification job..rrz /home/cyberpanel/configureVerifyz%s/%sr'rLzStarting email verification..)r#�status�message�Verified�@�MX��delay�Enable�
delayAfterzSleeping for %s seconds...�	delayTimez2IP being used for validation until next sleep: %s.�
)�timeoutzDelay not configured..z'Delay not configured. Error message: %szhost@�z%Failed to verify %s. Error message %szVerification Failedz emails verified so far..)r+z$ emails successfully verified. [200]r.)6rr/r0rr#r �osr&�exists�mkdirrrr:�emailsinlist_set�all�json�loadsr5�readrNrQrr	�INFOr3r+r*�currentEmailrP�DNS�	dnslookup�socket�gethostname�intr1�sleeprTr�smtplib�SMTPrr�ERROR�set_debuglevel�connect�helo�mail�rcpt�quit�decode�filter�count�notVerified�verified)r�verificationListr r,r?�
counterGlobal�allEmailsInList�configureVerifyPath�	finalPathrirBr*�
domainName�records�mxRecord�hostr]�serverr�coderXrrrr�s�




�
�

�����
���


�

����	
��zemailMarketing.verificationJobcCszI|jddkrt�d�|_WdStjj|jdd�|_t�t|jj	�t
|jj��|_t
|jj�dkr8|j��|j�
t|jj�t|jj��WdStjy^tj�|jdd�Yd	Stjyrtj�|jdd
�Yd	Stjy�tj�|jdd�Yd	Sw)Nr��	localhostz	127.0.0.1r)r�iKr,z5The server didnt reply properly to the HELO greeting.rz/Username and password combination not accepted.z,No suitable authentication method was found.)rrtru�
smtpServerrr/r0�
verifyHostrr�rr�port�starttls�login�userName�password�
SMTPHeloErrorrrr:�SMTPAuthenticationError�
SMTPException)rrrr�setupSMTPConnections4
����z"emailMarketing.setupSMTPConnectioncCs��z9|��dkrtj�d�WdStjj|jdd�}|j�	�}t
jj|jdd�}|��}d}d}d}t|�}|�
�}	|	�dd	�d}
dd
lm}ddlm}ddl}
dttd
d��}t|t�d�|jd|||d�}|��|D�]�}�z`|d�}|j|d<|j|d<|j|d<|jdks�|jd�r�|jdk�s�z�t��}d|
d||jdd|j }|j!�"dd�}|j |d<|
�#d||
j$��r|
�#d ||
j$��r|�%�}d|jd!<|jd!�r	t|d"�}|�&|�|�'�d#|d$|}t�(|d%�t|d&�}|�
�}|�'�||d'�}|�)|�n|}|jd!�r"|�*d(|�}||d)�}|�)|�z|j+�,�d}|j+�-|d|j |�.��Wn%|��dk�rZtj�d�YWWWdS|j+�-|d|j |�.��Y|d	}||_/|��tj�0|jd*d+t|�d,t|��WnMt1�y�}z@|d	}||_2|��tj�0|jd*d+t|�d-t|��|��dk�r�tj�d.t|��WYd}~WWdSWYd}~nd}~wwWqst1�y#}z?|d	}||_2|��tj�0|jd*d+t|�d-t|��|��dk�rtj�d/t|��WYd}~WdSWYd}~qsd}~ww||_/||_2|��tj�0|jd*d0�WdSt1�y\}ztj�0|jd*t|�d1�WYd}~dSd}~ww)2NrzSMTP Connection failed. [301]r!r%�selectedTemplate)�namez/etc/cyberpanel/machineIPr-r)�
MIMEMultipart)�MIMETextrUi�i'r"r�)r#�dater��totalEmails�sent�failed�alternative�Subject�Fromzreply-torY�verificationCheck�REMOVEDz
https:\/\/z:%s\/emailMarketing\/remove\/z\/zutf-8�replace�Tos<htmls<body�unsubscribeCheck�wz&sudo sed -i 's/{{ unsubscribeCheck }}/z/g' �
cyberpanelr'�htmlz{{ unsubscribeCheck }}�plainr,zSuccessfully sent: z	 Failed: z
, Failed: z(SMTP Connection failed. Error: %s. [392]z(SMTP Connection failed. Error: %s. [399]zEmail job completed. [200]r.)3r�rrrrr/r0rrgrhrrr5rkrP�email.mime.multipartr��email.mime.textr�r8rrrr1r2r3�subject�	fromEmail�replyTor+r�fetchCurrentPortr*�emailMessage�encode�search�
IGNORECASEr}�write�close�executioner�attachr�r��noop�sendmail�	as_stringr�r:rr�)r�	emailList�	allEmailsr�r�r�r��ipFile�f�ipData�	ipAddressr�r�r8�tempPath�emailJobrBrXr��removalLink�messageText�finalMessage�messageFile�commandr�rWrrrrr-s

�



����
�






���������
������������
���zemailMarketing.startEmailJobN)
�__name__�
__module__�__qualname__rrrrTrr�rrrrrr
s6+r
)rdr1r6r8�plogical.CyberCPLogFileWriterrr�modelsrrrrrr�plogical.backupScheduler	�websiteFunctions.modelsr
�	threadingrrprtrn�randomr�plogical.processUtilitiesrrr
rrrr�<module>s