
vÅÏ^½	  ã               @   sh   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	 Gd d „  d e	 ƒ Z d S)z-Email backend that writes messages to a file.é    N)Úsettings)ÚImproperlyConfigured)ÚEmailBackendc                   sX   e  Z d  Z d d ‡  f d d † Z d d „  Z d d „  Z d	 d
 „  Z d d „  Z ‡  S)r   Ú	file_pathNc               s>  d  |  _  | d  k	 r! | |  _ n t t d d  ƒ |  _ t |  j t ƒ s[ t d |  j ƒ ‚ t j j	 |  j ƒ |  _ y t j
 |  j d d ƒWnb t k
 r´ t d |  j ƒ ‚ Yn> t k
 rñ } z t d |  j | f ƒ ‚ WYd  d  } ~ Xn Xt j |  j t j ƒ st d |  j ƒ ‚ d  | d <t ƒ  j | | Ž  d  S)	NZEMAIL_FILE_PATHz%Path for saving emails is invalid: %rÚexist_okTzAPath 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   Ú
isinstanceÚstrr   ÚosÚpathÚabspathÚmakedirsÚFileExistsErrorÚOSErrorÚaccessÚW_OKÚsuperÚ__init__)Úselfr   ÚargsÚkwargsÚerr)Ú	__class__© úE/tmp/pip-build-8lau8j11/django/django/core/mail/backends/filebased.pyr      s&    	)
zEmailBackend.__init__c             C   sH   |  j  j | j ƒ  j ƒ  d ƒ |  j  j d d ƒ |  j  j d ƒ d  S)Ns   
ó   -éO   )r   ÚwriteÚmessageÚas_bytes)r   r    r   r   r   Úwrite_message+   s     zEmailBackend.write_messagec             C   se   |  j  d k r^ t j j ƒ  j d ƒ } d | t t |  ƒ ƒ f } t j 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_filename0   s
    zEmailBackend._get_filenamec             C   s/   |  j  d  k r+ t |  j ƒ  d ƒ |  _  d Sd S)NÚabTF)r   Úopenr+   )r   r   r   r   r-   8   s    zEmailBackend.openc             C   s1   z  |  j  d  k	 r |  j  j ƒ  Wd  d  |  _  Xd  S)N)r   Úclose)r   r   r   r   r.   >   s    zEmailBackend.close)Ú__name__Ú
__module__Ú__qualname__r   r"   r+   r-   r.   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   