
    +YhQ                         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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
ej                  ZdS )    )copyN)*fields)SMTPSMTP_SSL)MIMEMultipart)MIMEText)cmf_plugin_mailboxc            
            e Zd Zej        j        ddgz   Zed             Zd Z fdZ	dd fd
Z
d	 Z	 	 ddZe edd          dedededefd                        Z xZS )CmfPluginMailBoxget_local_mailboxsend_messagec                 2    |                      ddg          S )NTplugin.ext_smtp)systemr   )get)clss    %./common/models/cmf_plugin_mailbox.pyr   z"CmfPluginMailBox.get_local_mailbox   s    wwd,=+>w???    c                 d    | j         rd S t                              | j        d          | _         d S )Nmail)nametype)pluginmodels	CmfPluginr   )selfs    r   _process_pluginz CmfPluginMailBox._process_plugin   s1    ; 	F&&DIF&CCr   c                 L    t                                                      dgz   S )Nr   )supersave_preload_fields)r   	__class__s    r   r"   z$CmfPluginMailBox.save_preload_fields    s     ww**,,z99r   r   )depthc                b    |                                    t                      j        |d|i|S )Nr$   )r   r!   save)r   r$   argskwargsr#   s       r   r&   zCmfPluginMailBox.save#   s5    uww|T99&999r   c                    t           j        }	 | j        j        j                            d          \  }}n)#  | j        j        j        }| j        j        j        }Y nxY w| j        j        r| j        j        j        }| j        j        j        rt          |          dk    s| j        j	        j        rHt          j        t          j                  }t          ||d|          }|                    |           n`t          j                    }t!          |||d|          }n8t          ||d|          }| j        j	        j        r|                                 |                                 | j        j        rrt&                                          5  |                    | j        j        j        | j        j                                                   d d d            n# 1 swxY w Y   |S )N:iK     )timeoutlocal_hostname)context)r.   r,   r-   
   )configAPP_FQDNr   ext_smtpvaluesplitext_port
verify_sslintuse_tlsssl
SSLContextPROTOCOL_TLSr   starttlscreate_default_contextr   ehlopasswordcmfutildisable_acllogindecrypt)r   hostnameserverportr.   smtps         r   
_make_smtpzCmfPluginMailBox._make_smtp(   s     ?	.;/5;;C@@LFDD	.[)/F;'-DDD; 	.;'-D;!' 	 4yyC4;#6#<.)9::FD!HMMMg....466gqYabbbbJJJD{"(  		; 	T$$&& T T

4;,2DK4H4P4P4R4RSSST T T T T T T T T T T T T T Ts   '6 $AAG  G$'G$N   Уведомлениеc                 x   ddl m}
 t                              d| d|            t          j        sjt          t          dd           dk    rP| j                            dg          j	        
                    d	          st                              d
           d S |                     g d           d}|r|}| j        j        j        r| j        j        j        }| j        j        j        r| j        j        j        }d } ||          } ||          } ||          }|pg }t                      }||d<   d                    |          |d<   ||d<    |
d          |d<   |rd                    |          |d<   |                    t%          |d                     |D ]}|                    |           ||z   |z   }	 |                                 }|                    |d         ||                                           |                                 t                              d|            d S # t.          $ r;}t0                              d| d           t5          d|            Y d }~d S d }~wt6          $ r1}t5          dt9          j                     d|            Y d }~d S d }~ww xY w)Nr   )
formatdateu   Отправка email: to=z
, subject=r1   zbcrm.carbonsoft.rur2   r   z	.local:25u\   Отправка email отменена, т.к. сервер не в production-режиме)zplugin.loginzplugin.passwordr   zplugin.ext_portzplugin.verify_sslzplugin.use_tlszplugin.send_email_fromzEvaTeam <noreply@evateam.ru>c                 >    | sg S t          | t                    r| n| gS )N)
isinstancelist)r3   s    r   ensure_listz2CmfPluginMailBox.send_message.<locals>.ensure_liste   s*     	&ud33@55%@r   Fromz, ToSubjectT)	localtimeDateCchtmlu)   Email успешно отправлен: z!CmfPluginMailBox.send_message(to=z) erroru   Не удалось отправить сообщение. Проверьте параметры SMTP и попробуйте снова.
Ошибка: u<   Ошибка подключения к SMTP-серверу.

)email.utilsrK   gdebugr0   
PRODUCTIONgetattrr   loadr2   endswithload_fieldsrB   r3   send_email_fromr	   joinattachr
   rH   sendmail	as_stringquitOSErrorlogging	exception	cmf_alert	Exception	traceback
format_exc)r   tomessage
from_loginsubjectemail_attachmentsccbccr'   r(   rK   _fromrO   to_listmsgrb   
recipientsrG   es                      r   r   zCmfPluginMailBox.send_messageH   s\   ******	EbEEGEEFFF  	WVZ%F%FJ^%^%^(((==FOOP[\\ &_GGrsssF & & & 	' 	' 	' / 	E;" 	,K%+E;&, 	6K/5E	A 	A 	A
 +b//[__k#-3ooFIIg&&D	 I j4000F 	&		"CI

8GV,,---' 	 	FJJvr\C'
		u??$$DMM#f+z3==??CCCIIKKKGGL
LLMMMMM 	w 	w 	wR'RRRSSS  v  st  v  v  w  w  w  w  w  w  w  w  w 	u 	u 	usV_VjVlVlsspqssttttttttt	us%   A4H; ;
J90I;;J9&J44J9u)   Отправка почты из bzpythonT)description
system_jobrp   contentrr   rs   c                 v    t           j                                        }|                    | ||||           d S )N)rp   rr   rs   )r   r   r   r   )rm   rp   r{   rr   rs   mail_boxs         r   send_email_jobzCmfPluginMailBox.send_email_job   s=     *<<>>b'7rsKKKKKr   )NrI   NNN)__name__
__module____qualname__r   r   api_methodsclassmethodr   r   r"   r&   rH   r   staticmethodcmf_deferred_jobstrrN   r~   __classcell__)r#   s   @r   r   r      sI       $5AE
 
K
 @ @ [@D D D
: : : : : !" : : : : : : :
  @ BZ6:@u @u @u @uD "MZ^___L3 L L L$ L L L `_ \L L L L Lr   r   )r   asanacmf.includecmfr   rk   r9   socketsmtplibr   r   email.mime.multipartr	   email.mime.textr
   common.fieldsr   r    r   r   <module>r      s                            



  " " " " " " " " . . . . . . $ $ $ $ $ $ , , , , , ,}L }L }L }L }L): }L }L }L }L }Lr   