403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.217.51
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python313/Lib/test/support/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python313/Lib/test/support/__pycache__/smtpd.cpython-313.opt-2.pyc
�

��iv{��*�SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJrJ	r	 SSK
Jr SSKJ
r
Jr /SQr\R SrSr"SS5r\"5qS	rS
rSrS"S
jr"SS\	R25r"SS\R65r"SS\5r"SS\5r"SS5rSr \!S:Xa�\ "5r"\"RFr#S\#;a3\#RIS5r%\&"\#S\%\'"5\("5S/5r)\#\%S-Sr#OSSK*r)\+"\)\#5r,\,"\"RZ\"R\4\"R^\"R`4\"Rb\"RdS9r3\"Rh(a-SSK5r5\5Rt"S5S r;\Rh"\;5 \Rz"5 gg!\6a& \7"S\RpS9 \Rr"S5 Ngf=f!\<a& \7"S!\RpS9 \Rr"S5 Nnf=f!\>a gf=f)#�N)�asyncore�asynchat)�warn)�
get_addr_spec�get_angle_addr)�SMTPChannel�
SMTPServer�DebuggingServer�	PureProxyzPython SMTP proxy version 0.3c� �\rSrSrSrSrSrg)�Devnull�\c��g�N���self�msgs  �'C:\Python313\\Lib\test\support\smtpd.py�write�
Devnull.write]s��$�c��grr�rs r�flush�
Devnull.flush^s��TrrN)�__name__�
__module__�__qualname__�__firstlineno__rr�__static_attributes__rrrr
r
\s���rr
�
z, i�c��[[[5-[RS9 U(a[U[RS9 [R
"U5 g)N��file)�print�__doc__�globals�sys�stderr�exit)�coders  r�usager.gs3��	�'�G�I�
�C�J�J�/�
�
�c��
�
�#��H�H�T�Nrc��\rSrSrSrSrSr\R"\4Sj5r	\
S5r\SSS4S	jr
S
rSr\
S5r\R"S
5r\
S5r\R"S5r\
S5r\R"S5r\
S5r\R"S5r\
S5r\R"S5r\
S5r\R"S5r\
S5r\R"S5r\
S5r\R"S5r\
S5r\R"S5r\
S5r\R"S5r\
S 5r\R"S!5rS"rS#rS$rS%rS&r S'r!S(r"S)r#S*r$S+r%S,r&S-r'S.r(S/r)S0r*S1r+S2r,S3r-g)4r�nr�ic��U$rr)�xs r�<lambda>�SMTPChannel.<lambda>ss��qrc��[URR55$![a URs$f=fr)�max�command_size_limits�values�
ValueError�command_size_limitrs r�max_command_size_limit�"SMTPChannel.max_command_size_limitus<��	+��t�/�/�6�6�8�9�9���	+��*�*�*�	+�s�"%�>�>NFc�B�[RRXUS9 XlX lX0lX@lX`lXplU(aU(a[S5eU(a!SUl
SUlSUl[UlO%SUl
SUl[S5UlS	UlUR!5 SUlS
UlUR&R)5 [*R,"5UlUR15Ul[=S[?UR25[@S9 URCS
UR.<S[D<35 g![4a9nUR75 UR8[8R::waeSnAgSnAff=f)N��map�Fdecode_data and enable_SMTPUTF8 cannot be set to True at the same timer#�
�.r�
�.�
FzPeer:r%z220 � )#r�
async_chat�__init__�smtp_server�conn�addr�data_size_limit�enable_SMTPUTF8�_decode_datar:�_emptystring�_linesep�_dotsep�NEWLINE�_newline�ord�_set_rset_state�
seen_greeting�
extended_smtpr8�clear�socket�getfqdn�fqdn�getpeername�peer�OSError�close�errno�ENOTCONNr'�repr�DEBUGSTREAM�push�__version__)	r�serverrKrLrMr@rN�decode_data�errs	         rrI�SMTPChannel.__init__|sG�����$�$�T�S�$�9�!���	��	�.��.��'���{��@�A�
A�� "�D��"�D�M��D�L�#�D�M� #�D��#�D�M��t�9�D�L�!�D�M��������"���� � �&�&�(��N�N�$��	�	��(�(�*�D�I�	�g�t�D�I�I��[�9��	�	����K�8�9���	�
�J�J�L��y�y�E�N�N�*����
	�s�<E�
F�%/F�Fc��URUlSUl/UlSUlSUlUR
S5 g)NFrrD)�COMMAND�
smtp_state�mailfrom�rcpttos�require_SMTPUTF8�	num_bytes�set_terminatorrs r�_set_post_data_state� SMTPChannel._set_post_data_state�s8���,�,�����
���� %���������G�$rc�@�UR5 SUl/Ulg�Nr#)rs�
received_data�received_linesrs rrV�SMTPChannel._set_rset_state�s���!�!�#���� ��rc�<�[S[S5 UR$)NzTAccess to __server attribute on SMTPChannel is deprecated, use 'smtp_server' instead��r�DeprecationWarningrJrs r�__server�SMTPChannel.__server�s!���(�);�Q�	@����rc�2�[S[S5 Xlg)NzRSetting __server attribute on SMTPChannel is deprecated, set 'smtp_server' insteadr{r|�r�values  rr~r�s���(�);�Q�	@� �rc�<�[S[S5 UR$)NzUAccess to __line attribute on SMTPChannel is deprecated, use 'received_lines' insteadr{�rr}rxrs r�__line�SMTPChannel.__line�s!���+�,>��	C��"�"�"rc�2�[S[S5 Xlg)NzSSetting __line attribute on SMTPChannel is deprecated, set 'received_lines' insteadr{r�r�s  rr�r��s���+�,>��	C�#�rc�<�[S[S5 UR$)NzRAccess to __state attribute on SMTPChannel is deprecated, use 'smtp_state' insteadr{�rr}rmrs r�__state�SMTPChannel.__state�s���'�(:�A�	?����rc�2�[S[S5 Xlg)NzPSetting __state attribute on SMTPChannel is deprecated, set 'smtp_state' insteadr{r�r�s  rr�r��s���'�(:�A�	?��rc�<�[S[S5 UR$)NzXAccess to __greeting attribute on SMTPChannel is deprecated, use 'seen_greeting' insteadr{�rr}rWrs r�
__greeting�SMTPChannel.__greeting��!���*�+=�q�	B��!�!�!rc�2�[S[S5 Xlg)NzVSetting __greeting attribute on SMTPChannel is deprecated, set 'seen_greeting' insteadr{r�r�s  rr�r������*�+=�q�	B�"�rc�<�[S[S5 UR$)NzSAccess to __mailfrom attribute on SMTPChannel is deprecated, use 'mailfrom' insteadr{�rr}rnrs r�
__mailfrom�SMTPChannel.__mailfrom�s���%�&8�!�	=��}�}�rc�2�[S[S5 Xlg)NzQSetting __mailfrom attribute on SMTPChannel is deprecated, set 'mailfrom' insteadr{r�r�s  rr�r��s���%�&8�!�	=��
rc�<�[S[S5 UR$)NzQAccess to __rcpttos attribute on SMTPChannel is deprecated, use 'rcpttos' insteadr{�rr}rors r�	__rcpttos�SMTPChannel.__rcpttos�s���$�%7��	<��|�|�rc�2�[S[S5 Xlg)NzOSetting __rcpttos attribute on SMTPChannel is deprecated, set 'rcpttos' insteadr{r�r�s  rr�r��s���$�%7��	<��rc�<�[S[S5 UR$)NzTAccess to __data attribute on SMTPChannel is deprecated, use 'received_data' insteadr{�rr}rwrs r�__data�SMTPChannel.__data�r�rc�2�[S[S5 Xlg)NzRSetting __data attribute on SMTPChannel is deprecated, set 'received_data' insteadr{r�r�s  rr�r��r�rc�<�[S[S5 UR$)NzKAccess to __fqdn attribute on SMTPChannel is deprecated, use 'fqdn' insteadr{�rr}r\rs r�__fqdn�SMTPChannel.__fqdn����!�"4�a�	9��y�y�rc�2�[S[S5 Xlg)NzISetting __fqdn attribute on SMTPChannel is deprecated, set 'fqdn' insteadr{r�r�s  rr�r�����!�"4�a�	9��	rc�<�[S[S5 UR$)NzKAccess to __peer attribute on SMTPChannel is deprecated, use 'peer' insteadr{�rr}r^rs r�__peer�SMTPChannel.__peerr�rc�2�[S[S5 Xlg)NzISetting __peer attribute on SMTPChannel is deprecated, set 'peer' insteadr{r�r�s  rr�r�r�rc�<�[S[S5 UR$)NzKAccess to __conn attribute on SMTPChannel is deprecated, use 'conn' insteadr{�rr}rKrs r�__conn�SMTPChannel.__connr�rc�2�[S[S5 Xlg)NzISetting __conn attribute on SMTPChannel is deprecated, set 'conn' insteadr{r�r�s  rr�r�r�rc�<�[S[S5 UR$)NzKAccess to __addr attribute on SMTPChannel is deprecated, use 'addr' insteadr{�rr}rLrs r�__addr�SMTPChannel.__addr"r�rc�2�[S[S5 Xlg)NzISetting __addr attribute on SMTPChannel is deprecated, set 'addr' insteadr{r�r�s  rr�r�'r�rc��[RRU[US-UR(aSOS55 g)NrB�utf-8�ascii)rrHre�bytesrprs  rre�SMTPChannel.push.s4����� � ��u��&�L�T�%:�%:�'��(I�	Jrc��SnURUR:Xa
URnO&URUR:XaURnU(aUR
U:�agU(aU=R
[
U5-
slUR(a&URR[US55 gURRU5 g)Nr�)rmrlr<�DATArMrq�lenrOrx�append�str)r�data�limits   r�collect_incoming_data�!SMTPChannel.collect_incoming_data3s������?�?�d�l�l�*��/�/�E�
�_�_��	�	�
)��(�(�E��T�^�^�e�+��
��N�N�c�$�i�'�N�������&�&�s�4��'9�:����&�&�t�,rc�@�URRUR5n[S[	U5[
S9 /UlURUR:XGaURSso lU(dURS5 gUR(d[US5nURS5nUS:aUR5nSnO(USUR5nXS-SR5nUR(aUR UOUR"nX&:�aURS5 g[%US	U-S5nU(dURS
U-5 gU"U5 gURUR&:waURS5 SUlgUR((a3URUR(:�aURS5 SUlg/nUR+UR,5HDn	U	(a)U	SUR.:XaUR1U	SS5 M3UR1U	5 MF UR2RU5UlUR6UR8UR:UR44n
0nUR(dUR<UR>S
.nUR@RB"U
0UD6nURE5 U(dURS5 gURU5 g)NzData:r%rz500 Error: bad syntaxr�rGr1z500 Error: line too long�smtp_z&500 Error: command "%s" not recognizedz451 Internal confusionz552 Error: Too much mail data)�mail_options�rcpt_options�250 OK)#rP�joinrxr'rcrdrmrlrqrerOr��find�upper�striprXr8r;�getattrr�rM�splitrQrRr�rTrwr^rnror�r�rJ�process_messagers)
r�line�sz�i�command�arg�max_sz�methodr��text�args�kwargs�statuss
             r�found_terminator�SMTPChannel.found_terminatorCs���� � �%�%�d�&9�&9�:��
�g�t�D�z��4� ����?�?�d�l�l�*�!%�����B����	�	�1�2���$�$��4��)���	�	�#��A��1�u��*�*�,�����r��(�.�.�*���Q�3�4�j�&�&�(���-�-��.�.�w�7�37�3J�3J�
��{��	�	�4�5���T�7�W�#4�d�;�F���	�	�B�W�L�M���3�K�����$�)�)�+��	�	�2�3�!"�����#�#�����9M�9M�(M��	�	�9�:�!"�����D��
�
�4�=�=�1���D��G�t�|�|�3��K�K��Q�R��)��K�K��%�	2�
"&���!3�!3�D�!9�D���I�I�t�}�}�d�l�l�D�<N�<N�O�D��F��$�$�$(�$5�$5�$(�$5�$5����%�%�5�5�t�F�v�F�F��%�%�'���	�	�(�#��	�	�&�!rc���U(dURS5 gUR(aURS5 gUR5 XlURSUR-5 g)Nz501 Syntax: HELO hostname�503 Duplicate HELO/EHLOz250 %s)rerWrVr\�rr�s  r�	smtp_HELO�SMTPChannel.smtp_HELO�sU����I�I�1�2������I�I�/�0������ ���	�	�(�T�Y�Y�&�'rc�V�U(dURS5 gUR(aURS5 gUR5 XlSUlURSUR-5 UR
(a5URSUR
-5 URS==S-
ss'UR(dURS5 UR(a(URS	5 URS==S
-
ss'URS5 g)Nz501 Syntax: EHLO hostnamer�Tz250-%sz250-SIZE %s�MAIL�z250-8BITMIMEz250-SMTPUTF8�
z250 HELP)	rerWrVrXr\rMr8rOrNr�s  r�	smtp_EHLO�SMTPChannel.smtp_EHLO�s�����I�I�1�2������I�I�/�0������ ��!����	�	�(�T�Y�Y�&�'�����I�I�m�d�&:�&:�:�;��$�$�V�,��2�,�� � ��I�I�n�%�����I�I�n�%��$�$�V�,��2�,��	�	�*�rc�X�U(aURS5 gURS5 g)Nz501 Syntax: NOOPr��rer�s  r�	smtp_NOOP�SMTPChannel.smtp_NOOP�s����I�I�(�)��I�I�h�rc�F�URS5 UR5 g)Nz221 Bye)re�close_when_doner�s  r�	smtp_QUIT�SMTPChannel.smtp_QUIT�s���	�	�)�����rc�l�[U5nUSUR5U:XaX#SR5$grv)r�r�r�)r�keywordr��keylens    r�_strip_command_keyword�"SMTPChannel._strip_command_keyword�s8���W����w��<����7�*��w�<�%�%�'�'�rc��U(dgUR5RS5(a[U5up#O
[U5up#U(dX#4$URU4$)N)r#r#�<)�lstrip�
startswithrr�	addr_spec)rr��address�rests    r�_getaddr�SMTPChannel._getaddr�sU�����:�:�<�"�"�3�'�'�*�3�/�M�G�T�)�#�.�M�G���=� �� � �$�&�&rc��0nUHInURS5up4nUR5(aU(a	U(d gU(aUOSX#'MK U$)N�=T)�	partition�isalnum)r�params�result�param�eqr�s      r�
_getparams�SMTPChannel._getparams�sJ�����E�$���s�3��E�u��=�=�?�?�b���%'�E�T�F�M�	�
�
rc��U(Ga*SnUR5nUS:XaURS5 gUS:XaURS5 gUS:Xa)SnUR(aXB-
nURU5 gUS:Xa)S	nUR(aXB-
nURU5 gUS
:XaURS5 gUS:XaURS
5 gUS:XaURS5 gUS:XaURS5 gUS:XaURS5 gURS5 gURS5 g)N� [SP <mail-parameters>]�EHLOz250 Syntax: EHLO hostname�HELOz250 Syntax: HELO hostnamer�z 250 Syntax: MAIL FROM: <address>�RCPTz250 Syntax: RCPT TO: <address>r�z250 Syntax: DATA�RSETz250 Syntax: RSET�NOOPz250 Syntax: NOOP�QUITz250 Syntax: QUIT�VRFYz250 Syntax: VRFY <address>zD501 Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFYzD250 Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFY)r�rerX)rr��extended�lc_argrs     r�	smtp_HELP�SMTPChannel.smtp_HELP�s���0�H��Y�Y�[�F�����	�	�5�6��6�!��	�	�5�6��6�!�8���%�%��O�C��	�	�#���6�!�6���%�%��O�C��	�	�#���6�!��	�	�,�-��6�!��	�	�,�-��6�!��	�	�,�-��6�!��	�	�,�-��6�!��	�	�6�7��	�	�5�6�
�I�I�,�
-rc��U(aAURU5up#U(aURS5 gURSU-5 gURS5 g)NzB252 Cannot VRFY user, but will accept message and attempt deliveryz502 Could not VRFY %sz501 Syntax: VRFY <address>)r�re)rr�r�rs    r�	smtp_VRFY�SMTPChannel.smtp_VRFY�sJ���"�m�m�C�0�O�G���	�	�1�2��	�	�1�C�7�8��I�I�2�3rc�8�UR(dURS5 g[SU[S9 SnUR(aUS-
nUcURU5 gURSU5nUR
U5up4U(dURU5 gUR(dU(aURU5 gUR(aURS5 gUR5R5Ul
URUR5nUcURU5 gUR(d*URSS	5nUS
;aURS5 gUR(a6URSS
5nUSLaSUlOUS
LaURS5 gURSS5nU(acUR!5(dURU5 gUR"(a+[%U5UR":�aURS5 g['UR)55S:�aURS5 gX0l[SUR[S9 URS5 g)N�503 Error: send HELO firstz	===> MAILr%z 501 Syntax: MAIL FROM: <address>rzFROM:z503 Error: nested MAIL command�BODY�7BIT)r�8BITMIMEz1501 Error: BODY can only be one of 7BIT, 8BITMIME�SMTPUTF8FTz&501 Error: SMTPUTF8 takes no arguments�SIZEz:552 Error: message size exceeds fixed maximum message sizerz:555 MAIL FROM parameters not recognized or not implementedzsender:r�)rWrer'rdrXr�r�rnr�r�r�r	rO�poprNrp�isdigitrM�intr��keys)rr��	syntaxerrr�r�body�smtputf8�sizes        r�	smtp_MAIL�SMTPChannel.smtp_MAIL�s���!�!��I�I�2�3��
�k�3�[�1�6�	�����2�2�I��;��I�I�i� ���)�)�'�3�7���-�-��,�����I�I�i� ���!�!�f��I�I�i� ���=�=��I�I�6�7��"�L�L�N�0�0�2�������!2�!2�3���>��I�I�i� ��� � ��:�:�f�f�-�D��/�/��	�	�M�N������z�z�*�e�4�H��4��(,��%���&��	�	�B�C���z�z�&�$�'����<�<�>�>��	�	�)�$���%�%�#�d�)�d�6J�6J�*J��	�	�V�W���v�{�{�}���!��I�I�R�S���
�
�i����[�9��	�	�(�rc�f�UR(dURS5 g[SU[S9 UR(dURS5 gSnUR
(aUS-
nUcURU5 gUR
SU5nURU5up4U(dURU5 gUR
(dU(aURU5 gUR5R5Ul
URUR5nUcURU5 g[UR55S:�aURS	5 gURRU5 [S
UR[S9 URS5 g)Nrz	===> RCPTr%z503 Error: need MAIL commandz501 Syntax: RCPT TO: <address>rzTO:rz8555 RCPT TO parameters not recognized or not implementedzrecips:r�)rWrer'rdrnrXr�r�r�r�r�r	r�r%ror�)rr�r&r�rs     r�	smtp_RCPT�SMTPChannel.smtp_RCPT.sI���!�!��I�I�2�3��
�k�3�[�1��}�}��I�I�4�5��4�	�����2�2�I��;��I�I�i� ���)�)�%��5���-�-��,�����I�I�i� ���!�!�f��I�I�i� ��"�L�L�N�0�0�2�������!2�!2�3���>��I�I�i� ���v�{�{�}���!��I�I�P�Q�������G�$�
�i����K�8��	�	�(�rc�x�U(aURS5 gUR5 URS5 g)Nz501 Syntax: RSETr�)rerVr�s  r�	smtp_RSET�SMTPChannel.smtp_RSETQs-����I�I�(�)�������	�	�(�rc�(�UR(dURS5 gUR(dURS5 gU(aURS5 gURUlURS5 URS5 g)Nrz503 Error: need RCPT commandz501 Syntax: DATAs
.
z#354 End data with <CR><LF>.<CR><LF>)rWreror�rmrrr�s  r�	smtp_DATA�SMTPChannel.smtp_DATAXsk���!�!��I�I�2�3���|�|��I�I�4�5����I�I�(�)���)�)������L�)��	�	�7�8rc�&�URS5 g)Nz502 EXPN not implementedr�r�s  r�	smtp_EXPN�SMTPChannel.smtp_EXPNgs���	�	�,�-r)rOrRrPrQrTrLrKrMrNrXr\r�rnrqr^r�rorwrxrprWrJrm).rrrr rlr�r;�collections�defaultdictr8�propertyr<�DATA_SIZE_DEFAULTrIrsrV�_SMTPChannel__server�setter�_SMTPChannel__line�_SMTPChannel__state�_SMTPChannel__greeting�_SMTPChannel__mailfrom�_SMTPChannel__rcpttos�_SMTPChannel__data�_SMTPChannel__fqdn�_SMTPChannel__peer�_SMTPChannel__conn�_SMTPChannel__addrrer�r�r�r�r�r�r�r�r	rrr*r-r0r3r6r!rrrrrns����G��D���%�1�1�;M�2P�Q��
�+��+�<M��5�e�%:�N%�!�� �� ��_�_�!��!�
�#��#��]�]�$��$�
����
�^�^� �� �
�"��"����#��#�
����������
����������
�"��"��]�]�#��#�
�����]�]����
�����]�]����
�����]�]����
�����]�]����J�

-� ;"�|
(��, ��
�	'�	�!-�F	4�4�l!�F�9�.rrc�6�\rSrSr\r\SSS4SjrSrSr	Sr
g)r	ikNFc	�r�XlX lX0lXPlX`lU(aU(a[S5e[RRXS9 [R"US[R06nURUSSUSS5 UR5 URU5 URS5 [!UR"R$<S[&R("[&R&"55<SU<S	U<3[*S
9 g! UR-5 e=f)NrAr?�typerr1�z started at z
	Local addr: z
	Remote addr:r%)�
_localaddr�_remoteaddrrMrNrOr:r�
dispatcherrIrZ�getaddrinfo�SOCK_STREAM�
create_socket�set_reuse_addr�bind�listenr'�	__class__r�time�ctimerdr`)r�	localaddr�
remoteaddrrMr@rNrh�gai_resultss        rrI�SMTPServer.__init__os��$��%��.��.��'���{��@�A�
A����$�$�T�$�3�	:� �,�,�i�F�28�2D�2D�F�K����{�1�~�a�0�+�a�.��2C�D����!��I�I�i� ��K�K��N�

����'�'����D�I�I�K�)@��:�'�-8�
:��		��J�J�L��s
�A4D#�#D6c	��[S[U5-[S9 URUUUURUR
URUR5ng)NzIncoming connection from %sr%)r'rcrd�
channel_classrM�_maprNrO)rrKrL�channels    r�handle_accepted�SMTPServer.handle_accepted�sP��
�+�d�4�j�8�{�K��$�$�T�%)�%)�%)�%9�%9�%)�Y�Y�%)�%9�%9�%)�%6�%6�
8�rc��[er)�NotImplementedError�rr^rnror�r�s      rr��SMTPServer.process_message�s
��>"�!r)rOrLrMrMrN)rrrr rr]r;rIr`r�r!rrrr	r	ks"���M�"3��!&�E�:�88�"rr	c� �\rSrSrSrSrSrg)r
i�c�4�SnUR5nUH�nU(aKU(dDSUS-n[U[5(d[UR	S55n[U5 Sn[U[5(d[U5n[U5 M� g)Nr1zX-Peer: rr�)�
splitlines�
isinstancer�rc�encoder')rr^r��	inheaders�linesr��
peerheaders       r�_print_message_content�&DebuggingServer._print_message_content�s|���	����!���D���'�$�q�'�1�
�!�$��,�,�!%�j�&7�&7��&@�!A�J��j�!��	��d�C�(�(��D�z���$�K�rc��[S5 U(aNURS5(a[SUS-5 URS5(a[SUS-5 URX5 [S5 g)Nz%---------- MESSAGE FOLLOWS ----------r�zmail options: %sr�zrcpt options: %s
z%------------ END MESSAGE ------------)r'�getrnrds      rr��DebuggingServer.process_message�si��
�5�6���z�z�.�)�)��(�6�.�+A�A�B��z�z�.�)�)��*�V�N�-C�C�D��#�#�D�/�
�5�6rrN)rrrr rnr�r!rrrr
r
�s���"7rr
c�4^�\rSrSrU4SjrSrSrSrU=r$)ri�c�d>�SU;aUS(a[S5e[[U]"U0UD6 g)NrNz$PureProxy does not support SMTPUTF8.)r:�superrrI)rr�r�rUs   �rrI�PureProxy.__init__�s3�����&�6�2C�+D��C�D�D�
�i��'��8��8rc���URS5nSnUHnU(d O	US-
nM URUSUS-5 [RU5nUR	X#U5n[SU[S9 g)Nr"rr1z
X-Peer: %szwe got some refusals:r%)r��insertrSr��_deliverr'rd)	rr^rnror�rlr�r��refuseds	         rr��PureProxy.process_message�sr���
�
�4� ��
���D���
��F�A��	���Q��t�A�w�.�/��|�|�E�"���-�-��4�8��
�%�w�[�Arc�,�SSKn0nUR5nURURSURS5 UR	XU5nUR5 U$!UR5 f=f!URa%n[S[S9 URnSnAU$SnAf[UR4aLn[SUR[S9 [USS5n[USS	5n	UHn
X�4XZ'M
 SnAU$SnAff=f)
Nrr1zgot SMTPRecipientsRefusedr%�got�	smtp_code����
smtp_error�ignore)�smtplib�SMTP�connectrM�sendmail�quit�SMTPRecipientsRefusedr'rd�
recipientsr_�
SMTPExceptionrUr�)rrnror�r�rz�s�e�errcode�errmsg�rs           rry�PureProxy._deliver�s������	/�����A�
�I�I�d�&�&�q�)�4�+;�+;�A�+>�?�
��*�*�X��=���������������,�,�	#��-�K�@��l�l�G������.�.�/�	/��%����;�7��a��b�1�G��Q��h�7�F���%�.��
�����	/�s<�<A>�A)�A>�)A;�;A>�>D�B.�.D�AD�Dr)	rrrr rIr�ryr!�
__classcell__)rUs@rrr�s���9�
B��rrc�$�\rSrSrSrSrSrSrSrg)�OptionsiTrNFr)	rrrr �setuid�	classname�
size_limitrNr!rrrr�r�s��
�F��I��J��Orr�c��[R"[RSSS/SQ5up[5nWH�upEUS;a
[	S5 MUS;a'[
[5 [R"S5 MEUS;a	SUl	MTUS	;aXSl
MbUS
;a[RqMzUS;a	SUl
M�US
;dM�[U5nXclM� [!W5S:aSnSnOS[!U5S:aUSnSnO<[!U5S:aUSnUSnO"[	SS["R%U5-5 WR'S5n	U	S:a[	SSU-5 USU	Ul[XyS-S5UlWR'S5n	U	S:a[	SSU-5 USU	Ul[X�S-S5UlU$![Ran[	SU5 SnAGN�SnAff=f! [
SU-[RS9 [R"S5 GM=f![,a [	SSU-5 N�f=f![,a [	SSU-5 U$f=f)Nr1z	nVhc:s:du)zclass=�nosetuid�version�helpzsize=�debugr()z-hz--helpr)z-Vz	--version)z-nz
--nosetuidF)z-cz--class)z-dz--debug)z-uz
--smtputf8T)z-sz--sizezInvalid size: r%zlocalhost:8025zlocalhost:25r{�zInvalid arguments: %s�:zBad local spec: %szBad local port: %szBad remote spec: %szBad remote port: %s)�getoptr*�argv�errorr.r�r'rfr,r�r�r+rdrNr$r�r��
COMMASPACEr�r��	localhost�	localportr:�
remotehost�
remoteport)
�optsr�r��options�optr��int_size�	localspec�
remotespecr�s
          r�	parseargsr�
se����]�]��H�H�Q�R�L�+�
��
���i�G�����"�"��!�H�
�'�
'��+���H�H�Q�K�
�(�
(�"�G�N�
�%�
%� #��
�%�
%��*�*�K�
�(�
(�&*�G�#�
�$�
$�
��s�8��%-�"�#�.�4�y�1�}�$�	�#�
�	�T��Q����G�	�#�
�	�T��Q����G�	��!�W�
�
�a�(�:�?�?�4�+@�@�A�	���s��A��1�u�
�a�%�	�1�2�!�"�1�
�G��3��	�A�#�$��0���	�����A��1�u�
�a�&��3�4�#�B�Q��G��5� ��a�C�D�!1�2����N��q�<�<��
�a�������,
��&��,�3�:�:�>��������,�3�
�a�%�	�1�2�3���5�
�a�&��3�4��N�5�sG�-G�
H�:H?�I�H�+G=�=H�3H<�?I�I�I;�:I;�__main__rCr1)rNz7Cannot import module "pwd"; try running with -n option.r%�nobodyr{z3Cannot setuid "nobody"; try running with -n option.)r#)?r*�osrar�rVrZr8�test.supportrr�warningsr�email._header_value_parserrr�__all__r��programrfr
rdrSr�r;r.rHrrNr	r
rr�r�rr�r��rfind�lastdot�
__import__r)�locals�modr�r��class_r�r�r�r�r�rN�proxyr��pwd�ImportErrorr'r+r,�getpwnamr��PermissionError�loop�KeyboardInterruptrrr�<module>r�s"��R�	��
��
��+��D����(�(�1�+��-����
�i��
��
�
����z.�(�%�%�z.�zJ"��$�$�J"�Z7�j�7�<*�
�*�Z��?�D�z���k�G��!�!�I�
�i���/�/�#�&����8�G�,�g�i���B�4�H���g�a�i�j�)�	��
�S�)�
$�F��G�%�%�w�'8�'8�9��&�&��(:�(:�;��%�%�w�7N�7N�
P�E��~�~�	�����h�'��*��	��I�I�f��
��
�
��7��"�	��K�RU�R\�R\�]��H�H�Q�K�	���	��G�c�j�j�Y��H�H�Q�K�	��
�
��
�s6�+F+�G�H	�+)G�G�)H�H�	H�H

Youez - 2016 - github.com/yon3zu
LinuXploit