
    si+                        U d Z ddlZddlZddlmZ ddlmZ ddlmZ ddl	m
Z
mZ ddlmZ ddlmZ  ej                   e      Z G d	 d
e      Z eedd      ZeZeed<   dZ eedej4                         er5eek7  r0ej7                  dd      \  ZZ ej<                  e      Z eee      Z G d de      Z eek7  r" eedd      Z! eedd      Z"e!e _#        e!e _$        dgZ%ejL                  Z'	 	 	 	 	 	 	 	 	 	 ddZ(e(e_&        y)z?
email_backend.py

This module is used to write email backends
    N)cache)EmailMessage)EmailBackend)DynamicEmailConfigurationEmailLog)settings)_thread_localsc                        e Zd Z	 	 	 	 	 	 	 	 	 	 d fd	Zed        Zed        Zed        Zed        Z	ed        Z
ed        Zed        Zed	        Zed
        Zed        Zed        Zed        Z xZS )DefaultHorillaMailBackendc                    | j                         | _        | j                  rt        | j                  dd       n|	xs t        t        dd       }	| j                  rt        | j                  dd       n|
xs t        t        dd       }
t	        |   d| j                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  |	|
d
| y )Nssl_keyfilessl_certfile)
hostportusernamepassworduse_tlsfail_silentlyuse_ssltimeoutr   r    )get_dynamic_email_configconfigurationgetattrr   super__init__dynamic_hostdynamic_portdynamic_usernamedynamic_passworddynamic_use_tlsdynamic_fail_silentlydynamic_use_ssldynamic_timeout)selfr   r   r   r   r   r   r   r   r   r   kwargs	__class__s               1/var/www/python-projects/worksol/base/backends.pyr   z"DefaultHorillaMailBackend.__init__   s     "::< !! D&&t<F- F 	 !! D&&=H>4!H 	 	 	
""""****((44((((#%	
 	
    c                     t        t        dd       } d }| r:| j                  j                  s$| j                  j                  j                         }t        j                  j                  |      j                         }|.t        j                  j                  d      j                         }|rN|j                   d|j                   d}d}| r|j                  rb| j                  j                  rL| j                  j                  j                          d| j                  j                  j                          d}| j                  j                  r| j                  j                   }| j                  j                  j                          d| j                  j                  j                          dg}t#        j$                  d| j                  j                    |       t#        j$                  d	| |       |S )
Nrequest)
company_idT)
is_primary <> reply_todynamic_display_name)r   r	   useris_anonymousemployee_getget_companyr   objectsfilterfirstdisplay_name
from_emailuse_dynamic_display_nameis_authenticatedget_full_name	get_emailpkr   set)r+   companyr   display_email_nameuser_idr1   s         r(   r   z2DefaultHorillaMailBackend.get_dynamic_email_config>   s   .)T:7<<44ll//;;=G199@@ A 

%' 	  5==DD E eg   --.b1I1I0J!L  G!::55,3LL,E,E,S,S,U+VVXY`YeYeYrYrY|Y|Y~X  @A  *B&<<00%llooG"<<44BBDERHaHaHkHkHmGnnop H II(9:HEII,WI68JKr)   c                 h    | j                   r| j                   j                  S t        t        dd       S )N
EMAIL_HOST)r   r   r   r   r%   s    r(   r   z&DefaultHorillaMailBackend.dynamic_hostb   6     !! ##	
 <6	
r)   c                 h    | j                   r| j                   j                  S t        t        dd       S )N
EMAIL_PORT)r   r   r   r   rG   s    r(   r   z&DefaultHorillaMailBackend.dynamic_portj   rH   r)   c                 h    | j                   r| j                   j                  S t        t        dd       S )NEMAIL_HOST_USER)r   r   r   r   rG   s    r(   r   z*DefaultHorillaMailBackend.dynamic_usernamer   s7     !! ''	
 #4d;	
r)   c                 h    | j                   r| j                   j                  S t        t        dd       S )NDEFAULT_FROM_EMAIL)r   r;   r   r   rG   s    r(   dynamic_mail_sent_fromz0DefaultHorillaMailBackend.dynamic_mail_sent_fromz   s7     !! ))	
 #7>	
r)   c                 J    | j                   r| j                   j                  S d S )N)r   r:   rG   s    r(   r2   z.DefaultHorillaMailBackend.dynamic_display_name   s!    262D2Dt!!..N$Nr)   c                 j    | j                   r| j                    d| j                   dS | j                  S )Nr.   r/   )r2   rO   rG   s    r(   $dynamic_from_email_with_display_namez>DefaultHorillaMailBackend.dynamic_from_email_with_display_name   sB     (( (()D,G,G+HJ	
 ,,	
r)   c                 h    | j                   r| j                   j                  S t        t        dd       S )NEMAIL_HOST_PASSWORD)r   r   r   r   rG   s    r(   r    z*DefaultHorillaMailBackend.dynamic_password   s7     !! ''	
 #8$?	
r)   c                 h    | j                   r| j                   j                  S t        t        dd       S )NEMAIL_USE_TLS)r   r   r   r   rG   s    r(   r!   z)DefaultHorillaMailBackend.dynamic_use_tls   6     !! &&	
 ?D9	
r)   c                 h    | j                   r| j                   j                  S t        t        dd      S )NEMAIL_FAIL_SILENTLYT)r   r   r   r   rG   s    r(   r"   z/DefaultHorillaMailBackend.dynamic_fail_silently   s7     !! ,,	
 #8$?	
r)   c                 h    | j                   r| j                   j                  S t        t        dd       S )NEMAIL_USE_SSL)r   r   r   r   rG   s    r(   r#   z)DefaultHorillaMailBackend.dynamic_use_ssl   rW   r)   c                 h    | j                   r| j                   j                  S t        t        dd       S )NEMAIL_TIMEOUT)r   r   r   r   rG   s    r(   r$   z)DefaultHorillaMailBackend.dynamic_timeout   rW   r)   )
NNNNNNNNNN)__name__
__module____qualname__r   staticmethodr   propertyr   r   r   rO   r2   rR   r    r!   r"   r#   r$   __classcell__r'   s   @r(   r   r      s    &
P ! !F 
 
 
 
 
 
 
 
 O O 
 
 
 
 
 
 
 
 
 
 
 
r)   r   EMAIL_BACKENDr0   BACKEND_CLASSz$base.backends.ConfiguredEmailBackendsend_messages.   c                        e Zd Z fdZ xZS )ConfiguredEmailBackendc                     t         t        |   |      }|D ]N  }t        |j                  | j
                  |j                  |j                  |rdnd      }|j                          P |S )Nsentfailed)subjectr;   tobodystatus)	r   rf   rg   r   ro   rR   rp   rq   save)r%   email_messagesresponsemessage	email_logr'   s        r(   rg   z$ConfiguredEmailBackend.send_messages   se    ;NK% 	G DD::\\!)vxI NN	 r)   )r^   r_   r`   rg   rc   rd   s   @r(   rk   rk      s     r)   rk   rN   zexample@gmail.comrL   c                 J   t        t        dd      }t                d}|rT|j                  rH|j                  j                  r2|j                  j
                  }|
st        j                  d|       n|
}
|st        j                  d|       }t        | |||||||||	|
       y)z*
    custom __init_method to override
    r+   Nr0   r1   r2   )
ro   rq   r;   rp   bcc
connectionattachmentsheadersccr1   )	r   r	   r   r3   r=   r@   r   getmessage_init)r%   ro   rq   r;   rp   ry   rz   r{   r|   r}   r1   r+   rD   s                r(   new_initr      s      ni6GG7<<GLL$A$A,,//:B599xy12YY!5gY?@
r)   )
r0   r0   NNNNNNNN))__doc__	importlibloggingdjango.core.cacher   django.core.mailr   django.core.mail.backends.smtpr   base.modelsr   r   horillar   horilla.horilla_middlewaresr	   	getLoggerr^   loggerr   r   re   rf   __annotations__defaultsetattrrg   rsplitmodule_path
class_nameimport_modulemodulerk   	from_mailr   r   rR   __all__r   r   r   r   r)   r(   <module>r      sG     # ) 7 ;  6			8	$_
 _
D /26 8| 7
0 (A(O(O P]g-+223:K$Y$$[1FFJ/M]   G"68KLIx!24GHH.7+BK? $
$ $$
 	&R ! r)   