
    Ƿi                         d dl Z d dlZd dlmZ 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e          Z G d	 d
e	          ZdS )    N)	getLogger)
SMTPServer)List)BaseCommandCommandError)setup_loggersignalcommandc                       e Zd ZdZd ZdS )ExtensionDebuggingServerzIDuplication of smtpd.DebuggingServer, but using logging instead of print.c                 ,   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.   
z%---------- MESSAGE FOLLOWS ----------z
X-Peer: %sr   z%------------ END MESSAGE ------------N)splitloggerinfo)	selfpeermailfromrcpttosdatakwargs	inheaderslineslines	            h/srv/django_bis/venv311/lib/python3.11/site-packages/django_extensions/management/commands/mail_debug.pyprocess_messagez(ExtensionDebuggingServer.process_message   s    	

4  ;<<< 	 	D  L472333	KK;<<<<<    N)__name__
__module____qualname____doc__r    r   r   r   r      s)        S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   r2   zCommand.add_arguments'   s    f%%%Jc222]De 	 	
 	
 	
 	>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)Nr.   r   )settings
EMAIL_HOSTr6   
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          fd d	           t	          j                     d S )
Nwin32z
CTRL-BREAKz	CONTROL-CzNow accepting mail at r<   z -- use z to quitT)decode_data)sysplatformprintr   asyncoreloop)quit_commandaddrports    r   	inner_runz!Command.handle.<locals>.inner_runN   sg    LG3ETLETTT444Q]Q]Q]^___$dD\4TJJJJMOOOOOr   )django.confr8   getattrstrr   
ValueErrorisdigitr   intr   r   stdoutKeyboardInterrupt)r   r'   argsoptionsr8   rJ   rH   rI   s         @@r   handlezCommand.handle4   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)r6   )r   r   r    r-   rS   r%   r   rM   __annotations__r2   r	   rU   __classcell__)r5   s   @r   r$   r$   !   sy         7D3D(*DI***
 
 
 
 
 " " " ]" " " " "r   r$   )rE   rB   loggingr   smtpdr   typingr   django.core.management.baser   r   "django_extensions.management.utilsr   r	   r   r   r   r$   r"   r   r   <module>r]      s     



                   A A A A A A A A J J J J J J J J	8		= = = = =z = = =$6 6 6 6 6k 6 6 6 6 6r   