HEX
Server: LiteSpeed
System: Linux linux31.centraldnserver.com 4.18.0-553.83.1.lve.el8.x86_64 #1 SMP Wed Nov 12 10:04:12 UTC 2025 x86_64
User: salamatk (1501)
PHP: 8.1.33
Disabled: show_source, system, shell_exec, passthru, exec, popen, proc_open
Upload Files
File: //opt/alt/python37/lib/python3.7/site-packages/xray/continuous/__pycache__/mailer.cpython-37.pyc
B

�V�d�@s�ddlZddlZddlZddlZddlmZmZddlmZddl	m
Z
ddlmZddl
mZmZddlmZGd	d
�d
�ZdS)�N)�ConfigParser�SectionProxy)�EmailMessage)�gethostname)�Optional�)�mail_template_location�mail_scripts_location)�XRayMailerErrorc@s�eZdZdZdd�Zeed�dd��Zeed�dd��Z	ed�d	d
�Z
eed�dd�Zeed�d
d�Z
edeed�dd��Zedd�dd�Zedd�dd�Zedd�dd�Zd eedd�dd�ZdS)!�Mailerz0
    Class contains X-Ray e-mail send logic
    cCst�d�|_d|_dS)N�mailer)�logging�	getLogger�logger�_sender)�self�r�G/opt/alt/python37/lib/python3.7/site-packages/xray/continuous/mailer.py�__init__szMailer.__init__)�returncCsdS)z+
        Local mail server address
        )�	localhostr)rrrr�mail_serverszMailer.mail_servercCs|jdkr|��|_|jS)zG
        Retrieve 'From' mail address if it is not already set
        N)r�retrieve_mail_sender)rrrr�sender$s

z
Mailer.sendercCs$dt���}|��}|dk	r |S|S)zC
        'From' address (control panel admin or dummy one)
        zxray.continuous@N)r�admin_email)rZ
dummy_mailZ
admin_mailrrrr-szMailer.retrieve_mail_senderc
Cs�|��}|dk	r�t�d|�d�}ytj|gdddd�}|j��Stjk
rv}z|j�d|t	|��Wdd}~XYn>t
ttjfk
r�}z|j�d|t	|��Wdd}~XYnXdS)z<
        Try to retrieve control panel admin e-mail
        N�/Z_emailT)�capture_output�text�checkz% script failed with: %sz Failed to run script %s with: %s)
�get_control_panelr	�
subprocess�run�stdout�strip�CalledProcessErrorr�error�str�OSError�
ValueError�SubprocessError)r�panel�get_email_script�p�errrr5s
zMailer.admin_emailc
Cs�ytjddgdddd�j��Stjtfk
rV}z|j�dt|��Wdd}~XYn<t	t
tjfk
r�}z|j�dt|��Wdd}~XYnXdS)z(
        Get control panel name
        Zcldetectz--detect-cp-nameT)rrrzcldetect utility failed with %sNz&Failed to run cldetect utility with %s)r r!r"r#r$�AttributeErrorrr%r&r'r(r))rr-rrrrGszMailer.get_control_panel�greeting)�namercCsPt�d|�d�}tj�|�r8tdd�}|�|�|dStd|�dt����dS)zF
        Get preformatted data for e-mail by name of template
        rz.iniN)�
interpolation�datazFailed to find template z in )r�os�path�existsr�readr
)r0�tmpl�configrrr�
read_templateWs

zMailer.read_templateN)�messagerc
Cs�|j�d�y4tj|j��}|�|�}|j�d|�WdQRXWnltjk
rv}ztdt|�����Wdd}~XYn8t	t
fk
r�}ztdt|�����Wdd}~XYnXdS)z=
        Send preformatted e-mail via localhost SMTP
        zTry to send via smtpzSend result: %sNzsmtp mailing failed: zsmtp connection failed: )r�info�smtplib�SMTPr�send_messageZ
SMTPExceptionr
r&�ConnectionErrorr')rr:�server�resultr-rrr�
_smtp_sendds
"zMailer._smtp_sendc
Csr|j�d�dddg}ytj||��dddd�Wn:ttjfk
rl}ztdt|�����Wdd}~XYnXdS)	z?
        Send preformatted e-mail via sendmail utility
        z Try to send via sendmail utilityz/usr/sbin/sendmailz-tz-oiT)�inputrrrzsendmail utility failed with N)	rr;r r!�	as_stringr'r$r
r&)rr:�cmdr-rrr�
_console_sendrs
zMailer._console_send)�mailrc
Cs�y|�|�Wn�tk
r�}zh|j�t|��y|�|�WnDtk
r�}z&|j�t|��|j�d|d�Wdd}~XYnXWdd}~XYnXdS)zm
        Try to send mail via localhost smtp server,
        if fails -- try to use sendmail utility
        z3Both smtp and sendmail failed to send message to %s�ToN)rBr
rr%r&rF�critical)rrGr-rrr�_send�szMailer._send)�	recipient�templatercKsv|�|�}t�}|d|d<|j|d<||d<|�|d|�|j|d|dd�|j�d|���|�|�dS)	N�subject�Subject�FromrHr�html)�subtypezGenerated mail --> %s)	r9rr�set_content�add_alternativerr;rDrJ)rrKrL�kwargsr2�msgrrr�	send_mail�s

zMailer.send_mail)r/)r/)�__name__�
__module__�__qualname__�__doc__r�property�tuplerr&rrrrr�staticmethodrr9rrBrFrJrVrrrrrs r)r
r3r<r �configparserrr�
email.messager�socketr�typingrZinternal.constantsrr	�internal.exceptionsr
rrrrr�<module>s