????

Your IP : 3.14.141.163


Current Path : /opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/__pycache__/
Upload File :
Current File : //opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/__pycache__/mail_helper.cpython-311.pyc

�

�j�e����ddlmZmZmZddlZddlZddlZddlZddl	Z	ddl
mZm
Z
ddlmZddlmZddlmZdZGd�d	e��ZGd
�d��ZdS)�)�absolute_import�division�print_functionN)�base�	multipart)�
SysLogHandler)�Optional)�errorzAleksandr Shyshatskyc��eZdZdS)�MailSendFailedN)�__name__�
__module__�__qualname__����/builddir/build/BUILDROOT/alt-python27-cllib-3.3.15-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/mail_helper.pyrrs�������Drrc��eZdZdZd�Zddejdeefd�Z	ddeefd�Z
dedejfd	�Z
ddeefd
�ZdS)�
MailHelperz6Common class to send emails via local smtp or sendmailc���tjjs�tj�d��r�t
dtj���}tj�|��tj	d���}|�
|��|�tj��ntj
��tj��|_dS)Nz/dev/log)�address�facilityz3mail_helper: (%(name)s) [%(levelname)s] %(message)s)�fmt)�logging�root�handlers�os�path�existsr�
LOG_DAEMON�
addHandler�	Formatter�setFormatter�setLevel�ERROR�basicConfig�	getLogger�_log)�self�SYS_LOG�
formatter_syss   r�__init__zMailHelper.__init__!s����|�$�	&��w�~�~�j�)�)�
&�'�
�]�E]�^�^�^����'�'��0�0�0� '� 1�6k� l� l� l�
��$�$�]�3�3�3�� � ���/�/�/�/��#�%�%�%��%�'�'��	�	�	rN�msg�
encoding_namec���	|r(|����|��}n|���}gd�}tj|tjtjtjd���}|�|��d}|jdkrtj|j||���dS#ttjf$r!}tt|�����d}~wwxYw)z�
        Alternative function that should be called
        when we cannot send email via smtp
        :type msg: email.mime.base.MIMEBase
        :type encoding_name: encoding name to encode message text
        )z/usr/sbin/sendmailz-tz-oiT)�stdin�stdout�stderr�textrN)�	as_string�encode�
subprocess�Popen�PIPE�communicate�
returncode�CalledProcessError�OSErrorr�str)r(r,r-�	s_message�cmd�pr0�exs        r�_sendmail_consolezMailHelper._sendmail_console-s���	*��
,��M�M�O�O�2�2�=�A�A�	�	��M�M�O�O�	�5�5�5�C�� ��J�O�(2��(2��&*�,�,�,�A��]�]�9�-�-�a�0�F��|�q� � � �3�A�L�#�v�N�N�N�!� ����6�7�	*�	*�	*� ��R���)�)�)�����	*���s�B:B>�>C5�C0�0C5c�v�	tjd��}|r(|����|��}n|���}|�|||��|���dS#tjtf$r!}tt|�����d}~wwxYw)z�
        Send email using smtp protocol;
        :type from_addr: str
        :type to_addrs: List[str]
        :type msg: email.mime.base.MIMEBase
        :type encoding_name: encoding name to encode message text
        �	localhostN)
�smtplib�SMTPr3r4�sendmail�quit�
SMTPException�socketerrorrr<)r(�	from_addr�to_addrsr,r-�
smtp_instancer=r@s        r�_sendmail_smtpzMailHelper._sendmail_smtpEs���		*�#�L��5�5�M��
,��M�M�O�O�2�2�=�A�A�	�	��M�M�O�O�	��"�"�9�h�	�B�B�B���� � � � � ���%�{�3�	*�	*�	*� ��R���)�)�)�����	*���s�A=B�B8�B3�3B8rJc���|ds_tj�|�d��d���|d<|j�d|d��dSdS)z{Add Message-ID to message if it is missing
        :type from_addr: str
        :type msg: multipart.MIMEMultipart
        z
Message-ID�@���)�domainzAdded Message-ID: %sN)�email�utils�
make_msgid�splitr'�debug)r(rJr,s   r�_add_message_idzMailHelper._add_message_idXso��
�<� �	G� %�� 6� 6�i�o�o�c�>R�>R�SU�>V� 6� W� W�C����I�O�O�2�C��4E�F�F�F�F�F�	G�	Grc���|j�d|||��|�||��	|�||||��dS#t$r�}|j�d��	|�|��nQ#t$rD|j�d��|j�t|����Yn
wxYwYd}~dSYd}~dSd}~wwxYw)a0
        Try to send message using local smtp;
        If that can't be done - try to use /usr/sbin/sendmail;
        :type from_addr: str
        :type to_addrs: List[str]
        :type msg: multipart.MIMEMultipart
        :type encoding_name: Optional[str] encoding name to encode message text
        z+Trying to send mail with params: %s, %s, %sz-Smtp send failed, trying to send via sendmailzcCannot send email neither via smtp nor using sendmail; Please, check your mail server configurationN)	r'rVrWrMrrA�	exceptionr
r<)r(rJrKr,r-�smtp_exceptions      rrFzMailHelper.sendmailas4��	
�	���E�y�RZ�\_�`�`�`����Y��,�,�,�		5����	�8�S�-�H�H�H�H�H���	5�	5�	5��I�O�O�K�L�L�L�
5��&�&�s�+�+�+�+��!�
5�
5�
5��	�#�#�%S�T�T�T��	����N� 3� 3�4�4�4�4�4�
5����,�+�+�+�+�+�5�4�4�4�4�4�����	5���s<�A�
C,�C'�4B
�	C'�
AC�C'�C�C'�'C,)N)r
rr�__doc__r+�	mime_base�MIMEBaser	r<rArMr�
MIMEMultipartrWrFrrrrrs�������@�@�
(�
(�
(�*�*�Y�%7�*��QT�
�*�*�*�*�0*�*�h�s�m�*�*�*�*�&G��G�9�3J�G�G�G�G�5�5���
�5�5�5�5�5�5rr)�
__future__rrr�email.utilsrRrrrDr5�
email.mimerr\r�logging.handlersr�typingr	�_socketr
rI�
__author__�	Exceptionrrrrr�<module>rgs��A�@�@�@�@�@�@�@�@�@���������	�	�	�	���������3�3�3�3�3�3�3�3�*�*�*�*�*�*�������(�(�(�(�(�(�
#�
�	�	�	�	�	�Y�	�	�	�W5�W5�W5�W5�W5�W5�W5�W5�W5�W5r