a
    Lcòf1	  ã                   @   sL   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	 G dd„ de	ƒZdS )z-Email backend that writes messages to a file.é    N)Úsettings)ÚImproperlyConfigured)ÚEmailBackendc                       sB   e Zd Zddœ‡ fdd„
Zdd„ Zdd„ Zd	d
„ Zdd„ Z‡  ZS )r   N)Ú	file_pathc             
      sÚ   d | _ |d ur|| _nttdd ƒ| _tj | j¡| _ztj| jdd� W nT tyh   t	d| j ƒ‚Y n6 t
yœ } zt	d| j|f ƒ‚W Y d }~n
d }~0 0 t | jtj¡s¼t	d| j ƒ‚d |d< tƒ j|i |¤Ž d S )NZEMAIL_FILE_PATHT)Úexist_okzAPath for saving email messages exists, but is not a directory: %sz=Could not create directory for saving email messages: %s (%s)z Could not write to directory: %sÚstream)Ú_fnamer   Úgetattrr   ÚosÚpathÚabspathÚmakedirsÚFileExistsErrorr   ÚOSErrorÚaccessÚW_OKÚsuperÚ__init__)Úselfr   ÚargsÚkwargsÚerr©Ú	__class__© ú`/home/httpd/docs/test/DocsMgr/lib/python3.9/site-packages/django/core/mail/backends/filebased.pyr      s2    ÿÿÿÿÿzEmailBackend.__init__c                 C   s4   | j  | ¡  ¡ d ¡ | j  d¡ | j  d¡ d S )Nó   
sO   -------------------------------------------------------------------------------)r   ÚwriteÚmessageÚas_bytes)r   r   r   r   r   Úwrite_message*   s    zEmailBackend.write_messagec                 C   sF   | j du r@tj ¡  d¡}d|tt| ƒƒf }tj | j	|¡| _ | j S )zReturn a unique file name.Nz%Y%m%d-%H%M%Sz	%s-%s.log)
r   ÚdatetimeÚnowÚstrftimeÚabsÚidr
   r   Újoinr   )r   Ú	timestampÚfnamer   r   r   Ú_get_filename/   s
    
zEmailBackend._get_filenamec                 C   s"   | j d u rt|  ¡ dƒ| _ dS dS )NÚabTF)r   Úopenr)   ©r   r   r   r   r+   7   s    
zEmailBackend.openc                 C   s,   z| j d ur| j  ¡  W d | _ nd | _ 0 d S )N)r   Úcloser,   r   r   r   r-   =   s    
zEmailBackend.close)	Ú__name__Ú
__module__Ú__qualname__r   r    r)   r+   r-   Ú__classcell__r   r   r   r   r      s
   r   )
Ú__doc__r!   r
   Zdjango.confr   Zdjango.core.exceptionsr   Z!django.core.mail.backends.consoler   ZConsoleEmailBackendr   r   r   r   Ú<module>   s   