403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.202
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 :  /Python315/Lib/test/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /Python315/Lib/test/__pycache__/test_smtplib.cpython-315.opt-2.pyc
R
>lqj_�c�z�]PHs]PHs]QHGs]QHGs]PH s]PH$s	]PH(s
]PH,s]PH0s]PH4s
]PH8s]PH<s]PH@s]PHDs]PHHs]PHLs]PHPs]PHTs]PHXGs]QH`GsGs]QHlGs]QHlGs]QHlGs]QHlGs]QHlG s ]Q	HXG!s!\ODP	Q
5\OFs#\OHQ6XcQs%\%\ OLm%Q
s'QQ2s(QQ\(\OR2s*QQ\(\OR2s+Qs,Qs-Qs.QQ\OR2s/QQ\OR2s0QQ\OR2s1QQ\OR2s2QQ \OR2s3Q!Q"Q#Q$Q%Q&-s4Q?s5Q's6Q(Q!Q%,Q)Q#,-s7Q*Q+\82s9Q,Q-\ OL2s:Q.Q/\ Ov2s<Q0Q1\OR2s=Q2Q3\<2s>Q4Q5\OR2s?\Q6PQ75s@Q8Q9\:2sAQ:Q;\<2sBQ<Q=\OR2sC\DQ>6Xc\O�2P!P!)@�)�EmailMessage)�body_encode)�support�mock_socket)�hashlib_helper)�
socket_helper)�threading_helper)�asyncore)�smtpd)�Mock)�module�darwinc��P!�N���selfs&�&C:\Python315\\Lib\test\test_smtplib.py�handle_exptr%s���c���UO2UO2UO2vq4QoU%cLU]6�cE[O,U,,2vqgoU%cUO	U2o	VPoU]*oJSUO2UO2UO2P![cK/h9hSO2SO2h9h)��)�listen�set�accept�select�send�close�TimeoutError)
�evt�buf�serv�conn�addr�n�r�w�e�sents
&&&       r�serverr)*s����K�K�M��G�G�I���[�[�]�
��
���a�!�e��m�m�B����3�G�A�!���y�y��~���%�j��
��F�A��
�
���
�
�����	���
��
��	
�
�
�����	�s?�B<�	C
�C
�#C
�*0C
�<	C
�C
�C
�	C
�
C
�
"C/c�p`�\sQs]@snQsQsQsQsQsQs	Qs
QsQ	sQ
s
QsQsQ
sQsUsP!)�GeneralTestsc�4�[[m]UmP!)�)r�smtplib�socket�portrs&r�setUp�GeneralTests.setUpBs��$�����	rc�&�[[mP!r)r/r.rs&r�tearDown�GeneralTests.tearDownFs	����rc�\�QoQoUOU[OU22P!)zabc
.jkl
foo
..bluezabc
..jkl
foo
...blue)�assertEqualr.�	quotedata)r�teststr�expecteds&  r�
testQuoteData�GeneralTests.testQuoteDataKs'��-��3������7�#4�#4�W�#=�>rc��[OQ2UO[UO2oUO2P!��220 Hola mundo�r�
reply_with�client�HOSTr0r�rrBs& r�
testBasic1�GeneralTests.testBasic1Ps.�����0�1����T�4�9�9�-�����rc���[OQ2UO[UOQQ5oUOUOQ2UO2P!)r?)�source_address)z	127.0.0.1i�M)rrArBrCr0r7rHrrDs& r�testSourceAddress�GeneralTests.testSourceAddressVsP�����0�1����T�4�9�9�,?��A������.�.�0D�E����rc��[OQ2UO[8QUO802oUO2P!)r?�:r@rDs& r�
testBasic2�GeneralTests.testBasic2^s1�����0�1�����d�i�i�8�9�����rc���[OQ2UO[UOQQ5oUOUOQ2UO2P!)r?�testhost)�local_hostname)rrArBrCr0r7rQrrDs& r�testLocalHostName�GeneralTests.testLocalHostNamedsH�����0�1����T�4�9�9�Z��H������.�.�
�;����rc�
�[OQ2UO[O22[O]2UO[O2]2UO
[UO2o[OP2UOUOO2]2UO2P![OP2h9hr>)rrA�assertIsNone�getdefaulttimeout�setdefaulttimeoutr7rBrCr0�sock�
gettimeoutrrDs& r�testTimeoutDefault�GeneralTests.testTimeoutDefaultks������0�1����+�7�7�9�:��%�%�b�)�����6�6�8�"�=�	0��[�[��t�y�y�1�F��)�)�$�/�������/�/�1�2�6������
�)�)�$�/�s�8 C*�*Dc���[OQ2UO[O22[O
]2UO
[UOPQ5o[O
P2UOUOO22UO2P![O
P2h9h�r?��timeout)rrArUr/rVrWrBrCr0rXrYrrDs& r�testTimeoutNone�GeneralTests.testTimeoutNonews������0�1����&�2�2�4�5�� � ��$�	+��[�[��t�y�y�$�[�?�F��$�$�T�*����&�+�+�0�0�2�3������
�$�$�T�*�s�"C�Cc���[OQ2UO[29^tt^2UO	[
UO]Q5PPP2P!)%fhP!9hr])rrA�assertRaises�
ValueErrorrBrCr0rs&r�testTimeoutZero�GeneralTests.testTimeoutZero�sG�����0�1�
�
�
�z�
*�
*��K�K��d�i�i��K�3�+�
*�
*�
*�s�#A"�"A3	�+A3	c���[OQ2UO[UO]Q5oUOUOO2]2UO2P!r])	rrArBrCr0r7rXrYrrDs& r�testTimeoutValue�GeneralTests.testTimeoutValue�sO�����0�1����T�4�9�9�b��9��������/�/�1�2�6����rc���[OQ2UO2oUO]2[O
29^tt^2oUO
[UO2PPP2UO2[OQ[O2oUOWO2U2P!)%fhKg9h)�220 Hello worldz	^connect:�rrArB�set_debuglevelr�captured_stderr�connectrCr0r�re�compile�	MULTILINE�assertRegex�getvalue�rrB�stderrr:s&   r�test_debuglevel�GeneralTests.test_debuglevel�s������1�2���������a� �
�
$�
$�
&�
&�&��N�N�4����+�'������:�:�l�B�L�L�9��������*�H�5�	'�
&���!C�C&	�C&	c���[OQ2UO2oUO]2[O
29^tt^2oUO
[UO2PPP2UO2[OQ[O2oUOWO2U2P!)%fhKg9h)rkz#^\d{2}:\d{2}:\d{2}\.\d{6} connect: rlrus&   r�test_debuglevel_2�GeneralTests.test_debuglevel_2�s������1�2���������a� �
�
$�
$�
&�
&�&��N�N�4����+�'������:�:�D� �l�l�,��������*�H�5�'�
&�ry)r0)�__name__�
__module__�__qualname__�__firstlineno__r1r4r;rErIrMrRrZr`rerhrwr{�__static_attributes__�__classdictcell__��
__classdict__s@rr+r+@sK����� �
?�
����
�	�4�
�6�	6�	6rr+c�0�\sQs]�s\O
sQsP!)�SMTPGeneralTestsr)r}r~rr�r.�SMTPrBr�rrrr�r��s��
�\�\�Frr�c�``�\sQs]�sn\O
s\O\	\
Q2Q2Q2sU1QksQs
UsU9s!)�LMTPGeneralTests�AF_UNIXz test requires Unix domain socketc�D�Qo[OQ2UOVO2o[OP2UOUOO22UO2P![OP2h9h)�!/some/local/lmtp/delivery/programrk)	rrArBr0rWrUrXrYr)r�
local_hostrBs&  r�"testUnixDomainSocketTimeoutDefault�3LMTPGeneralTests.testUnixDomainSocketTimeoutDefault�sq��8�
����1�2�	0��[�[��Y�Y�7�F��)�)�$�/����&�+�+�0�0�2�3������
�)�)�$�/�s�B�Bc��:�[RU_2QoUO[29^tt^2UO	U]Q5PPP2P!)%fhP!9h)r�r^)�superrercrdrB)rr��	__class__s& �rre� LMTPGeneralTests.testTimeoutZero�sC���
���!�8�
�
�
�
�z�
*�
*��K�K�
�A�K�.�+�
*�
*�
*�s�A�A	�A	r)r}r~rr�r.�LMTPrB�unittest�
skipUnless�hasattrr/r�rer�r��
__classcell__�r�r�s@@rr�r��s@����
�\�\�F�
������3�5W�X��Y��/�/rr�c��UO2[[Q2%c[OoL[O
oQo[O%cQU]6�cJUQ[O2UO2%cUO2LU]*oJfUO2%f'[OQ2UO2[O2UO2P![cKph9hSO2%f'[OQ2SO2[O2SO2h9h)�poll���{�G�z�?g�?)
rr�rr	�poll2r��
socket_map�is_setrr�time�sleep�	close_all)r!�serv_evt�
client_evt�poll_funr$s&&&  r�debugging_serverr��s���L�L�N���6�6�"�"��~�~�H��}�}�H����!�!�!�a�!�e��T�8�.�.�/�� � �"�"��
�
���
��F�A�
� � �"�"��J�J�s�O��J�J�L�����������
��
��� � �"�"��J�J�s�O��J�J�L���������sS�D�8D�"D�),D�D�&D&�'D�	D#�D#� D&�"D#�#D&�&F	�=AF	z&---------- MESSAGE FOLLOWS ----------
z&------------ END MESSAGE ------------
c��`�\sQs]�snPsQsQsQsQsQs	Qs
QsQsQ	s
Q
sQsQsQ
sQsQsQsQsQsQsQsQsQsQsQsQsQsQsUs P!)�DebuggingServerTestsc���[O2Um[OUm[O[m[OUm	[O2UmUO[m[O2Um[O2Um["O$Um[O2["m["O([*]1QP	Q5UmUO,OO/2Q*vUmUmUO,UOUO 1o[O4[6UQ5UmUO8O;2UOO=2UOO?2P!)r��decode_data:N�N��target�args��nowhere���) r�threading_setup�
thread_keyr/�getfqdn�real_getfqdnr�sys�stdout�
old_stdout�io�StringIO�output�	threading�Eventr�r�r
�DEBUGSTREAM�old_DEBUGSTREAM�DebuggingServerrCr!�getsockname�hostr0�Threadr��thread�start�wait�clear�r�	serv_argss& rr1�DebuggingServerTests.setUp�s*��*�:�:�<���"�N�N���$�,�,����*�*����k�k�m����[�[��
�!���)��
�#�/�/�+���$�0�0����K�K�M����)�)�4��)�_�6:�<��	� $�y�y�/�/�;�;�=�b�A���	�4�9��Y�Y��
�
�t���?�	��&�&�.>�Y�O���������	
�
�
�����
�
���rc���UO[mUOO	2UO
O
2[OUO2UO[m[OO2UO [mU;	UO#2[O$UO&P!r)r�r/r�r�rr�r�r�join_threadr�r�r�r�r
r�rr��
doCleanups�threading_cleanupr�rs&rr4�DebuggingServerTests.tearDowns����*�*����������
�
�����$�$�T�[�[�1��_�_��
�
�����!� �0�0����K������*�*�D�O�O�<rc��UOO2o[OQQU[O[O
*Q5!)z(.*?)^X-Peer:\s*\S+\n(.*)z\1\2)�flags)r�rtrp�subrr�DOTALL)r�test_outputs& r�get_output_without_xpeer�-DebuggingServerTests.get_output_without_xpeers>���k�k�*�*�,���v�v�2�G�!����b�i�i�)?�A�	Arc��[O[UOQ[O
Q5oUO
2P!��	localhost�rQr_�r.r�rCr0r�LOOPBACK_TIMEOUT�quit�r�smtps& r�	testBasic�DebuggingServerTests.testBasic�,���|�|�D�$�)�)�K�$+�$<�$<�>���	�	�rc�:�[O2o[OUOUO
Q[OUOU1Q5oUOUO2UOUOUOU12UOUOQ2UO2P![c>oSO[O 6XcSO#QS*2gPo=hh9h)r�)rQr_rHzcouldn't bind to source port %d)r�find_unused_portr.r�r�r0rr��
addCleanuprr7rHrQr��OSError�errno�
EADDRINUSE�skipTest)r�src_portr�r's&   rrI�&DebuggingServerTests.testSourceAddress s��� �1�1�3��	��<�<��	�	�4�9�9�[�(/�(@�(@�04�	�	�8�/D�F�D�
�O�O�D�J�J�'����T�0�0�4�9�9�h�2G�H����T�0�0�+�>��I�I�K���	��w�w�%�*�*�*��
�
�?�(�J�K���	�s$�B8C�	D�D�D�<D�Dc��[O[UOQ[O
Q5oUO
UO2QoUOUO2U2UO2P!�r�r���sOK)r.r�rCr0rr�r�rr7�noopr��rr�r:s&  r�testNOOP�DebuggingServerTests.testNOOP0�W���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#����������h�/��	�	�rc��[O[UOQ[O
Q5oUO
UO2QoUOUO2U2UO2P!r�)r.r�rCr0rr�r�rr7�rsetr�r�s&  r�testRSET�DebuggingServerTests.testRSET8r�rc��[O[UOQ[O
Q5oUO
UO2QoUOUO2U2UO2P!)r�r�)r�s
SIZE 33554432
HELP)r.r�rCr0rr�r�rr7�ehlor�r�s&  r�testELHO�DebuggingServerTests.testELHO@sW���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#�2���������h�/��	�	�rc�0�[O[UOQ[O
Q5oUO
UO2QoUOQ2UOUO2U2UO2P!)r�r��EXPN)�sEXPN not implemented)r.r�rCr0rr�r�r�putcmdr7�getreplyr�r�s&  r�testEXPNNotImplemented�+DebuggingServerTests.testEXPNNotImplementedIsc���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#�1�����F���������(�3��	�	�rc��[O[UOQ[O
Q5oUO
UO2UO[29^tt^2oUOQ2PPP2UOQ[WO22UO2P!)%fhKG9h)r�r�zhelo
X-INJECTED�prohibited newline characters)r.r�rCr0rr�r�rrcrdr�assertIn�str�	exceptionr�)rr��excs&  r�&test_issue43124_putcmd_escapes_newline�;DebuggingServerTests.test_issue43124_putcmd_escapes_newlineSs����|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#�
�
�
�z�
*�
*�c��K�K�*�+�+��
�
�5�s�3�=�=�7I�J��	�	��+�
*�s�0C�C	�
C	c�R�[O[UOQ[O
Q5oUO
UO2QoUOUOQ2U2UOUOQ2U2UO2P!)r�r��nobody@nowhere.com)�s>Cannot VRFY user, but will accept message and attempt delivery)r.r�rCr0rr�r�rr7�vrfy�verifyr�r�s&  r�testVRFY�DebuggingServerTests.testVRFY]sw���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#�2��������#7�8�(�C�������%9�:�H�E��	�	�rc�.�[O[UOQ[O
Q5oUO
UO2UO2QoUOUO2U2UO2P!)r�r�)�sDuplicate HELO/EHLO)r.r�rCr0rr�r�r�helor7r�r�s&  r�testSecondHELO�#DebuggingServerTests.testSecondHELOgsb���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��	�	��0���������h�/��	�	�rc�
�[O[UOQ[O
Q5oUO
UO2UOUO2Q2UO2P!)r�r�s@Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFY)r.r�rCr0rr�r�rr7�helpr�r�s& r�testHELP�DebuggingServerTests.testHELPrsY���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��������'G�	H��	�	�rc�8�Qo[O[UOQ[O
Q5oUO
UO2UOQQU2[OQ2UO2UOO2UOO2UO O#2[$8U8Q[&80oUO)UO O+2U2P!)�A test messager�r��John�Sallyr��
�r.r�rCr0rr�r�r�sendmailr�r�r�r�rr�r�r��flush�	MSG_BEGIN�MSG_ENDr7rt�r�mr��mexpects&   r�testSend�DebuggingServerTests.testSendzs������|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��
�
�f�g�q�)�	
�
�
�4���	�	���������
�
���������� )�1�g�6��������-�-�/��9rc�V�Qo[O[UOQ[O
Q5oUO
UO2UOQQU2[OQ2UO2UOO2UOO2UO O#2[$8UO'Q28Q[(80oUO+UO O-2U2P!)sA test messager�r�r r!r��asciir")r.r�rCr0rr�r�rr$r�r�r�r�rr�r�r�r%r&�decoder'r7rtr(s&   r�testSendBinary�#DebuggingServerTests.testSendBinary�s������|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��
�
�f�g�q�)��
�
�4���	�	���������
�
���������� )�1�8�8�G�+<�g�F��������-�-�/��9rc�8�Qo[O[UOQ[O
Q5oUO
UO2UOQQU2[OQ2UO2UOO2UOO2UO O#2[$8U8Q[&80oUO)UO O+2U2P!)z.A test
.mes.sage.r�r�r r!r�r"r#r(s&   r�testSendNeedingDotQuote�,DebuggingServerTests.testSendNeedingDotQuote�s���!���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��
�
�f�g�q�)��
�
�4���	�	���������
�
���������� )�1�g�6��������-�-�/��9rc�<�Qo[O[UOQ[O
Q5oUO
UO2UO[29^tt^2oUOQQU2PPP2UOQ[WO22[OQ2UO!2["O$O'2oUO)QU2P!)%fhK�9h)�wazzuuup
linetwoz
hi
X-INJECTEDr��	hi@me.com�
you@me.comz2prohibited newline characters: ehlo hi\nX-INJECTEDr�z
X-INJECTED)r.r�rCr0rr�r�rrcrdr$rr	r
r�r�r�r
r�rt�assertNotIn)rr)r�r�debugouts&    r�$test_issue43124_escape_localhostname�9DebuggingServerTests.test_issue43124_escape_localhostname�s���
 ���|�|�D�$�)�)�<L�$+�$<�$<�>������
�
�#�
�
�
�z�
*�
*�c��M�M�+�|�Q�7�+��
�
�A���
�
��	
�
	
�
�
�4���	�	���$�$�-�-�/������x�0�+�
*�s�2D�D	�D	c��Qo[O[UOQ[O
Q5oUO
UO2UOQQU2UO[29^tt^2oUOQQQ,2PPP2[WO2oUOQU2UOQU2[O Q	2UO#2[$O&O)2oUO+Q
U2UO+QU2UO+QU2UO+Q
U2P!)%fhK�9h)r6r�r�r7r8zX-OPTION
X-INJECTED-1zX-OPTION2
X-INJECTED-2rz.X-OPTION\nX-INJECTED-1 X-OPTION2\nX-INJECTED-2r�zX-OPTIONz	X-OPTION2zX-INJECTED-1zX-INJECTED-2)r.r�rCr0rr�r�rr$rcrd�mailr	r
rr�r�r�r
r�rtr9)rr)r�r�msgr:s&     r�test_issue43124_escape_options�3DebuggingServerTests.test_issue43124_escape_options�s��
 ���|�|��$�)�)�K��,�,�.��	
����
�
�#��
�
�k�<��3�
�
�
�z�
*�
*�c��I�I�k�$<�>W�#X�Y�+��#�-�-� ���
�
�5�s�;��
�
�H�#�N��
�
�4���	�	���$�$�-�-�/������X�.�����h�/������2������2�+�
*�s�E)�)E9	�2E9	c���Qo[O[UOQ[O
Q5oUO
UO2UOQQU2[OQ2UO2UOO2UOO2UO O#2[$8U8Q[&80oUO)UO O+2U2[,O.O+2o[0O2Q[0O42oUO7VE2P!)rr�r�z<>r!r�r"z^sender: <>$)r.r�rCr0rr�r�rr$r�r�r�r�rr�r�r�r%r&r'r7rtr
r�rprqrrrs)rr)r�r*r:�senders&     r�testSendNullSender�'DebuggingServerTests.testSendNullSender�s������|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��
�
�d�G�Q�'��
�
�4���	�	���������
�
���������� )�1�g�6��������-�-�/��9��$�$�-�-�/�����N�B�L�L�9������*rc��[OOOQ2o[O
[UOQ[OQ5oUOUO2UOUQQQ5[OQ2UO2UO O#2UO$O'2UO(O+2UO-2oUQ[.8UO128Q[280oUO5V42P!)	rr�r�r r!��	from_addr�to_addrsr��X-Peerr")�email�mime�text�MIMETextr.r�rCr0rr�r�r�send_messager�r�r�r�rr�r�r�r%r�r&�	as_stringr'r7)rr)r�r�r*s&    r�testSendMessage�$DebuggingServerTests.testSendMessage�s����J�J�O�O�$�$�%5�6���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#����!�v���@��
�
�4���	�	���������
�
����������
�3�3�5��
�h�K� )�1�;�;�=�'�B������.rc�8�[OOOQ2oQUQ$QUQ$QUQ$QUQ$[O
[UOQ	[OQ
5oUOUO2UOU2[OQ2UO2UO!UQ*Q2UO"O%2UO&O)2UO*O-2UO/2oUQUQ[08UO328Q
[480oUO!V42[6O8O;2o[<O>Q[<O@2oUOCVV2QFDHo[<O>QOEU2[<O@2oUOCVX2JJ	P!)r�foo@bar.com�Fromr �To�Sally, Fred�CC�?John Root <root@localhost>, "Dinsdale" <warped@silly.walks.com>�Bccr�r�r�rJr"�^sender: foo@bar.com$�^recips: .*'{}'.*$)r r!�Fredzroot@localhostzwarped@silly.walks.com)#rKrLrMrNr.r�rCr0rr�r�rrOr�r�r�r7r�rr�r�r�r%r�r&rPr'r
r�rtrprqrrrs�format�	rr)r�r�r*r:rCr#�to_addrs	&        r�testSendMessageWithAddresses�1DebuggingServerTests.testSendMessageWithAddressess����J�J�O�O�$�$�%5�6��!��&�	���$����$��T��%���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#����!���
�
�4���	�	������5��$?�	@�	
�������
�
�����������3�3�5��
�h�K�
�e�H� )�1�;�;�=�'�B������.��$�$�-�-�/�����3�R�\�\�B������*�/�D��j�j�!6�!=�!=�d�!C�!#���/�G����X�/�	/rc���[OOOQ2oQUQ$QUQ$[O
[UOQ[OQ5oUOUO2UOU2[OQ2UO2UO O#2UO$O'2UO(O+2UO-2oUQ[.8UO128Q	[280oUO5V42[6O8O;2o[<O>Q
[<O@2oUOCVV2QFDHo[<O>QOEU2[<O@2oUOCVX2JJ	P!)
rrTrU�John, DinsdalerVr�r�r�rJr"r[r\�r �Dinsdale�#rKrLrMrNr.r�rCr0rr�r�rrOr�r�r�r�rr�r�r�r%r�r&rPr'r7r
r�rtrprqrrrsr^r_s	&        r� testSendMessageWithSomeAddresses�5DebuggingServerTests.testSendMessageWithSomeAddresses(sX���J�J�O�O�$�$�%5�6��!��&�	�"��$���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#����!���
�
�4���	�	���������
�
�����������3�3�5��
�h�K� )�1�;�;�=�'�B������.��$�$�-�-�/�����3�R�\�\�B������*�(�D��j�j�!6�!=�!=�d�!C�!#���/�G����X�/�)rc�^�[OOOQ2oQUQ$QUQ$[O
[UOQ[OQ5oUOUO2UOUQQQ	5[OQ
2UO2UO O#2UO$O'2UO(O+2UO-2oUQ[.8UO128Q[280oUO5V42[6O8O;2o[<O>Q
[<O@2oUOCVV2QFDHo[<O>QOEU2[<O@2oUOGVX2JJ	[<O>Q[<O@2o	UOCVY2P!)rrTrUrdrVr�r�zjoe@example.comzfoo@example.netrGr�rJr"z^sender: joe@example.com$r\z^recips: .*'foo@example.net'.*$re)$rKrLrMrNr.r�rCr0rr�r�rrOr�r�r�r�rr�r�r�r%r�r&rPr'r7r
r�rtrprqrrrsr^�assertNotRegex)
rr)r�r�r*r:rCr#r`�recips
&         r�%testSendMessageWithSpecifiedAddresses�:DebuggingServerTests.testSendMessageWithSpecifiedAddressesEs����J�J�O�O�$�$�%5�6��!��&�	�"��$���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#����!�'8�CT��U��
�
�4���	�	���������
�
�����������3�3�5��
�h�K� )�1�;�;�=�'�B������.��$�$�-�-�/�����7����F������*�(�D��j�j�!6�!=�!=�d�!C�!#���/�G�����2�)��
�
�=�r�|�|�L������)rc��[OOOQ2oQUQ$QUQ$QUQ$[O
[UOQ[OQ5oUOUO2UOU2[OQ	2UO2UO O#2UO$O'2UO(O+2UO-2oUQ
[.8UO128Q[280oUO5V42[6O8O;2o[<O>Q[<O@2oUOCVV2QFDHo[<O>Q
OEU2[<O@2oUOCVX2JJ	P!)rzBernard, BiancarUz#the_rescuers@Rescue-Aid-Society.com�SenderrdrVr�r�r�rJr"z-^sender: the_rescuers@Rescue-Aid-Society.com$r\rergr_s	&        r�testSendMessageWithMultipleFrom�4DebuggingServerTests.testSendMessageWithMultipleFromdsa���J�J�O�O�$�$�%5�6��%��&�	�;��(��"��$���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#����!���
�
�4���	�	���������
�
�����������3�3�5��
�h�K� )�1�;�;�=�'�B������.��$�$�-�-�/�����K�R�\�\�Z������*�(�D��j�j�!6�!=�!=�d�!C�!#���/�G����X�/�)rc�4�[OOOQ2oQUQ$QUQ$QUQ$QUQ$Q	UQ
$QUQ$Q
UQ$QUQ$[O
[UOQ[OQ5oUOUO2UOU2[OQ2UO2UO O#2UO$O'2UO(O+2UQUQUO-2oUQ[.8UO128Q[280oUO5V42[6O8O;2o[<O>Q[<O@2oUOCVV2QFDHo[<O>QOEU2[<O@2oUOCVX2JJ	P!)rrTrUr rVrWrXrYrZ�Thu, 1 Jan 1970 17:42:00 +0000�Resent-Date�holy@grail.net�Resent-From�&Martha <my_mom@great.cooker.com>, Jeff�	Resent-To�doe@losthope.net�
Resent-Bccr�r�r�rJr"z^sender: holy@grail.net$r\)zmy_mom@great.cooker.com�Jeffrzrgr_s	&        r�testSendMessageResent�*DebuggingServerTests.testSendMessageResent�s����J�J�O�O�$�$�%5�6��!��&�	���$����$��T��%��;��-��+��-��A��+��,��,���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#����!���
�
�4���	�	���������
�
����������
�e�H�
�l�O��3�3�5��
�h�K� )�1�;�;�=�'�B������.��$�$�-�-�/�����6����E������*�K�D��j�j�!6�!=�!=�d�!C�!#���/�G����X�/�Lrc��[OOOQ2oQUQ$QUQ$QUQ$QUQ$Q	UQ
$QUQ$Q
UQ$QUQ$QUQ
$QUQ$Q
UQ$[O
[UOQ[OQ5oUOUO2UO[29^tt^2UOU2PPP2UO2P!)%fhK"9h)rrTrUr rVrWrXrYrZrtrurvrwrxryrzr{zThu, 2 Jan 1970 17:42:00 +0000r�r�)rKrLrMrNr.r�rCr0rr�r�rrcrdrO�rr)r�s&  r�#testSendMessageMultipleResentRaises�8DebuggingServerTests.testSendMessageMultipleResentRaises�s����J�J�O�O�$�$�%5�6��!��&�	���$����$��T��%��;��-��+��-��A��+��,��,��;��-��)��+��C��-���|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#�
�
�
�z�
*�
*����a� �+��
�
��+�
*�s�C<�<D	�D	)r�r�r�r�r�r0r�r!r�r�r�)!r}r~rr��maxDiffr1r4r�r�rIr�r�r�rrrrrr+r0r3r;r@rDrQrarhrmrqr}r�r�r�r�s@rr�r��s������G��6=� A�
�� ������	��:�&:� :�"1�(3�2+�&/�,"0�H0�:*�>0�<#0�J�rr�c�4`�\sQsQsnQsQsQsQsUsP!)�NonConnectingTests�c���[O2oUO[OUO2UO[OUO
Q2P!)ztest msg)r.r�rc�SMTPServerDisconnectedr�rr�s& r�testNotConnected�#NonConnectingTests.testNotConnected�sH��
�|�|�~�����'�8�8�$�)�)�D����'�8�8��)�)�Z�	1rc��UO[[OQQ2UO[[OQ2P!)r��boguszlocalhost:bogus)rcr�r.r�rs&r�testNonnumericPort�%NonConnectingTests.testNonnumericPort�s6�����'�7�<�<�%�w�	0����'�7�<�<�+�	-rc��[O29^tt^2oUOUO2PPP2P!)%fhP!9hr)r.r�rUrXr�s& r�testSockAttributeExists�*NonConnectingTests.testSockAttributeExists�s/���\�\�^�^�t����d�i�i�(��^�^�^�s�A�A	�A	r)	r}r~rr�r�r�r�r�r�r�s@rr�r��s����1�-�)�)rr�c�4`�\sQsQsnQsQsQsQsUsP!)�DefaultArgumentsTests��c��[2UmQUOQ$[O2Um[QQ5UOm[2[2tUOmUOmP!)�Páolo <főo@bar.com>rU)�return_value)���OK)	rr?r.r�r�rr��has_extnr$rs&rr1�DefaultArgumentsTests.setUp�sT���>���2�������L�L�N��	��;�7��	�	��15����.��	�	��D�I�I�.rc��QoUOOUO2UOOUO2UOUOOO
]*]*]*U2UOUOOO
]*]*]*U2P!)�SMTPUTF8)r��
BODY=8BITMIME�r�rOr?r7r$�call_args_list)r�expected_mail_optionss& rrQ�%DefaultArgumentsTests.testSendMessage�s��� =���	�	���t�x�x�(��	�	���t�x�x�(�������+�+�:�:�1�=�a�@��C�.�	0�������+�+�:�:�1�=�a�@��C�.�	0rc��Q,oQoUOOUOPPU2UOUQ,2UOUOOO
]*]*]*U2P!)�STARTTLS)r�r�r�r�)r�mail_optionsr�s&  r�testSendMessageWithMailOptions�4DefaultArgumentsTests.testSendMessageWithMailOptions�so��"�|�� I���	�	���t�x�x��t�\�B�����
�|�4�������+�+�:�:�1�=�a�@��C�.�	0r)r?r�)	r}r~rr�r1rQr�r�r�r�s@rr�r��s����@�0�0�0rr�c�4`�\sQsQsnQsQsQsQsUsP!)�BadHELOServerTests��c���[[m[OQ2[O
Um[O2Um	UO[m]Um
P!)s199 no hello for you!)rr.r/rAr�r�r�r�r�r�r0rs&rr1�BadHELOServerTests.setUp�sB��$������7�8��*�*����k�k�m����[�[��
���	rc�P�[[mUO[mP!r)r/r.r�r�r�rs&rr4�BadHELOServerTests.tearDown�s������_�_��
rc��UO[O[O[UO
Q]2P!�r�)rcr.�SMTPConnectErrorr�rCr0rs&r�testFailingHELO�"BadHELOServerTests.testFailingHELOs+�����'�2�2�G�L�L� �$�)�)�[�!�	=r)r�r�r0)	r}r~rr�r1r4r�r�r�r�s@rr�r��s�����%�=�=rr�c�`�\sQsQsnQQ\O
*]**Q*sQsQsQs	Qs
UsP!)	�TooLongLineTests�s250 OK�.�
c��[O2Um[OUm[O2UmUO[m[O2Um[O[O[O2UmUOO!]2["O$UO2UmUOUO(UO1o[O*[,UQ5UmUO.O12UOO32UOO52P!)�r�)rr�r�r�r�r�r�r�r�r�r�rr/�AF_INET�SOCK_STREAMrX�
settimeoutr�	bind_portr0�respdatar�r)r�r�r�r�)r�servargss& rr1�TooLongLineTests.setUps���*�:�:�<����*�*����k�k�m����[�[��
��?�?�$����M�M�&�.�.�&�2D�2D�E��	��	�	���R� �!�+�+�D�I�I�6��	��H�H�d�m�m�T�Y�Y�7���&�&�f�8�D������������
�
�������rc��UOO2UO[m[
OUO2U;UO2[
OUOP!r)rr�r�r�r�rr�r�r�r�r�rs&rr4�TooLongLineTests.tearDownsM�����
�
���_�_��
��$�$�T�[�[�1��K������*�*�D�O�O�<rc��UO[O[O[UO
Q]2P!r�)rcr.�SMTPResponseExceptionr�rCr0rs&r�testLineTooLong� TooLongLineTests.testLineTooLong s+�����'�7�7������	�	�;��	;r)rr�r�r0rXr�r�)r}r~rr�r.�_MAXLINEr�r1r4r�r�r�r�s@rr�r�s8�����D�7�#3�#3�3�a�7�8�5�@�H�� =�;�;rr��Mr.A@somewhere.comzJohn AzMs.B@xn--fo-fka.comzSally BzMrs.C@somewhereesle.comzRuth Cz<PENCeUxFREJoU0NnbmhNWitOMjNGNndAZWx3b29kLmlubm9zb2Z0LmNvbT4=zlist-1zlist-2c��\sQsQsQsP!)�ResponseException�2r)r}r~rr�r�rrrr�r�2s��Drr�c��``�\sQsQsnPsPsPsPs]s]s	]s
]csPsU1Qks
U1QksQsQsQsQQksQQksQQ	ksQQ
ksQsQsQ
sU1QksU1QksU1QksU1QksU1QksQsQsUs U9s!!)�SimSMTPChannel�3c	�:�POSTt,tFDoQOU2MJ	to2Um,Um[[
U_U-U@P!ttoh)�z	250-{0}
)�joinr^�_extrafeatures�all_received_linesr�r��__init__)r�extra_featuresr��kw�xr�s&&*, �rr��SimSMTPChannel.__init__?sT��� �g�g�/=�?�~�!�m�"�"�1�%�~�?�A���"$���
�n�d�,�d�9�b�9��
@s�Ac�:�UOUO6XcfUOOUO2o[Q[
U2[OQ5,UmUOU2P!UOO!UO2["RU_I2P![cIoSOSmSOSO8QSO802Po=P!Po=hh9h)zData:)�file� )�
smtp_state�AUTH�_emptystringr��received_lines�print�reprr
r��auth_objectr��COMMAND�push�	smtp_code�
smtp_errorr��appendr��found_terminator)r�liner'r�s&  �rr��SimSMTPChannel.found_terminatorFs�����?�?�d�i�i�'��$�$�)�)�$�*=�*=�>�D��'�4��:�E�,=�,=�>�"$�D��
A�� � ��&�
����&�&�t�':�':�;�
�� �"��%�
A�"&�,�,����	�	�Q�[�[�!�,�,�?�@�@���
A�s�0B8�8	D�D�=D�Dc���UO%fUOQ2P!UO%cQUO7cUOQ2P!UOdUOQ2P!UO2o[
U2Q	7cUOQ2P!QU]*O2OQQ2*o[V2Um
UOUmSO[
U2]6XcU]*2P!P2P![c%SOQOS22P!h9h)
z503 Error: send EHLO firstr�z(500 Error: command "AUTH" not recognizedz3503 Bad sequence of commands: already authenticatedz/501 Syntax: AUTH <mechanism> [initial-response]z_auth_%s�-�_zQ504 Command parameter not implemented: unsupported  authentication mechanism {!r})�r�)�
seen_greetingr��
extended_smtpr��authenticated_user�split�len�lower�replace�getattrr��AttributeErrorr^r�r�)r�argr��auth_object_names&&  r�	smtp_AUTH�SimSMTPChannel.smtp_AUTHUs ���!�!�!��I�I�2�3���!�!�!�V�4�3F�3F�%F��I�I�@�A���"�"�.��I�I�E�
G���y�y�{���t�9�F�"��I�I�G�H��%��Q��
�
��(?�(?��S�(I�I��	�&�t�>�D��
�)�)������C��I��N��a��=��=���	��I�I�7�7=�v�>N�7O�
Q��	�s� D3�3	E"�=!E"�!E"c��U%cVmUOQ2LUOQ2UOUmP!)z235 Authentication Succeededz&535 Authentication credentials invalid)r�r�r�r�)r�user�valids&&&r�_authenticated�SimSMTPChannel._authenticatedns0���&*�#��I�I�4�5��I�I�>�?��,�,��rc�l�[OUOQ22OQ2!)r.�utf-8)�base64�decodebytes�encoder/)r�strings&&r�_decode_base64�SimSMTPChannel._decode_base64vs'���!�!�&�-�-��"8�9�@�@��I�Irc�2�UeUOQ2P!UOU2oUOQ2Cuq4oUOVE[]*6H2P![c,oSOQO	X&22Po=P!Po=hh9h)Nz334 ��=535 Splitting response {!r} into user and password failed: {})r�rr�rdr^r�sim_auth)rr��logpassr�r��passwordr's&&     r�_auth_plain�SimSMTPChannel._auth_plainys����;��I�I�f���)�)�#�.�G�
�%,�]�]�4�%8�"��(�

����(�1�+�&=�>��	�
��	�	�(�(.��w�(:�<���
�s�A � 	B�*B�+ B�Bc�&�UeUOQ2P![UQ2%f*UOU2UmUOQ2P!UOU2oUO	UOU[
]*6H2U;P!)Nz334 VXNlcm5hbWU6�_auth_login_userz334 UGFzc3dvcmQ6)r�r�rrrr
)rr�rs&& r�_auth_login�SimSMTPChannel._auth_login�sw���;��I�I�(�)���1�2�2�$(�$7�$7��$<�D�!��I�I�(�)��*�*�3�/�H����� 5� 5�x�8�A�;�7N�O��%rc�*�UOQ2P!)z334 QnVHZ1liVWdHeQ==)r��rr�s&&r�_auth_buggy�SimSMTPChannel._auth_buggy�s��	
�	�	�(�)rc�P�Ue'UOQO[22P!UOU2oUO	2vq4[]*OQ2oUO[2OQ2o[OVgQ2O2oUOV4U6H2P![
c,oSOQOX%22Po=P!Po=hh9h[
cSOQ2P!h9h)Nz334 {}rr.�md5z504 CRAM-MD5 is not supported)r�r^�sim_cram_md5_challengerr�rdr
r�hmac�HMAC�	hexdigestr)	rr�rr��hashed_passr'�pwdr?�valid_hashed_passs	&&       r�_auth_cram_md5�SimSMTPChannel._auth_cram_md5�s����;��I�I�h�o�o�&<�=�>��)�)�#�.�G�
�$+�M�M�O�!��
�1�+�$�$�W�-�C��%�%�&<�=�D�D�W�M�C�
�$(�I�I�c��$>�$H�$H�$J�!�
����5F�&F�G���
��	�	�'�'-�v�g�'9�;���
���
��	�	�9�:��
�s5�C�%D�	D�D� C=�=D�	D%�D%�$D%c�z�QoV O*Q*oUOU2VmP	UmP!)zH250-testhost
250-EXPN
250-SIZE 20000000
250-STARTTLS
250-DELIVERBY
z250 HELP)r�r�r�r�)rr��resps&& r�	smtp_EHLO�SimSMTPChannel.smtp_EHLO�s7��$��
�)�)�)�J�6���	�	�$�� ��!��rc���U[7c;UOQ[U*8Q[OU2802P!UOQU*2P!)�250 r�z550 No such user: %s)�	sim_usersr�r.�	quoteaddrrs&&r�	smtp_VRFY�SimSMTPChannel.smtp_VRFY�s>���)���I�I�Y�s�^�^�W�5F�5F�s�5K�L�M��I�I�,�s�2�3rc��UO2oU[7c�[U*o[U2FD|vqE[OU2oU[U2]*
6c'UO
Q[U*8QU802JXUO
Q[U*8QU802J~	P!UO
Q2P!)r�z250-r�r*z550 No access for you!)r��	sim_lists�	enumerater.r,r�r�r+)rr��	list_name�	user_listr$�
user_email�quoted_addrs&&     r�	smtp_EXPN�SimSMTPChannel.smtp_EXPN�s����I�I�K�	��	�!�!�)�,�I�!*�9�!5�
��%�/�/�
�;���s�9�~��)�)��I�I�Y�z�-B�-B�K�P�Q��I�I�Y�z�-B�-B�K�P�Q�"6�
�I�I�.�/rc�:�UOe[[U_U2P!UO	UO2UO2P!r)�
quit_responser�r��	smtp_QUITr��close_when_done�rr�r�s&&�rr:�SimSMTPChannel.smtp_QUIT�s<������%��.�$�1�#�6��I�I�d�(�(�)�� � �"rc��:�UOe[RU_	U2P!UOUO2UO%cUO2P!P!r)�
mail_responser��	smtp_MAILr��
disconnectr;r<s&&�rr@�SimSMTPChannel.smtp_MAIL�sH������%��G��c�"��I�I�d�(�(�)������$�$�&�rc��:�UOe[RU_	U2P!U9O]*
tmUO	UOUO]*
*2P!r)�
rcpt_responser��	smtp_RCPT�
rcpt_countr�r<s&&�rrE�SimSMTPChannel.smtp_RCPT�sM������%��G��c�"�����1����	�	�$�$�$�T�_�_�Q�%6�7�8rc�Z:�U9O]*
tm[RU_	U2P!)r�)�
rset_countr��	smtp_RSETr<s&&�rrJ�SimSMTPChannel.smtp_RSET�s������1���
���#�rc�~:�UOe[RU_	U2P!UOUO2P!r)�
data_responser��	smtp_DATAr�r<s&&�rrN�SimSMTPChannel.smtp_DATA�s.������%��G��c�"��I�I�d�(�(�)rc��grrrs&r�handle_error�SimSMTPChannel.handle_error����
r)	rr�r�r�r�r�r�r�r�r)"r}r~rr�r9r?rDrMrFrIrAr�r�r�r�r�rrrrrr#r'r-r6r:r@rErJrNrQr�r�r�r�s@@rr�r�3s������M��M��M��M��J��J��J�
�D���:�#�>�2'�J�?�&�*�
H�*	"�4�0�#�'�9��*��rr�c�D`�\sQsQsn\sQsQsQsQs	Qs
QsUsP!)�
SimSMTPServer��c�n�,Um-Um[OOU,UN3-U@P!r)�_extra_features�
_addressesr
�
SMTPServerr��rr�r�s&*,rr��SimSMTPServer.__init__�s/��!������
���!�!�$�4��4��4rc�d�UOUOVUUOQ5UmP!)r�)�
channel_classrX�_decode_data�_SMTPchannel�rr"r#s&&&r�handle_accepted�SimSMTPServer.handle_accepted�s0�� �.�.�� � �$�d��)�)�/�+��rc�@�V OQ$V0OQ$P!)�from�tos)rY)r�peer�mailfrom�rcpttos�datas&&&&&r�process_message�SimSMTPServer.process_message�s��"*�����!(����rc�>�UOOU2P!r)rXr�)r�features&&r�add_feature�SimSMTPServer.add_features�����#�#�G�,rc��grrrs&rrQ�SimSMTPServer.handle_errorrSr)r`rYrX)
r}r~rr�r�r^r�rbrkrorQr�r�r�s@rrUrU�s(����"�M�5�
+�
)�-��rrUc��`�\sQsQsnQsQsQsQsQsQs	Qs
Q	sQ
sQs
Qs\O Q
P	Q5Q2s\O$Q
2\O(QP
2Q22s\O$Q
2\O(QP
2Q22s\O Q
P	Q5Q2sQsQsQsQsQsQsQsQsQs Qs!Qs"Qs#Q s$Q!s%Us&P!)"�SMTPSimTestsic��[O2Um[OUm[O[m[O2Um	[O2Um
[[]1QP	Q5Um
UOOO2]*UmUOUOUO1o[O ["UQ5UmUO$O'2UOO)2UOO+2P!�rr�r�r�)rr�r�r/r�r�rr�r�r�r�rUrCr!r�r0r�r�r�r�r�r�r�s& rr1�SMTPSimTests.setUp
s���*�:�:�<���"�N�N���$�,�,���!���)��
�#�/�/�+���!�4��)�_�$�O��	��I�I�$�$�0�0�2�1�5��	��Y�Y��
�
�t���?�	��&�&�.>�Y�O���������	
�
�
�����
�
���rc�<�UO[mUOO	2UO
O
2[OUO2U;	UO2[OUOP!r�
r�r/r�r�rr�r�rr�r�r�r�r�rs&rr4�SMTPSimTests.tearDown�b���*�*����������
�
�����$�$�T�[�[�1��K������*�*�D�O�O�<rc��[O[UOQ[O
Q5oUO
2P!r�r�r�s& rr��SMTPSimTests.testBasic*r�rc
���[O[UOQ[O
Q5oUO
UO-2QPQQQPQPQP-oUO2UO
UOU2SFD#oUOUOU22J%	UOUOQ22UO2P!)	r�r��expn�size�20000000�starttls�	deliverbyrzunsupported-feature)
r.r�rCr0rr�r7�esmtp_featuresr��
assertTruer��assertFalser�)rr��expected_features�ks&   r�testEHLO�SMTPSimTests.testEHLO0s����|�|�D�$�)�)�K�$+�$<�$<�>��	
����,�,�b�1�$�B�#�Z�'��(�"�#�R�	��	
�	�	������,�,�.?�@�"�A��O�O�D�M�M�!�,�-�#�������'<�=�>��	�	�rc
���[O[UOQ[O
Q5o[O2FDOvq#]�[U8Q[OU280Q21oUOUOU2U2JQ	QoQQU*OQ21oUOUOU2U2UO2P!)r�r�r�r.r�&zNo such user: %s)r.r�rCr0rr�r+�items�bytesr,r7rrr�)rr��	addr_spec�name�expected_known�u�expected_unknowns&      rr�SMTPSimTests.testVRFYFs����|�|�D�$�)�)�K�$+�$<�$<�>�� )���0�O�I�!�5�*.��0A�0A�)�0L�*N�)0�$2�3�N�
���T�Y�Y�y�1�>�B�	 1�
!���"4�q�"8�!@�!@��!I�J��������1��'7�8��	�	�rc��[O[UOQ[O
Q5o[O2FD�vq#,oSFD:oUO[U*8Q[OU2802J<	]�[QOU2Q21oUOUOU2U2J�	QoQoUOUOU2U2UO2P!)r�r�r�r"r.zPSU-Members-List)r�sNo access for you!)r.r�rCr0rr�r0r�r�r+r,r�r�r7rr�)	rr��listname�members�usersr)r�r�r�s	&        r�testEXPN�SMTPSimTests.testEXPNUs����|�|�D�$�)�)�K�$+�$<�$<�>��"+���!2��H��E������	�!���g�6G�6G��6J�K�L��!�5����5�)9�7�#C�D�N����T�Y�Y�x�0�.�A�"3�
��7��������1��'7�8��	�	�rc�>�UOOQ2[O[UO
Q[OQ5oUO[]*[]*2oUOUQ2UO2P!)�
AUTH PLAINr�r����sAuthentication Succeeded�r!ror.r�rCr0rr��loginr
r7r�rr�r&s&  r�testAUTH_PLAIN�SMTPSimTests.testAUTH_PLAINe�g���	�	���l�+��|�|�D�$�)�)�K�$+�$<�$<�>���z�z�(�1�+�x��{�3������A�B��
�
�rc�>�UOOQ2[O[UO
Q[OQ5oUO[]*[]*2oUOUQ2UO2P!)�
AUTH LOGINr�r�r�r�r�s&  r�testAUTH_LOGIN�SMTPSimTests.testAUTH_LOGINmr�rc��UOOQ2[O[UO
Q[OQ59^tt^2o[vUm	Um
UOQ2UOQUOP	Q5oUOUQ2PPP2P!)%fhP!9h�r�r�r��test_auth_login�LOGIN��initial_response_okr��r!ror.r�rCr0rr�r
r�rr��auth�
auth_loginr7r�s&  r�"testAUTH_LOGIN_initial_response_ok�/SMTPSimTests.testAUTH_LOGIN_initial_response_okus����	�	���l�+�
�\�\�$��	�	�+�")�":�":�<�<�?C�'/�$�D�I�t�}��I�I�'�(��9�9�W�d�o�o�4�9�P�D����T�#E�F�<�<�<�<���AB:�:C	�C	c��UOOQ2[O[UO
Q[OQ59^tt^2o[vUm	Um
UOQ2UOQUOP
Q5oUOUQ2PPP2P!)%fhP!9hr�r�r�s&  r�%testAUTH_LOGIN_initial_response_notok�2SMTPSimTests.testAUTH_LOGIN_initial_response_notok~s����	�	���l�+�
�\�\�$��	�	�+�")�":�":�<�<�?C�'/�$�D�I�t�}��I�I�'�(��9�9�W�d�o�o�5�9�Q�D����T�#E�F�<�<�<�<�r�c�`�ROOQ2QU1Qkko[O[RO
Q[OQ5o[vUm	Um
UOQ2QoRO[OU29^tt^2oUOQUP
Q5PPP2UO2P!)%fhK"9hSO2h9h)	z
AUTH BUGGYc�.:�ROQU2Q!)s
BuGgYbUgGyr)r7)�	challengers&�r�
auth_buggy�/SMTPSimTests.testAUTH_BUGGY.<locals>.auth_buggy�s������]�I�6�rr�r��test_auth_buggyz&^Server AUTH mechanism infinite loop.*�BUGGYr�r)r!ror.r�rCr0rr�r
r�rr��assertRaisesRegex�
SMTPExceptionr�r)rr�r��expect�cmsf    r�testAUTH_BUGGY�SMTPSimTests.testAUTH_BUGGY�s�����	�	���l�+�	��|�|��$�)�)�K��,�,�
��	�'/�$�D�I�t�}��I�I�'�(�>�F��'�'��(=�(=�v�F�F�"��	�	�'�:�5�	�I�G�
�J�J�L�G�F��
�J�J�L�s+�AC-�+C�C-�C*	�#C*	�%C-�-C?r)�opensslc�>�UOOQ2[O[UO
Q[OQ5oUO[]*[]*2oUOUQ2UO2P!)�
AUTH CRAM-MD5r�r�r�r�r�s&  r�testAUTH_CRAM_MD5�SMTPSimTests.testAUTH_CRAM_MD5�sg���	�	���o�.��|�|�D�$�)�)�K�$+�$<�$<�>���z�z�(�1�+�x��{�3������A�B��
�
�rzsmtplib._have_cram_md5_supportc���UOOQ2[O[UO
Q[OQ5oUOUO2[OQ2oUO[OU29^tt^2UO[]*[]*2PPP2P!)%fhP!9h)r�r�r�z(No suitable authentication method found.)r!ror.r�rCr0rr�r�rrp�escaper�r�r�r
)rr�r?s&  r�testAUTH_CRAM_MD5_blocked�&SMTPSimTests.testAUTH_CRAM_MD5_blocked�s���	
�	�	���o�.��|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��i�i�B�C��
�
#�
#�G�$9�$9�3�
?�
?��J�J�x��{�H�Q�K�0�@�
?�
?�
?�s�,)C�C0	�(C0	c	��UOOQ2[O[UO
Q[OQ5oUOUO2[OOUQ29^tt^2o[OOUQUOQ59^tt^2oUO[]*[]*2oPPP2PPP2WO!2WO#2UO%WQ2P!)%fhKL9h)%fhKW9h)zAUTH CRAM-MD5 PLAINr�r��
auth_cram_md5�
auth_plain)�wrapsr�)r!ror.r�rCr0rr�r�r�mock�patch�objectr�r�r
�assert_called_once�assert_not_calledr7)rr��smtp_auth_cram_md5�smtp_auth_plainr&s&    r�&testAUTH_CRAM_MD5_blocked_and_fallback�3SMTPSimTests.testAUTH_CRAM_MD5_blocked_and_fallback�s���	
�	�	���3�4��|�|�D�$�)�)�K�$+�$<�$<�>������
�
�#��J�J���d�O�4�4�8J��J�J����l�$�/�/�
�
�
� ��:�:�h�q�k�8�A�;�7�D�	
�
5�	�*�*�,��,�,�.�����A�B�
�
��
5�4�s0�5E�)D8	�4E�8E
�E
�E�E	�E	c�>�UOOQ2[O[UO
Q[OQ5oUO[]*[]*2oUOUQ2UO2P!)zAUTH BOGUS PLAIN LOGIN CRAM-MD5r�r�r�r�r�s&  r�testAUTH_multiple�SMTPSimTests.testAUTH_multiple�sj��	
�	�	���?�@��|�|�D�$�)�)�K�$+�$<�$<�>���z�z�(�1�+�x��{�3������A�B��
�
�rc��QQ.o[O2UOQ2SFD-oUOOQO
U22J/	SFD�oUOUQ59^tt^2[O[UOQ[OQ5oUOQ2[]*[]*tUmUmQUO%2O'Q	Q
2*oUO)U[+V422oUO-UQ2UO/2PPP2J�	P![cCKAh9h)%fhCJ 9h)�PLAINr�zCRAM-MD5zAUTH {})�	mechanismr�r��foo�auth_r�r�r�)�hashlibr�addrdr!ror^�subTestr.r�rCr0rr�r�r
r�rr�r�r�r�r7r)r�	supportedr�r��methodr&s&     r�test_auth_function�SMTPSimTests.test_auth_function�s(���g�&�	�	&��K�K�M�
�M�M�*�%�"�I��I�I�!�!�)�"2�"2�9�"=�>�#�"�I����	��2�2��|�|�D�$�)�)�3>�,3�,D�,D�F���	�	�%� �+3�A�;����(��	�4�=� �9�?�?�#4�#<�#<�S�#�#F�F���y�y��G�D�,A�B��� � ��'I�J��
�
��3�2�#��
�	��	��3�2�2�s*�E �CE2	� 	E/�*E/�.E/�2F
�;F
c�<�[O[UOQ[O
Q5oUO
2vq#UOU]�2UOQUO2UO2UOQUO2UO[UO2UOQUO2UO2UOQUO2UO2P!)r�r�r�)r.r�rCr0rr�r�r7rr�r�r9ro�ehlo_or_helo_if_needed�rr��code�messages&   r�test_quit_resets_greeting�&SMTPSimTests.test_quit_resets_greeting�s����|�|�D�$�)�)�+6�$+�$<�$<�>���	�	��
������s�#��
�
�f�d�1�1�2��	�	�������!4�!4�5����T�4�9�9�%������!4�!4�5��#�#�%��
�
�f�d�1�1�2��	�	�rc�@�[O[UO29^tt^2oUO	2vq#UOU]�2PPP2UO
[OWOQ2[O[UO29^tt^2oUO2PPP2UO
[OUOQ2P!)%fhK�9h)%fhKP9h)r�sfoo)
r.r�rCr0r�r7rcr�rrr�s&   r�test_with_statement� SMTPSimTests.test_with_statement�s���
�\�\�$��	�	�
*�
*�d� �I�I�K�M�D����T�3�'�+�	
���'�8�8�$�)�)�V�L�
�\�\�$��	�	�
*�
*�d��J�J�L�+����'�8�8�$�)�)�V�L�
+�
*��+�
*�s#�%C:�4D
�:D
	�D
	�
D	�D	c	��UO[O29^tt^2o[O[UO
29^tt^2oUO
2QUOOm	PPP2PPP2UOWOOQ2UOUOOQ2P!)%fhKf9h)%fhKq9h)z421 QUIT FAILED�sQUIT FAILED)rcr.r�r�rCr0r�r!r`r9r7r
r�r�)r�errorr�s&  r� test_with_statement_QUIT_failure�-SMTPSimTests.test_with_statement_QUIT_failure�s���
�
�
�w�<�<�
=�
=�����d�D�I�I�.�.�$��	�	��7H��	�	�&�&�4�/�>�	
������2�2�C�8�������3�3�^�D�	/�.��>�
=�s/�.C4�,C!	�C4�!C1
�*C1
�,C4�4D	�=D	c���[O[UOQ[O
Q5oUO
2QUOOm	P	UOOm
UO[O29^tt^2UOQQQ2PPP2UOUO2P!)%fhK-9h)r�r�z451 Requested action abortedr r!�test message)r.r�rCr0rr�r�r!r`r?rArc�SMTPSenderRefusedr$rUrXr�s& r�test__rest_from_mail_cmd�%SMTPSimTests.test__rest_from_mail_cmd	s����|�|�D�$�)�)�K�$+�$<�$<�>���	�	��/M��	�	���,�,0��	�	���)�
�
�
�w�8�8�
9�
9��M�M�&�'�>�:�:����$�)�)�$�:�
9�s�%C�C.	�'C.	c��[O[UOQ[O
Q5oUO
2QUOOm	UO[O29^tt^2UOQQQ2PPP2UOUO2UOUOOO ]2P!)%fhK]9h)r�r�z421 closing connectionr r!r�)r.r�rCr0rr�r�r!r`r?rcr�r$rUrXr7rIr�s& r�test_421_from_mail_cmd�#SMTPSimTests.test_421_from_mail_cmds����|�|�D�$�)�)�K�$+�$<�$<�>���	�	��/G��	�	���,�
�
�
�w�8�8�
9�
9��M�M�&�'�>�:�:����$�)�)�$�������/�/�:�:�A�>�:�
9�s�
C3�3D	�<D	c�r�[O[UOQ[O
Q5oUO
2QQ,UOOm	UO[O29^tt^2oUOQ,QNQ2PPP2UOUO2UOUOOO ]2UO#WO$O&]*QQ-2P!)%fhK�9h)	r�r�z250 accepted�421 closingr �Frankr�)r!r�George)r�sclosing)r.r�rCr0rr�r�r!r`rDrc�SMTPRecipientsRefusedr$rUrXr7rI�assertDictEqualr
r�)rr�r%s&  r�test_421_from_rcpt_cmd�#SMTPSimTests.test_421_from_rcpt_cmds����|�|�D�$�)�)�K�$+�$<�$<�>���	�	��0>�
�/N��	�	���,�
�
�
�w�<�<�
=�
=���M�M�&�">��O�>����$�)�)�$�������/�/�:�:�A�>����Q�[�[�-�-�a�0�7�<M�2N�O�	>�
=�s�D&�&D6	�/D6	c��QQ[2oVOm[O[
UOQ[OQ5oUO2UO[O29^tt^2UOQQ,Q2PPP2UOUO2UOUOO O"]2P!)%fhK]9h)c�4``�\sQsQsnU1QksQsUsU9s!)�=SMTPSimTests.test_421_from_data_cmd.<locals>.MySimSMTPChanneli*c�:�UOUO6XcUOQ2P![RU_2P!)r)r��DATAr�r�r�)rr�s&�rr��NSMTPSimTests.test_421_from_data_cmd.<locals>.MySimSMTPChannel.found_terminator+s*����?�?�d�i�i�/��I�I�m�,��G�,�.rr)r}r~rr�r�r�r�r�r�s@@r�MySimSMTPChannelr*s����
/�
/rrr�r�zJohn@foo.orgz
Sally@foo.orgr�)r�r!r^r.r�rCr0rr�r�rc�
SMTPDataErrorr$rUrXr7r`rF)rrr�s&  r�test_421_from_data_cmd�#SMTPSimTests.test_421_from_data_cmd)s���	/�~�	/�#3�	�	���|�|�D�$�)�)�K�$+�$<�$<�>���	�	��
�
�
�w�4�4�
5�
5��M�M�.�?�*;�^�L�6����$�)�)�$�������/�/�:�:�A�>�6�
5�s�C8�8D	�D	c	��[O[UOQ[O
Q5oUO
UO2UO2UOUO2UOUOQ22UOUOQQPQQ,Q5UOUO QQQ,Q5P!)	r�r��smtputf8r r!r�r��r���options)r.r�rCr0rr�r�rr�r��
does_esmtpr�r�rc�SMTPNotSupportedErrorr$r>r�s& r�4test_smtputf8_NotSupportedError_if_no_server_support�ASMTPSimTests.test_smtputf8_NotSupportedError_if_no_server_support9s����|�|��$�)�)�K��,�,�.��	
����
�
�#��	�	��������(�������z�2�3�����)�)��M�M��G�R��
�.K�	�	M�	
����)�)��I�I�v���'D�	�	Frc�2�[O[UOQ[O
Q5oUO
UO2UO[UOQQP2UO[UOQ2P!)r�r��AliceuBöbuÄlice)r.r�rCr0rr�r�rrc�UnicodeEncodeErrorr$r>r�s& r�"test_send_unicode_without_SMTPUTF8�/SMTPSimTests.test_send_unicode_without_SMTPUTF8Ish���|�|��$�)�)�K��,�,�.��	
����
�
�#����,�d�m�m�W�f�b�Q����,�d�i�i��Brc��[2oQUQ$QUQ$QUQ$[O[UOQ[
OQ5oUOUO2UO[O29^tt^2UOU2PPP2P!)%fhP!9h)r�rUrfrV�Nudge nudge, wink, wink ὠ9�Subjectr�r�)rr.r�rCr0rr�r�rrcrrO)rr?r�s&  r�9test_send_message_error_on_non_ascii_addrs_if_no_smtputf8�FSMTPSimTests.test_send_message_error_on_non_ascii_addrs_if_no_smtputf8Qs����n��-��F����D�	�:��I���|�|��$�)�)�K��,�,�.��	
����
�
�#�
�
�
�w�<�<�
=�
=����c�"�>�
=�
=�
=�s�B/�/C	�8C	c�>�[O[UOQ[O
Q5oUO
UO2[2o[OOQ2UQ$[OOQ	2UQ$UOUOU2-2UOUOO Q*Q2UOUOO Q*Q,2P!)
r�r��michael@example.comrU�rene@example.comrVrerf)uMichaëlr')uRenér()r.r�rCr0rr�r�rrrK�utils�
formataddrrrOr7r!rY)rr�r�s&  r�1test_name_field_not_included_in_envelop_addresses�>SMTPSimTests.test_name_field_not_included_in_envelop_addresses_s����|�|��$�)�)�K��,�,�.��	
����
�
�#��.���+�+�0�0�1T�U�������.�.�/L�M���
����T�.�.�w�7��<�������-�-�f�5�7L�M�������-�-�e�4�7I�6J�Krc��Qo[O[UOQ[O
Q5oUO
UO2UOQQU2UOQ,UOOO2UOQ,UOOO2P!)rr�r�r r!zmail from:<John> size=14zrcpt to:<Sally>)
r.r�rCr0rr�r�rr$rr!r`r�r�s&  r� test_lowercase_mail_from_rcpt_to�-SMTPSimTests.test_lowercase_mail_from_rcpt_tons������|�|��$�)�)�K��,�,�.��	
����
�
�#��
�
�f�g�q�)��
�
�1�2�D�I�I�4J�4J�4]�4]�^��
�
�(�)�4�9�9�+A�+A�+T�+T�Ur�r�r0r�r!r�r�r�)'r}r~rr�r1r4r�r�rr�r�r�r�r�r�r�requires_hashdigestr��block_algorithmr�r�r�r�r�r�r�r�r�r�r�rrrrr$r+r.r�r�r�s@rrtrts6�����$	=���,
�� ��G�G��(�'�'��t�<��=���#�#�E�*�	�Z�Z�0�%�8�
1�9�+�
1��#�#�E�*�	�Z�Z�0�%�8�C�9�+�C�"�'�'��t�<��=���,
�M�E�%�?�	P�?� F� C�#�
L�
V�
Vrrtc�8`�\sQsQsnQsQsQQksQsUsP!)�SimSMTPUTF8Serveri{c�d�QQ,Um[OOU,UN3-U@P!)r��8BITMIME)rXr
rZr�r[s&*,rr��SimSMTPUTF8Server.__init__}s/��!+�J�7���
���!�!�$�4��4��4rc	�z�UOUOVUUOUOQ5UmP!)�r��enable_SMTPUTF8)r^rXr_r:r`ras&&&rrb�!SimSMTPUTF8Server.handle_accepted�s9�� �.�.�� � �$�d��)�)� �0�0�/�
��rc�P�VmV mV0mV@mVPmV`mP!r)�	last_peer�
last_mailfrom�last_rcpttos�last_message�last_mail_options�last_rcpt_options)rrgrhrirjr��rcpt_optionss&&&&&&&rrk�!SimSMTPUTF8Server.process_message�s%����%��#�� ��!-��!-�r)r`rXrAr>r@r=rBr?)NN)	r}r~rr�r�rbrkr�r�r�s@rr4r4{s����5�
�.�.rr4c�J`�\sQsQsnPsQsQsQsQsQs	Qs
QsUsP!)	�SMTPUTF8SimTestsi�c��[O2Um[OUm[O[m[O2Um	[O2Um
[[]1QP
P	Q5Um
UOOO2]*UmUOUOUO1o[O ["UQ5UmUO$O'2UOO)2UOO+2P!)rr9r�r�)rr�r�r/r�r�rr�r�r�r�r4rCr!r�r0r�r�r�r�r�r�r�s& rr1�SMTPUTF8SimTests.setUp�s���*�:�:�<���"�N�N���$�,�,���!���)��
�#�/�/�+���%�t�Q�i��27�6:�<��	��I�I�$�$�0�0�2�1�5��	��Y�Y��
�
�t���?�	��&�&�.>�Y�O���������	
�
�
�����
�
���rc�<�UO[mUOO	2UO
O
2[OUO2U;	UO2[OUOP!rryrs&rr4�SMTPUTF8SimTests.tearDown�r{rc�@�[O[UOQ[O
Q5oUO
UO2UO2UOUO2UOUOQ22P!)r�r�r)r.r�rCr0rr�r�rr�r�rr�r�s& r�$test_test_server_supports_extensions�5SMTPUTF8SimTests.test_test_server_supports_extensions�sd���|�|��$�)�)�K��,�,�.��	
����
�
�#��	�	��������(�����
�
�j�1�2rc���QOQ2o[O[UOQ[
OQ5oUOUO2UOQQUQQ,Q5UOUOOQ2UOUOOQ,2UOUOOU2UOQUOO 2UOQUOO 2UOUOO",2P!)	�$¡a test message containing unicode!rr�r�uJőhnuSállyr�r�r)rr.r�rCr0rr�r�rr$r7r!r>r?r@rrArBr�s&  r�,test_send_unicode_with_SMTPUTF8_via_sendmail�=SMTPUTF8SimTests.test_send_unicode_with_SMTPUTF8_via_sendmail�s��2�9�9�'�B���|�|��$�)�)�K��,�,�.��	
����
�
�#��
�
�g�x��$3�Z�#@�	�	B�������0�0�'�:�������/�/�(��<�������/�/��3��
�
�o�t�y�y�'B�'B�C��
�
�j�$�)�)�"=�"=�>�������4�4�b�9rc��QOQ2o[O[UOQ[
OQ5oUOUO2UO2UOUOQQQ,Q5Q	2UOUOQ2Q	2UOUOU2Q	2UOUOOQ2UOUOO Q,2UOUOO"U2UO%QUOO&2UO%QUOO&2UOUOO(,2P!)
rOrr�r�uJőr�r�ruJánosr�)rr.r�rCr0rr�r�rr�r7r>�rcptrjr!r>r?r@rrArBr�s&  r�1test_send_unicode_with_SMTPUTF8_via_low_level_API�BSMTPUTF8SimTests.test_send_unicode_with_SMTPUTF8_via_low_level_API�sB��2�9�9�'�B���|�|��$�)�)�K��,�,�.��	
����
�
�#��	�	������I�I�e�o�z�%B�I�C��	�	
������8�,�l�;�������1��|�4�������0�0�%�8�������/�/�(��<�������/�/��3��
�
�o�t�y�y�'B�'B�C��
�
�j�$�)�)�"=�"=�>�������4�4�b�9rc�R�[2oQUQ$QUQ$QUQ$UOQ2[OQ2o[O
[UOQ[OQ	5oUOUO2UOUOU2-2UOUOOQ
2UOUOO Q,2UOUOO"O%2U2UO'QUOO(2UO'QUOO(2UOUOO*,2P!)
r�rUrfrVr"r#u1oh là là, know what I mean, know what I mean?

u<            From: Páolo <főo@bar.com>
            To: Dinsdale
            Subject: Nudge nudge, wink, wink ὠ9
            Content-Type: text/plain; charset="utf-8"
            Content-Transfer-Encoding: 8bit
            MIME-Version: 1.0

            oh là là, know what I mean, know what I mean?
            r�r�ufőo@bar.comr�r�)r�set_content�textwrap�dedentr.r�rCr0rr�r�rr7rOr!r>r?r@r/rrArB)rr?r:r�s&   r�2test_send_message_uses_smtputf8_if_addrs_non_ascii�CSMTPUTF8SimTests.test_send_message_uses_smtputf8_if_addrs_non_ascii�s<���n��-��F����D�	�:��I��	���M�N��?�?�	$�	���|�|��$�)�)�K��,�,�.��	
����
�
�#�����*�*�3�/��4�������0�0�.�A�������/�/�*��>�������/�/�6�6�8�(�C��
�
�o�t�y�y�'B�'B�C��
�
�j�$�)�)�"=�"=�>�������4�4�b�9rr0)
r}r~rr�r�r1r4rLrPrTrZr�r�r�s@rrFrF�s-�����G��(	=�3�
:�:�&:�:rrFspsudoesnotexist)�eolc�(`�\sQsQsnQsQsUsP!)�!SimSMTPAUTHInitialResponseChannelic���UO2oU]*O2Q6Xc6[U2]6Xc&U]*[6XcUO	Q2P!UO	Q2P!)r�plainz235 Okz571 Bad authentication)r�r�r��EXPECTED_RESPONSEr�)rr�r�s&& rr��+SimSMTPAUTHInitialResponseChannel.smtp_AUTHsW���y�y�{����7�=�=�?�g�%��4�y�A�~���7�/�/��I�I�h�'���	�	�*�+rr)r}r~rr�r�r�r�r�s@rr^r^s����,�,rr^c��\sQsQs\sQsP!)� SimSMTPAUTHInitialResponseServerir)r}r~rr�r^r^r�rrrrdrds��5�Mrrdc�:`�\sQsQsnQsQsQsQsQsUs	P!)�SMTPAUTHInitialResponseSimTestsic��[O2Um[OUm[O[m[O2Um	[O2Um
[[]1QP	Q5Um
UOOO2]*UmUOUOUO1o[O ["UQ5UmUO$O'2UOO)2UOO+2P!rv)rr�r�r/r�r�rr�r�r�r�rdrCr!r�r0r�r�r�r�r�r�r�s& rr1�%SMTPAUTHInitialResponseSimTests.setUps���*�:�:�<���"�N�N���$�,�,���!���)��
�#�/�/�+���4�
�1�I��D�:��	��I�I�$�$�0�0�2�1�5��	��Y�Y��
�
�t���?�	��&�&�.>�Y�O���������	
�
�
�����
�
���rc�<�UO[mUOO	2UO
O
2[OUO2U;	UO2[OUOP!rryrs&rr4�(SMTPAUTHInitialResponseSimTests.tearDown-r{rc���UOOQ2[O[UO
Q[OQ5oUOQQ2UO2P!)r�r�r��psu�doesnotexist)
r!ror.r�rCr0rr�r�rr�s& r�%testAUTH_PLAIN_initial_response_login�ESMTPAUTHInitialResponseSimTests.testAUTH_PLAIN_initial_response_login8sL���	�	���l�+��|�|�D�$�)�)�K�$+�$<�$<�>���
�
�5�.�)��
�
�rc�F�UOOQ2[O[UO
Q[OQ5oQUmQUm	UOQUO2vq#UO2UOU]�2P!)r�r�r�rlrmr`)r!ror.r�rCr0rr�r�rr�r�rr7)rr�r��responses&   r�$testAUTH_PLAIN_initial_response_auth�DSMTPAUTHInitialResponseSimTests.testAUTH_PLAIN_initial_response_auth?sr���	�	���l�+��|�|�D�$�)�)�K�$+�$<�$<�>����	�&��
����7�D�O�O�<����
�
������s�#rr0)
r}r~rr�r1r4rnrrr�r�r�s@rrfrfs�����&	=��$�$rrf�__main__)r��somepassword)Fr�email.mime.textrK�
email.messager�email.base64mimer�
encode_base64�email.utilsr�rr/r.r�rpr�r�rr�rXr�r��
unittest.mockr��testrr�test.supportrrrr	r
r�requires_working_socketrC�platformr�SMTPChannelr)r+�TestCaser�r�r�r&r'r�r�r�r�r�r+r
rr0�	Exceptionr�r�rZrUrtr4rFrar^rdrfr}�mainrrr�<module>r�s5��
��&�9����
��	�	�
��
������%�'�&�)�!������t�,������<�<�8��
�$/�E���!��,`6�`6�F�|�X�%6�%6��
/�|�X�%6�%6�/�,�>
6�	�
3��S�8�,�,�S�j)��*�*�)�60�H�-�-�0�8=��*�*�=�&;�x�(�(�;�@"�(�
"�9�
&�x�
�	�
2��;��
�+�,E�F�
�,�.�
�	�
)�	�(�z�U�&�&�z�z�E�$�$��6mV�8�$�$�mV�`.�
�.�4l:�x�(�(�l:�^"�"8�b�A��
,��
,�6�}�6�.$�h�&7�&7�.$�b�z���M�M�O�r

Youez - 2016 - github.com/yon3zu
LinuXploit