
    kh                         d dl Z d dlZ	 d dlmZ n# e$ r  ed          w xY wd dlmZ d dlmZ d dl	m
Z
mZ d dlmZmZ  ee          Z G d d	          Z G d
 de
          ZdS )    N)
Controllerz<Please install 'aiosmtpd' library to use mail_debug command.)	getLogger)List)BaseCommandCommandError)setup_loggersignalcommandc                       e Zd Zd ZdS )CustomHandlerc                 p  K   |j         }d}|j                            dd                                          }t                              d           |D ]E}|r'|s%t                              d|d         z             d}t                              |           Ft                              d           d	S )
z7Output will be sent to the module logger at INFO level.   utf8replace)errorsz%---------- MESSAGE FOLLOWS ----------z
X-Peer: %sr   z%------------ END MESSAGE ------------z250 OK)peercontentdecode
splitlinesloggerinfo)selfserversessionenveloper   	inheaderslineslines           g/var/www/histauto/venv/lib/python3.11/site-packages/django_extensions/management/commands/mail_debug.pyhandle_DATAzCustomHandler.handle_DATA   s      |	 ''y'AALLNN;<<< 	 	D  L472333	KK;<<<x    N)__name__
__module____qualname__r    r    r   r   r      s#            r    r   c                   Z     e Zd ZU dZdZg Zee         ed<    fdZ	e
dd            Z xZS )Commandz*Starts a test mail server for development.z&[optional port number or ippaddr:port]requires_system_checksc                     t                                          |           |                    dd           |                    ddd d           |                    dd	d
dd           d S )Naddrport?)nargsz--outputoutput_filezRSpecifies an output file to send a copy of all messages (not flushed immediately).)destdefaulthelpz--use-settingsuse_settings
store_trueFz3Uses EMAIL_HOST and HOST_PORT from Django settings.)r-   actionr.   r/   )superadd_argumentsadd_argument)r   parser	__class__s     r   r4   zCommand.add_arguments+   s    f%%%Jc222)	 	 	
 	
 	
 	F 	 	
 	
 	
 	
 	
r     c                    |sC|d         r6ddl m} t          |dd          t          t          |dd                    n4ddn/	 |                    d          \  n# t
          $ r d|cY nw xY wsd	                                st          d
z            t                    t          t          | j        |d                    fd}	  |             d S # t          $ r Y d S w xY w)Nr0   r   )settings
EMAIL_HOSTr8   
EMAIL_PORT1025:z	127.0.0.1z%r is not a valid port number.r,   )streamfilenamec            	         t           j        dk    rdpd} t          ddd| d           t                      }t	          |          }|                                 t          j                    }|                                 d S )	Nwin32z
CTRL-BREAKz	CONTROL-CzNow accepting mail at r>   z -- use z to quit)hostnameport)	sysplatformprintr   r   startasyncioget_event_looprun_forever)quit_commandhandler
controllerloopaddrrD   s       r   	inner_runz!Command.handle.<locals>.inner_runX   s    LG3ETLE44|||-   $ooG#GdFFFJ)++Dr    )django.confr:   getattrstrsplit
ValueErrorisdigitr   intr   r   stdoutKeyboardInterrupt)r   r)   argsoptionsr:   rQ   rP   rD   s         @@r   handlezCommand.handle=   sW    	*~& 000000xr::78\6BBCC*%^^C00
dd * * *
ddd* 	D||~~ 	?$FGGGt99D 	VDK'-:PQQQQ
	 
	 
	 
	 
	 
		IKKKKK  	 	 	DD	s$   	A" "A43A4
C% %
C32C3)r8   )r!   r"   r#   r/   r[   r'   r   rT   __annotations__r4   r	   r]   __classcell__)r7   s   @r   r&   r&   %   sy         7D3D(*DI***
 
 
 
 
$ ) ) ) ]) ) ) ) )r    r&   )rI   rE   aiosmtpd.controllerr   ImportErrorloggingr   typingr   django.core.management.baser   r   "django_extensions.management.utilsr   r	   r!   r   r   r&   r$   r    r   <module>rf      s-    



V....... V V V
+T
U
UUV             A A A A A A A A J J J J J J J J	8		       "B B B B Bk B B B B Bs    "