
    Vh1	                     R    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e	      Zy)z-Email backend that writes messages to a file.    N)settings)ImproperlyConfigured)EmailBackendc                   <     e Zd Zdd fd
Zd Zd Zd Zd Z xZS )r   N)	file_pathc                B   d | _         ||| _        nt        t        dd       | _        t        j
                  j                  | j                        | _        	 t	        j                  | j                  d       t	        j                  | j                  t        j                        st        d| j                  z        d |d	<   t        | 8  |i | y # t        $ r t        d| j                  z        t        $ r!}t        d| j                  d|d      d }~ww xY w)
NEMAIL_FILE_PATHT)exist_okzAPath for saving email messages exists, but is not a directory: %sz6Could not create directory for saving email messages: z ()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__s        S/home/dcms/DCMS/lib/python3.12/site-packages/django/core/mail/backends/filebased.pyr   zEmailBackend.__init__   s     &DN$X/@$GDN8	KK6 yy1&2T^^C   x$)&)'  	&S..!   	&>>3( 	s   !C )D=DDc                     | j                   j                  |j                         j                         dz          | j                   j                  d       | j                   j                  d       y )N   
sO   -------------------------------------------------------------------------------)r   writemessageas_bytes)r   r"   s     r   write_messagezEmailBackend.write_message*   sM    '//+446>?)$%     c                    | j                   vt        j                  j                         j                  d      }|dt	        t        |             d}t        j                  j                  | j                  |      | _         | j                   S )zReturn a unique file name.z%Y%m%d-%H%M%S-z.log)
r   datetimenowstrftimeabsidr   r   joinr   )r   	timestampfnames      r   _get_filenamezEmailBackend._get_filename/   sa    ;; ))--/88II#,c"T(m<E'',,t~~u=DK{{r%   c                 \    | j                    t        | j                         d      | _         yy)NabTF)r   openr0   r   s    r   r3   zEmailBackend.open7   s)    ;;t113T:DKr%   c                 x    	 | j                   | j                   j                          d | _         y # d | _         w xY w)N)r   closer4   s    r   r6   zEmailBackend.close=   s0    	{{&!!#DK$DKs   &0 	9)	__name__
__module____qualname__r   r$   r0   r3   r6   __classcell__)r   s   @r   r   r      s    (, *<!
r%   r   )
__doc__r(   r   django.confr   django.core.exceptionsr   !django.core.mail.backends.consoler   ConsoleEmailBackend r%   r   <module>rA      s$    3  	   7 Q7& 7r%   