U
    I4c                     @   s   d dl m Z  d dlZd dlT d dlmZ d dlZd dlZd dlmZm	Z	 d dl
mZ d dlmZ d dlmZ G d	d
 d
ejZdS )    )copyN)*)fields)SMTPSMTP_SSL)MIMEMultipart)MIMEText)cmf_plugin_mailboxc                       sT   e Zd Zedd Zdd Z fddZdd fd	d

Zdd ZdddZ	  Z
S )CmfPluginMailBoxc                 C   s   | j ddgdS )NTzplugin.ext_smtp)systemr   )get)cls r   %./common/models/cmf_plugin_mailbox.pyget_local_mailbox   s    z"CmfPluginMailBox.get_local_mailboxc                 C   s    | j r
d S tj| jdd| _ d S )NZmail)nametype)pluginZmodelsZ	CmfPluginr   selfr   r   r   _process_plugin   s    z CmfPluginMailBox._process_pluginc                    s   t   dg S )Nr   )supersave_preload_fieldsr   	__class__r   r   r      s    z$CmfPluginMailBox.save_preload_fieldsr   )depthc                   s   |    t j|d|i|S )Nr   )r   r   save)r   r   argskwargsr   r   r   r      s    zCmfPluginMailBox.savec                 C   s   z| j jjd\}}W n    | j jj}| j jj}Y nX | j jrL| j jj}| j jjrt|dkrttj	}t
||dd}|j|d qt }t|||dd}nt
||dd}|  | j jjr|| j jj| j jj |S )N:iK     )timeout)context)r"   r!   )r   Zext_smtpvaluesplitZext_portZ
verify_sslintsslZ
SSLContextZPROTOCOL_TLSr   ZstarttlsZcreate_default_contextr   ZehloZpasswordlogin)r   ZserverZportr"   smtpr   r   r   
_make_smtp"   s&    



zCmfPluginMailBox._make_smtpN   Уведомлениеc              
   O   s  t js
d S | dg d}|r"|}| jjjr6| jjj}t }||d< ||d< ||d< |t|d z.| 	 }	|	
|d |d |  |	  W nt tk
r }
 ztdt  d|
  W 5 d }
~
X Y n< tk
r }
 ztd	t  d|
  W 5 d }
~
X Y nX d S )
NzNplugin.login,plugin.password,plugin.ext_smtp,plugin.ext_port,plugin.verify_sslzEvaTeam <noreply@evateam.ru>ZFromZToZSubjectZhtmlu!   Системная ошибка.

u<   Ошибка подключения к SMTP-серверу.
)ZconfigZ
PRODUCTIONZload_fieldsr   r'   r#   r   Zattachr   r)   ZsendmailZ	as_stringquitOSErrorZ	cmf_alert	traceback
format_exc	Exception)r   Zto_loginmessageZ
from_loginZsubjectr   r   Z_frommsgr(   er   r   r   send_message;   s.    

(zCmfPluginMailBox.send_message)Nr*   )__name__
__module____qualname__classmethodr   r   r   r   r)   r4   __classcell__r   r   r   r   r
      s   
r
   )r   ZasanaZcmf.includeZcmfr   r.   r&   Zsmtplibr   r   Zemail.mime.multipartr   Zemail.mime.textr   Zcommon.fieldsr	   r
   r   r   r   r   <module>   s   