Edit File: mail_helper.cpython-37.pyc
B �e� � @ s� d dl mZmZmZ d dlZd dlZd dlZd dlZd dl Z d dl mZm Z d dlmZ d dlmZ d dlmZ dZG dd � d e�ZG d d� d�ZdS )� )�absolute_import�division�print_functionN)�base� multipart)� SysLogHandler)�Optional)�errorzAleksandr Shyshatskyc @ s e Zd ZdS )�MailSendFailedN)�__name__� __module__�__qualname__� r r ��/builddir/build/BUILDROOT/alt-python27-cllib-3.3.5-1.el8.cloudlinux.x86_64/opt/alt/python37/lib/python3.7/site-packages/clcommon/mail_helper.pyr s r c @ sj e Zd ZdZdd� Zdejee d�dd�Z dee d�d d �Z eejd�dd �Z dee d�dd�ZdS )� MailHelperz6Common class to send emails via local smtp or sendmailc C sh t jjsZtj�d�rRtdtjd�}t j�|� t j dd�}|� |� |�t j� nt � � t �� | _d S )Nz/dev/log)ZaddressZfacilityz3mail_helper: (%(name)s) [%(levelname)s] %(message)s)Zfmt)�logging�rootZhandlers�os�path�existsr Z LOG_DAEMONZ addHandlerZ FormatterZsetFormatterZsetLevelZERRORZbasicConfigZ getLogger�_log)�selfZSYS_LOGZ formatter_sysr r r �__init__! s zMailHelper.__init__N)�msg� encoding_namec C s� yl|r|� � �|�}n|� � }dddg}tj|tjtjtjdd�}|�|�d }|jdkrjt�|j||��W n4 ttjfk r� } zt t |���W dd}~X Y nX dS )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�PIPEZcommunicate� returncodeZCalledProcessError�OSErrorr �str)r r r � s_message�cmd�pr �exr r r �_sendmail_console- s zMailHelper._sendmail_console)r c C sz y@t �d�}|r |�� �|�}n|�� }|�|||� |�� W n4 t jtfk rt } ztt |���W dd}~X Y nX dS )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 Z localhostN) �smtplibZSMTPr r �sendmail�quitZ SMTPException�socketerrorr r&