Your IP : 18.189.171.166
�
�Ѡg� � � � d dl Zd dlZd dlZd dlZd dlZd dlmZm Z d dl
mZ d dlm
Z
d dlmZ dZ G d� de� � Z G d � d
� � ZdS )� N)�base� multipart)�
SysLogHandler)�Optional)�errorzAleksandr Shyshatskyc � � e Zd ZdS )�MailSendFailedN)�__name__�
__module__�__qualname__� � ��/builddir/build/BUILDROOT/alt-python27-cllib-3.4.22-1.el8.cloudlinux.x86_64/opt/cloudlinux/venv/lib/python3.11/site-packages/clcommon/mail_helper.pyr r s � � � � � ��Dr r c � � e Zd ZdZd� Zddej dee fd�Z ddee fd�Z
dedej fd �Z
ddee fd
�ZdS )�
MailHelperz6Common class to send emails via local smtp or sendmailc �� � t j j s�t j � d� � r�t
dt j �� � }t j � |� � t j d�� � }|�
|� � |� t j � � nt j
� � t j � � | _ d S )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�� � ���/�/�/�/��#�%�%�%��%�'�'�� � � r N�msg�
encoding_namec �& � |r(|� � � � |� � }n|� � � }g d�}t j |t j t j t j d�� � 5 }|� |� � d }|j dk rt j |j ||� � � ddd� � dS # 1 swxY w Y dS # t t j f$ r"}t t |� � � � |�d}~ww xY w)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�textr N)� as_string�encode�
subprocess�Popen�PIPE�communicate�
returncode�CalledProcessError�OSErrorr �str)r% r) r* � s_message�cmd�procr- �exs r �_sendmail_consolezMailHelper._sendmail_console* sh � � 2��
,��M�M�O�O�2�2�=�A�A� � ��M�M�O�O� �5�5�5�C��!�� �o�!��!���� � �
V� ��)�)�)�4�4�Q�7���?�a�'�'�$�7����f�U�U�U� (�
V�
V�
V�
V�
V�
V�
V�
V�
V�
V�
V�
V����
V�
V�
V�
V�
V�
V�� ��6�7� 2� 2� 2� ��R���)�)�r�1����� 2���s= �A9C �;AC�>C �C�C �C�C �D�.D�Dc �x � t j d� � }|r(|� � � � |� � }n|� � � }|� |||� � |� � � dS # t j t f$ r"}t t |� � � � |�d}~ww xY w)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�SMTPr0 r1 �sendmail�quit�
SMTPException�socketerrorr r9 )r% � from_addr�to_addrsr) r* �
smtp_instancer: r= s r �_sendmail_smtpzMailHelper._sendmail_smtpE s� � � 2�#�L��5�5�M��
,��M�M�O�O�2�2�=�A�A� � ��M�M�O�O� ��"�"�9�h� �B�B�B���� � � � � ���%�{�3� 2� 2� 2� ��R���)�)�r�1����� 2���s �A=B �B9�B4�4B9rG c �� � |d s_t j � |� d� � d �� � |d<