a
    [f                     @   s4   d Z ddlZddlZddlmZ G dd deZdS )zH
Email backend that writes messages to console instead of sending them.
    N)BaseEmailBackendc                       s,   e Zd Z fddZdd Zdd Z  ZS )EmailBackendc                    s0   | dtj| _t | _t j|i | d S )Nstream)	popsysstdoutr   	threadingRLock_locksuper__init__)selfargskwargs	__class__ sC:\Users\91910\OneDrive\Desktop\vts_admin_rebuild-master\vts\Lib\site-packages\django/core/mail/backends/console.pyr      s    
zEmailBackend.__init__c                 C   s^   |  }| }| r$|  nd}||}| jd|  | jd | jd d S )Nzutf-8z%s
zO-------------------------------------------------------------------------------
)messageas_bytesget_charsetget_output_charsetdecoder   write)r   r   msgZmsg_datacharsetr   r   r   write_message   s    
zEmailBackend.write_messagec              	   C   s   |sdS d}| j j z>|  }|D ] }| | | j  |d7 }q"|rP|   W n tyl   | jsh Y n0 W d   n1 s0    Y  |S )z6Write all messages to the stream in a thread-safe way.Nr      )r
   openr   r   flushclose	ExceptionZfail_silently)r   Zemail_messagesZ	msg_countZstream_createdr   r   r   r   send_messages   s     


&zEmailBackend.send_messages)__name__
__module____qualname__r   r   r#   __classcell__r   r   r   r   r   
   s   r   )__doc__r   r   Zdjango.core.mail.backends.baser   r   r   r   r   r   <module>   s   