dkV6lRSSKrSSKrSSKJr SSKJr SSKrSSK r SSK r SSK r SSK r SSK r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJrJr SSKJr SSKJr SSKJr SSKJr SS KJr SS KJ r \RB"S S 9 \RDr"\RFS :XaSr$\$\RJl$Sr&"SS5r'"SS\'\RP5r)"SS\'\RP5r*Sr+Sr,Sr-"SS\RP5r."SS\RP5r/"SS\RP5r0"SS \RP5r1"S!S"\RP5r2S#S$S%S&.r3S'r4S(r5S)S*/S+/S,.r6"S-S.\75r8"S/S0\RJ5r9"S1S2\Rt5r;"S3S4\RP5r<"S5S6\;5r="S7S8\RP5r>\"S9S:S;9r?"S<S=\95r@"S>S?\;5rA"S@SA\RP5rB\CSB:Xa\R"5 gg)CN) EmailMessage) body_encode)support mock_socket)hashlib_helper) socket_helper)threading_helper)asyncore)smtpd)MockT)moduledarwincgNselfs 8/opt/alt/python313/lib64/python3.13/test/test_smtplib.py handle_exptr$s cUR5 UR5 UR5up4SnU(aRUS:aL[R"/U//5upgnU(aUR U5n XSnUS-nU(aUS:aMLUR 5 UR 5 UR5 g![ a N-f=f!UR 5 UR5 f=f)Nir)listensetacceptselectsendclose TimeoutError) evtbufservconnaddrnrwesents rserverr*)sKKMGGI[[]  a!emmB3GA!yy~%j FA a!e           s/CACC C  C C  C"C2cb\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrg) GeneralTests?c0[[lSUlg)N)rsmtplibsocketportrs rsetUpGeneralTests.setUpAs$ rc"[[lgr)r1r0rs rtearDownGeneralTests.tearDownEs rcXSnSnURU[R"U55 g)Nzabc .jkl foo ..bluezabc ..jkl foo ...blue) assertEqualr0 quotedata)rteststrexpecteds r testQuoteDataGeneralTests.testQuoteDataJs'-3 7#4#4W#=>rc[R"S5 UR[UR5nUR 5 g)N220 Hola mundor reply_withclientHOSTr2rrrCs r testBasic1GeneralTests.testBasic1Os.01T499- rc[R"S5 UR[URSS9nUR UR S5 UR5 g)Nr@)z 127.0.0.1iM)source_address)rrBrCrDr2r9rIrrEs rtestSourceAddressGeneralTests.testSourceAddressUsP01T499,?A ..0DE rc[R"S5 UR[<SUR<35nUR 5 g)Nr@:rArEs r testBasic2GeneralTests.testBasic2]s101dii89 rc[R"S5 UR[URSS9nUR UR S5 UR5 g)Nr@testhost)local_hostname)rrBrCrDr2r9rRrrEs rtestLocalHostNameGeneralTests.testLocalHostNamecsH01T499ZH .. ; rc[R"S5 UR[R"55 [R"S5 UR [R"5S5 UR [UR5n[R"S5 UR URR5S5 UR5 g![R"S5 f=f)Nr@) rrB assertIsNonegetdefaulttimeoutsetdefaulttimeoutr9rCrDr2sock gettimeoutrrEs rtestTimeoutDefaultGeneralTests.testTimeoutDefaultjs01 +779:%%b) 668"= 0[[tyy1F  ) )$ / //126   ) )$ /s 7 C((Dc[R"S5 UR[R"55 [R "S5 UR [URSS9n[R "S5 URURR55 UR5 g![R "S5 f=fNr@rVtimeout) rrBrWr1rXrYrCrDr2rZr[rrEs rtestTimeoutNoneGeneralTests.testTimeoutNonevs01 &2245  $ +[[tyy$[?F  $ $T * &++0023   $ $T *s CCc[R"S5 UR[5 UR [ UR SS9 SSS5 g!,(df  g=f)Nr@rr`)rrB assertRaises ValueErrorrCrDr2rs rtestTimeoutZeroGeneralTests.testTimeoutZerosA01   z * KKdiiK 3+ * *s A A#c[R"S5 UR[URSS9nUR UR R5S5 UR5 gr_) rrBrCrDr2r9rZr[rrEs rtestTimeoutValueGeneralTests.testTimeoutValuesO01T499b9 //126 rc[R"S5 UR5nURS5 [R "5nUR [UR5 SSS5 UR5 [R"S[R5nURWR5U5 g!,(df  Nd=f)N220 Hello worldrz ^connect:rrBrCset_debuglevelrcaptured_stderrconnectrDr2rrecompile MULTILINE assertRegexgetvaluerrCstderrr<s rtest_debuglevelGeneralTests.test_debuglevels12a  $ $ && NN4 +' ::lBLL9 *H5 ' & !C  Cc[R"S5 UR5nURS5 [R "5nUR [UR5 SSS5 UR5 [R"S[R5nURWR5U5 g!,(df  Nd=f)Nrmz#^\d{2}:\d{2}:\d{2}\.\d{6} connect: rnrws rtest_debuglevel_2GeneralTests.test_debuglevel_2s12a  $ $ && NN4 +' ::D ll, *H5 ' &r{)r2N)__name__ __module__ __qualname____firstlineno__r3r6r=rFrJrNrSr\rbrgrjryr~__static_attributes__rrrr,r,?sC ?     4  6 6rr,c,\rSrSr\R rSrg)SMTPGeneralTestsrN)rrrrr0SMTPrCrrrrrrs \\Frrc^\rSrSr\R r\R"\ "\ S5S5S5r U4Sjr Sr U=r$)LMTPGeneralTestsAF_UNIXz test requires Unix domain socketc@Sn[R"S5 URXR5n[R"S5 UR UR R55 UR5 g![R"S5 f=f)N!/some/local/lmtp/delivery/programrm) rrBrCr2rYrWrZr[r)r local_hostrCs r"testUnixDomainSocketTimeoutDefault3LMTPGeneralTests.testUnixDomainSocketTimeoutDefaultsq8 12 0[[YY7F  ) )$ / &++0023   ) )$ /s BBc>[TU]5 SnUR[5 UR USS9 SSS5 g!,(df  g=f)Nrrr`)superrgrerfrC)rr __class__s rrg LMTPGeneralTests.testTimeoutZeros= !8   z * KK AK .+ * *s A Ar)rrrrr0LMTPrCunittest skipUnlesshasattrr1rrgr __classcell__rs@rrrs> \\F 35WXY//rrc4UR5 [[S5(a[RnO[R nSn[R (aeUS:a_U"S[R 5 UR5(aUR5 O"US-n[R (aUS:aM_UR5(d&[R"S5 UR5 [R"5 UR5 g![a Nmf=f!UR5(d&[R"S5 UR5 [R"5 UR5 f=f)Npollir{Gz?rg?) rrrr poll2r socket_mapis_setrrtimesleep close_all)r"serv_evt client_evtpoll_funr%s rdebugging_serverrs LLN 66 " "~~H}}H !!a!e T8.. /  ""  FA!!a!e  "" JJsO JJL       "" JJsO JJL s1BD%!D5" D%% D2/D51D22D55A"Fz&---------- MESSAGE FOLLOWS ---------- z&------------ END MESSAGE ------------ c\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrg)DebuggingServerTestsNc[R"5Ul[RUl[ R[l[RUl [R"5Ul UR[l[R"5Ul[R"5Ul["R$Ul[R"5["l["R("[*S4SSS9UlUR,RR/5SSuUlUlUR,URUR 4n[R4"[6US9UlUR8R;5 URR=5 URR?5 g)NrnowhereT decode_datar}targetargs) r threading_setup thread_keyr1getfqdn real_getfqdnrsysstdout old_stdoutioStringIOoutput threadingEventrrr DEBUGSTREAMold_DEBUGSTREAMDebuggingServerrDr" getsocknamehostr2Threadrthreadstartwaitclearr serv_argss rr3DebuggingServerTests.setUps,*::<"NN$,,**kkm [[ !) #//+$00KKM))4)_6:<  $yy//;;=bqA 49YY t? &&.>YO    rcUR[lURR 5 UR R 5 [R"UR5 UR[l [RR5 UR [lU? UR#5 [R$"UR&6 gr)rr1rrrrrr join_threadrrrrr rrr doCleanupsthreading_cleanuprrs rr6DebuggingServerTests.tearDowns**  $$T[[1__  ! 00 K **DOOkk**, vv2G!bii)?A Arc[R"[URS[R S9nUR 5 gN localhostrRrar0rrDr2rLOOPBACK_TIMEOUTquitrsmtps r testBasicDebuggingServerTests.testBasic,||D$))K$+$<$<> rc$[R"5n[R"URUR S[ RURU4S9nURUR5 URURURU45 URURS5 UR5 g![a8nUR[R :XaUR#SU-5 eSnAff=f)Nr)rRrarIzcouldn't bind to source port %d)rfind_unused_portr0rrr2rr addCleanuprr9rIrRrOSErrorerrno EADDRINUSEskipTest)rsrc_portrr(s rrJ&DebuggingServerTests.testSourceAddresss 113 << 499[(/(@(@04 8/DFD OODJJ '   T00499h2G H   T00+ > IIK ww%*** ?(JK  sB5C D3D  Dc[R"[URS[R S9nUR UR5 SnURUR5U5 UR5 gNrrsOK) r0rrDr2rrrrr9nooprrrr<s rtestNOOPDebuggingServerTests.testNOOP/W||D$))K$+$<$<>  # h/ rc[R"[URS[R S9nUR UR5 SnURUR5U5 UR5 gr) r0rrDr2rrrrr9rsetrrs rtestRSETDebuggingServerTests.testRSET7rrc[R"[URS[R S9nUR UR5 SnURUR5U5 UR5 g)Nrr)rs SIZE 33554432 HELP) r0rrDr2rrrrr9ehlorrs rtestELHODebuggingServerTests.testELHO?sW||D$))K$+$<$<>  #2 h/ rc&[R"[URS[R S9nUR UR5 SnURS5 URUR5U5 UR5 g)Nrr)isEXPN not implementedEXPN) r0rrDr2rrrrputcmdr9getreplyrrs rtestEXPNNotImplemented+DebuggingServerTests.testEXPNNotImplementedHsc||D$))K$+$<$<>  #1 F (3 rc[R"[URS[R S9nUR UR5 UR[5nURS5 SSS5 URS[WR55 UR5 g!,(df  ND=f)Nrrzhelo X-INJECTEDprohibited newline characters)r0rrDr2rrrrrerfrassertInstr exceptionr)rrexcs r&test_issue43124_putcmd_escapes_newline;DebuggingServerTests.test_issue43124_putcmd_escapes_newlineRs||D$))K$+$<$<>  #   z *c KK* ++ 5s3==7IJ + *s $B44 CcH[R"[URS[R S9nUR UR5 SnURURS5U5 URURS5U5 UR5 g)Nrr)s>Cannot VRFY user, but will accept message and attempt deliverynobody@nowhere.com) r0rrDr2rrrrr9vrfyverifyrrs rtestVRFYDebuggingServerTests.testVRFY\sw||D$))K$+$<$<>  #2 #78(C %9:HE rc$[R"[URS[R S9nUR UR5 UR5 SnURUR5U5 UR5 g)Nrr)isDuplicate HELO/EHLO) r0rrDr2rrrrhelor9rrs rtestSecondHELO#DebuggingServerTests.testSecondHELOfsb||D$))K$+$<$<>  # 0 h/ rc[R"[URS[R S9nUR UR5 URUR5S5 UR5 g)Nrrs@Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFY) r0rrDr2rrrrr9helprrs rtestHELPDebuggingServerTests.testHELPqsY||D$))K$+$<$<>  # 'G H rc.Sn[R"[URS[R S9nUR UR5 URSSU5 [R"S5 UR5 URR5 URR5 UR R#5 [$<U<S[&<3nUR)UR R+5U5 g)NA test messagerrJohnSallyr r0rrDr2rrrrsendmailrrrrrrrrflush MSG_BEGINMSG_ENDr9rvrmrmexpects rtestSendDebuggingServerTests.testSendys ||D$))K$+$<$<>  # fgq) 4     )1g6 --/9rcLSn[R"[URS[R S9nUR UR5 URSSU5 [R"S5 UR5 URR5 URR5 UR R#5 [$<UR'S5<S[(<3nUR+UR R-5U5 g) NsA test messagerrrr rasciir!)r0rrDr2rrrrr#rrrrrrrrr$r%decoder&r9rvr's rtestSendBinary#DebuggingServerTests.testSendBinarys ||D$))K$+$<$<>  # fgq) 4     )188G+  # fgq) 4     )1g6 --/9rcSn[R"[URS[R S9nUR UR5 UR[5nURSSU5 SSS5 URS[WR55 [R"S5 UR!5 ["R$R'5nUR)SU5 g!,(df  N=f) Nwazzuuup linetwoz hi X-INJECTEDr hi@me.com you@me.comz2prohibited newline characters: ehlo hi\nX-INJECTEDrz X-INJECTED)r0rrDr2rrrrrerfr#rr r rrrr rrv assertNotIn)rr(rr debugouts r$test_issue43124_escape_localhostname9DebuggingServerTests.test_issue43124_escape_localhostnames ||D$))  #   z *c MM+|Q 7+ A   4 $$--/ x0+ *s &C>> D cSn[R"[URS[R S9nUR UR5 URSSU5 UR[5nURSSS/5 SSS5 [WR5nURSU5 URS U5 [R "S 5 UR#5 [$R&R)5nUR+S U5 UR+S U5 UR+S U5 UR+SU5 g!,(df  N=f)Nr5rrr6r7zX-OPTION X-INJECTED-1zX-OPTION2 X-INJECTED-2rz.X-OPTION\nX-INJECTED-1 X-OPTION2\nX-INJECTED-2rzX-OPTIONz X-OPTION2z X-INJECTED-1z X-INJECTED-2)r0rrDr2rrrrr#rerfmailr r rrrrr rrvr8)rr(rr msgr9s rtest_issue43124_escape_options3DebuggingServerTests.test_issue43124_escape_optionss || $))K,,.  # k<3   z *c IIk$<>W#X Y+#--  5s; H#N 4 $$--/ X. h/ 2 2+ *s 9E E*cSn[R"[URS[R S9nUR UR5 URSSU5 [R"S5 UR5 URR5 URR5 UR R#5 [$<U<S[&<3nUR)UR R+5U5 [,R.R+5n[0R2"S[0R45nUR7XE5 g) Nrrrz<>r rr!z ^sender: <>$)r0rrDr2rrrrr#rrrrrrrrr$r%r&r9rvr rrrrsrtru)rr(rr)r9senders rtestSendNullSender'DebuggingServerTests.testSendNullSenders ||D$))K$+$<$<>  # dGQ' 4     )1g6 --/9$$--/NBLL9 *rc[RRRS5n[R "[ URS[RS9nURUR5 URUSSS9 [R"S5 UR5 UR R#5 UR$R'5 UR(R+5 UR-5nUS [.<UR15<S [2<3nUR5X45 g) Nrrrrr  from_addrto_addrsrX-Peerr!)emailmimetextMIMETextr0rrDr2rrrr send_messagerrrrrrrrr$rr% as_stringr&r9)rr(rrr)s rtestSendMessage$DebuggingServerTests.testSendMessages JJOO $ $%5 6||D$))K$+$<$<>  # !v@ 4     335 hK )1;;='B .rc$[RRRS5nSUS'SUS'SUS'SUS '[R "[ URS [RS 9nURUR5 URU5 [R"S 5 UR5 UR!US S5 UR"R%5 UR&R)5 UR*R-5 UR/5nUS US [0<UR35<S[4<3nUR!X45 [6R8R;5n[<R>"S[<R@5nURCXV5 SHHn[<R>"SREU5[<R@5nURCXX5 MJ g)Nr foo@bar.comFromrTo Sally, FredCC?John Root , "Dinsdale" BccrrrrIr!^sender: foo@bar.com$)rr Fredzroot@localhostzwarped@silly.walks.com^recips: .*'{}'.*$)#rJrKrLrMr0rrDr2rrrrrNrrrr9rrrrrr$rr%rOr&r rrvrrrsrtruformat rr(rrr)r9rBr$to_addrs rtestSendMessageWithAddresses1DebuggingServerTests.testSendMessageWithAddressess JJOO $ $%5 6!& $$T%||D$))K$+$<$<>  # ! 4  5$? @   335 hK eH )1;;='B .$$--/3R\\B */Djj!6!=!=d!C!#/G   X / /rc[RRRS5nSUS'SUS'[R "[ URS[RS9nURUR5 URU5 [R"S5 UR5 UR R#5 UR$R'5 UR(R+5 UR-5nUS [.<UR15<S [2<3nUR5X45 [6R8R;5n[<R>"S [<R@5nURCXV5 S HHn[<R>"S REU5[<R@5nURCXX5 MJ g)NrrSrTJohn, DinsdalerUrrrrIr!rZrDinsdaler\#rJrKrLrMr0rrDr2rrrrrNrrrrrrrrr$rr%rOr&r9r rrvrrrsrtrur]r^s r testSendMessageWithSomeAddresses5DebuggingServerTests.testSendMessageWithSomeAddresses'sX JJOO $ $%5 6!& "$||D$))K$+$<$<>  # ! 4    335 hK )1;;='B .$$--/3R\\B *(Djj!6!=!=d!C!#/G   X /)rcL[RRRS5nSUS'SUS'[R "[ URS[RS9nURUR5 URUSS S 9 [R"S 5 UR5 UR R#5 UR$R'5 UR(R+5 UR-5nUS [.<UR15<S [2<3nUR5X45 [6R8R;5n[<R>"S[<R@5nURCXV5 SHHn[<R>"SREU5[<R@5nURGXX5 MJ [<R>"S[<R@5n URCXY5 g)NrrSrTrcrUrrzjoe@example.comzfoo@example.netrFrrIr!z^sender: joe@example.com$rdr\z^recips: .*'foo@example.net'.*$)$rJrKrLrMr0rrDr2rrrrrNrrrrrrrrr$rr%rOr&r9r rrvrrrsrtrur]assertNotRegex) rr(rrr)r9rBr$r_recips r%testSendMessageWithSpecifiedAddresses:DebuggingServerTests.testSendMessageWithSpecifiedAddressesDs JJOO $ $%5 6!& "$||D$))K$+$<$<>  # !'8CTU 4    335 hK )1;;='B .$$--/7F *(Djj!6!=!=d!C!#/G    2) =r||L )rc[RRRS5nSUS'SUS'SUS'[R "[ URS[RS 9nURUR5 URU5 [R"S 5 UR5 UR R#5 UR$R'5 UR(R+5 UR-5nUS [.<UR15<S [2<3nUR5X45 [6R8R;5n[<R>"S [<R@5nURCXV5 SHHn[<R>"SREU5[<R@5nURCXX5 MJ g)NrzBernard, BiancarTz#the_rescuers@Rescue-Aid-Society.comSenderrcrUrrrrIr!z-^sender: the_rescuers@Rescue-Aid-Society.com$rdr\rfr^s rtestSendMessageWithMultipleFrom4DebuggingServerTests.testSendMessageWithMultipleFromcsa JJOO $ $%5 6%& ;( "$||D$))K$+$<$<>  # ! 4    335 hK )1;;='B .$$--/KR\\Z *(Djj!6!=!=d!C!#/G   X /)rc([RRRS5nSUS'SUS'SUS'SUS 'S US 'S US 'SUS'SUS'[R "[ URS[RS9nURUR5 URU5 [R"S5 UR5 UR R#5 UR$R'5 UR(R+5 US US UR-5nUS [.<UR15<S[2<3nUR5X45 [6R8R;5n[<R>"S[<R@5nURCXV5 SHHn[<R>"SREU5[<R@5nURCXX5 MJ g)NrrSrTrrUrVrWrXrYThu, 1 Jan 1970 17:42:00 +0000 Resent-Dateholy@grail.net Resent-From&Martha , Jeff Resent-Todoe@losthope.net Resent-BccrrrrIr!z^sender: holy@grail.net$)zmy_mom@great.cooker.comJeffryr\rfr^s rtestSendMessageResent*DebuggingServerTests.testSendMessageResents JJOO $ $%5 6!& $$T%;-+-A+,,||D$))K$+$<$<>  # ! 4     eH lO335 hK )1;;='B .$$--/6 E *KDjj!6!=!=d!C!#/G   X /Lrc[RRRS5nSUS'SUS'SUS'SUS 'S US 'S US 'SUS'SUS'SUS 'S US'SUS '[R "[ URS[RS9nURUR5 UR[5 URU5 SSS5 UR5 g!,(df  N=f)NrrSrTrrUrVrWrXrYrsrtrurvrwrxryrzzThu, 2 Jan 1970 17:42:00 +0000rr)rJrKrLrMr0rrDr2rrrrrerfrNrr(rs r#testSendMessageMultipleResentRaises8DebuggingServerTests.testSendMessageMultipleResentRaisess JJOO $ $%5 6!& $$T%;-+-A+,,;-)+C-||D$))K$+$<$<>  #   z *   a + + *s C// C=) rrrrrr2rr"rrr) rrrrmaxDiffr3r6rrrJrrrrr rrrr*r/r2r:r?rCrPr`rgrlrpr|rrrrrrrsG6= A    :&: :"1(32+&/,"0H0:*>0<#0Jrrc&\rSrSrSrSrSrSrg)NonConnectingTestsic[R"5nUR[RUR5 UR[RUR S5 g)Nztest msg)r0rreSMTPServerDisconnectedrrrs rtestNotConnected#NonConnectingTests.testNotConnectedsH ||~ '88$))D '88))Z 1rcUR[[RSS5 UR[[RS5 g)Nrboguszlocalhost:bogus)rerr0rrs rtestNonnumericPort%NonConnectingTests.testNonnumericPorts6 '7<<%w 0 '7<<+ -rc[R"5nURUR5 SSS5 g!,(df  g=fr)r0rrWrZrs rtestSockAttributeExists*NonConnectingTests.testSockAttributeExistss+\\^t   dii (^^s ; A rN)rrrrrrrrrrrrrs1-)rrc&\rSrSrSrSrSrSrg)DefaultArgumentsTestsic [5UlSURS'[R"5Ul[ SS9URl[ 5[ 5sURlURlg)NPáolo rT)OK) return_value) rr>r0rrr rhas_extnr#rs rr3DefaultArgumentsTests.setUpsT>2LLN ;7 15. DII.rcSnURRUR5 URRUR5 URURRR SSSU5 URURRR SSSU5 g)N)SMTPUTF8 BODY=8BITMIMErrrrNr>r9r#call_args_list)rexpected_mail_optionss rrP%DefaultArgumentsTests.testSendMessages = txx( txx( ++::1=a@C. 0 ++::1=a@C. 0rcS/nSnURRURSSU5 URUS/5 URURRR SSSU5 g)NSTARTTLS)rrrrrr)r mail_optionsrs rtestSendMessageWithMailOptions4DefaultArgumentsTests.testSendMessageWithMailOptionsso"| I txxt\B  |4 ++::1=a@C. 0r)r>rN)rrrrr3rPrrrrrrrs@00rrc&\rSrSrSrSrSrSrg)BadHELOServerTestsic[[l[R"S5 [R Ul[R"5Ul UR[lSUl g)Ns199 no hello for you!r/) rr0r1rBrrrrrrr2rs rr3BadHELOServerTests.setUpsB$78**kkm [[  rcL[[lUR[lgr)r1r0rrrrs rr6BadHELOServerTests.tearDowns__ rcUR[R[R[UR SS5 gNrr)rer0SMTPConnectErrorrrDr2rs rtestFailingHELO"BadHELOServerTests.testFailingHELOs+ '22GLL $))[! =r)rrr2N)rrrrr3r6rrrrrrrs%=rrcV\rSrSrSS\R -S--S-rSrSrSr S r g ) TooLongLineTestsis250 OK.r} c[R"5Ul[RUl[ R"5UlUR[l[R"5Ul [R"[R[R5UlURR!S5 ["R$"UR5UlURUR(UR4n[R*"[,US9UlUR.R15 URR35 URR55 g)Nr)r rrrrrrrrrrr r1AF_INET SOCK_STREAMrZ settimeoutr bind_portr2respdatarr*rrrr)rservargss rr3TooLongLineTests.setUps*::<**kkm [[ ??$MM&..&2D2DE  R !++DII6 HHdmmTYY7&&f8D     rcURR5 UR[l[ R "UR5 U?UR5 [ R"UR6 gr) r rrrrr rrrrrrs rr6TooLongLineTests.tearDownsM  __ $$T[[1 K **DOOSRUVs/sHnSRU5PM sn5Ul/Ul[[ U]"U0UD6 gs snf)Nz 250-{0} )joinr]_extrafeaturesall_received_linesrr__init__)rextra_featuresrkwxrs rrSimSMTPChannel.__init__>sT gg/= ?~!m""1%~ ?A"$ nd,d9b9 @sAc >URUR:XaaURRUR5n[ S[ U5[RS9 /UlURU5 gURR!UR5 ["TU]I5 g![aGnURUlURUR<SUR<35 SnAgSnAff=f)NzData:)file ) smtp_stateAUTH _emptystringrreceived_linesprintreprr r auth_objectrCOMMANDpush smtp_code smtp_errorrappendrfound_terminator)rliner(rs rrSimSMTPChannel.found_terminatorEs ??dii '$$))$*=*=>D '4:E,=,= >"$D  A  &  &&t':':;  " % A"&,, Q[[!,,?@@  As+B11 D;=C==DcUR(dURS5 gUR(aSUR;aURS5 gURbURS5 gUR 5n[ U5S;aURS5 gSUSR5RS S 5-n[X5Ul URUlUR[ U5S :Xa US 5 gS5 g![a# URS RU55 gf=f)Nz503 Error: send EHLO firstrz(500 Error: command "AUTH" not recognizedz3503 Bad sequence of commands: already authenticated)rr}z/501 Syntax: AUTH [initial-response]z_auth_%sr-_zQ504 Command parameter not implemented: unsupported authentication mechanism {!r}r}r) seen_greetingr extended_smtprauthenticated_usersplitlenlowerreplacegetattrrAttributeErrorr]rr)rargrauth_object_names r smtp_AUTHSimSMTPChannel.smtp_AUTHTs!! II2 3 !!V43F3F%F II@ A   " " . IIE G yy{ t9F " IIG H %Q (?(?S(II &t>D  )) CINa==   II77=v>N7O Q  sD*EEcU(aXlURS5 OURS5 URUlg)Nz235 Authentication Succeededz&535 Authentication credentials invalid)rrrr)ruservalids r_authenticatedSimSMTPChannel._authenticatedms0 &* # II4 5 II> ?,,rcj[R"URS55RS5$)Nr-utf-8)base64 decodebytesencoder.)rstrings r_decode_base64SimSMTPChannel._decode_base64us'!!&--"89@@IIrcUcURS5 gURU5nURS5Gtp4nUR XE[ S:H5 g![a*nURSR X&55 SnAgSnAff=f)Nz334 =535 Splitting response {!r} into user and password failed: {}r)rrrrfr]rsim_auth)rrlogpassrrpasswordr(s r _auth_plainSimSMTPChannel._auth_plainxs ; IIf ))#.G %,]]4%8"(   (1+&= >   ((.w(:< sA B " BB cUcURS5 g[US5(d(URU5UlURS5 gURU5nUR URU[ S:H5 U?g)Nz334 VXNlcm5hbWU6_auth_login_userz334 UGFzc3dvcmQ6r)rrrrrr )rrr s r _auth_loginSimSMTPChannel._auth_loginsw ; II( )122$($7$7$))#.G $+MMO! !%  ""7+##$:;BB7K!!y{    5F&F G  ''-vg'9; sC C4 C//C4cfSnX R-S-nURU5 XlSUlg)NzH250-testhost 250-EXPN 250-SIZE 20000000 250-STARTTLS 250-DELIVERBY z250 HELPT)rrrr)rrresps r smtp_EHLOSimSMTPChannel.smtp_EHLOs7$ )))J6 $ !rcU[;a5URS[U<S[R"U5<35 gURSU-5 g)N250 rz550 No such user: %s) sim_usersrr0 quoteaddrrs r smtp_VRFYSimSMTPChannel.smtp_VRFYs< )  IIYs^W5F5Fs5KL M II,s2 3rcjUR5nU[;a[Un[U5HoupE[R"U5nU[ U5S- :a"UR S[U<SU<35 MOUR S[U<SU<35 Mq gUR S5 g)Nrz250-rr&z550 No access for you!)r sim_lists enumerater0r(rrr')rr list_name user_listr% user_email quoted_addrs r smtp_EXPNSimSMTPChannel.smtp_EXPNsIIK  !!),I!*9!5 %// ; s9~))IIYz-BKPQIIYz-BKPQ "6 II. /rc>URc[[U]U5 gUR UR5 UR 5 gr) quit_responserr smtp_QUITrclose_when_donerrrs rr6SimSMTPChannel.smtp_QUITs<    % .$ 1# 6 IId(( )  "rc>URc[TU] U5 gURUR5 UR(aUR 5 ggr) mail_responser smtp_MAILr disconnectr7r8s rr<SimSMTPChannel.smtp_MAILsF    % G c " IId(( )$$&rc>URc[TU] U5 gU=RS- slUR URURS- 5 gNr) rcpt_responser smtp_RCPT rcpt_countrr8s rrBSimSMTPChannel.smtp_RCPTsM    % G c "  1 $$$T__Q%678rcN>U=RS- sl[TU] U5 gr@) rset_countr smtp_RSETr8s rrGSimSMTPChannel.smtp_RSETs 1 #rcv>URc[TU] U5 gURUR5 gr) data_responser smtp_DATArr8s rrKSimSMTPChannel.smtp_DATAs.    % G c " IId(( )rcerrrs r handle_errorSimSMTPChannel.handle_error r) rrrrrrrrrr)!rrrrr5r;rArJrCrFr=rrrrrrrr rrrr#r)r2r6r<rBrGrKrNrrrs@rrr2sMMMMJJJ D: #>2'J ? &* H$ "4 0#'9* rrc6\rSrSr\rSrSrSrSr Sr Sr g) SimSMTPServerich/Ul0Ul[RR"U/UQ70UD6 gr)_extra_features _addressesr SMTPServerrrrrs rrSimSMTPServer.__init__s/! !!$444rcZURURXUURS9Ulg)Nr) channel_classrT _decode_data _SMTPchannelrr#r$s rhandle_acceptedSimSMTPServer.handle_accepteds0 ..  $d))/+rc<X RS'X0RS'g)Nfromtos)rU)rpeermailfromrcpttosdatas rprocess_messageSimSMTPServer.process_messages"*!(rc:URRU5 gr)rTr)rfeatures r add_featureSimSMTPServer.add_features ##G,rcerrrs rrNSimSMTPServer.handle_errorrPr)r\rUrTN) rrrrrrZrr^rgrkrNrrrrrRrRs "M5 + )-rrRc\rSrSrSrSrSrSrSrSr Sr S r S r S r S r\R "S SS9S5r\R "S SS9S5rSrSrSrSrSrSrSrSrSrSrSrSrSrSr g )! SMTPSimTestsic[R"5Ul[RUl[ R[l[R"5Ul [R"5Ul [[S4SSS9Ul URRR5SUlURURUR4n[R "["US9UlUR$R'5 URR)5 URR+5 gNrrTrrr)r rrr1rrrrrrrrRrDr"rr2rrrrrrrs rr3SMTPSimTests.setUp s*::<"NN$,,!) #//+!4)_$O II$$00215 YY t? &&.>YO    rc4UR[lURR 5 UR R 5 [R"UR5 U? UR5 [R"UR6 gr rr1rrrrrr rrrrrrs rr6SMTPSimTests.tearDownb**  $$T[[1 K **DOO ,,b1%'%/)+*,%'   ,,.?@"A OODMM!, -# '<=> rc [R"[URS[R S9n[ R5HOup#S[U<S[R"U5<3S54nURURU5U5 MQ SnSSU-RS54nURURU5U5 UR5 g) Nrrrrr-r&zNo such user: %s)r0rrDr2rrr'itemsbytesr(r9rrr)rr addr_specnameexpected_knownuexpected_unknowns rrSMTPSimTests.testVRFYBs||D$))K$+$<$<> )0OI!5*.0A0A)0L*N)0$23N   TYYy1> B 1 !"4q"8!@!@!IJ 1'78 rc [R"[URS[R S9n[ R5Hup#/nUH6nUR[U<S[R"U5<35 M8 S[SRU5S54nURURU5U5 M SnSnURURU5U5 UR5 g) Nrrrrr!r-zPSU-Members-List)rsNo access for you!)r0rrDr2rrr,rrr'r(rrr9r|r) rrlistnamemembersusersr(rrrs rtestEXPNSMTPSimTests.testEXPNQs||D$))K$+$<$<>"+!2 HE ! g6G6G6JKL!55)97#CDN   TYYx0. A "3 7 1'78 rc$URRS5 [R"[UR S[ RS9nUR[S[S5nURUS5 UR5 g)N AUTH PLAINrrrrsAuthentication Succeeded r"rkr0rrDr2rrloginr r9rrrr"s rtestAUTH_PLAINSMTPSimTests.testAUTH_PLAINag l+||D$))K$+$<$<>zz(1+x{3 AB rc$URRS5 [R"[UR S[ RS9nUR[S[S5nURUS5 UR5 g)N AUTH LOGINrrrrrrrs rtestAUTH_LOGINSMTPSimTests.testAUTH_LOGINirrcvURRS5 [R"[UR S[ RS9n[uUl Ul URS5 URSURSS9nURUS5 SSS5 g!,(df  g=f) Nrrrtest_auth_loginLOGINTinitial_response_okrr"rkr0rrDr2rrr rr rauth auth_loginr9rs r"testAUTH_LOGIN_initial_response_ok/SMTPSimTests.testAUTH_LOGIN_initial_response_okqs l+ \\$ +")":":TRSU5 g)Ns BuGgYbUgGyr)r9) challengers r auth_buggy/SMTPSimTests.testAUTH_BUGGY..auth_buggys   ]I 6rrrtest_auth_buggyz&^Server AUTH mechanism infinite loop.*BUGGYFrr)r"rkr0rrDr2rrr rr rassertRaisesRegex SMTPExceptionrr)rrrexpectcms` rtestAUTH_BUGGYSMTPSimTests.testAUTH_BUGGYs l+ || $))K,,  '/ $DIt} II' (>F''(=(=vF" ':5 IG JJLGF JJLs%ACC 1C CCC-rT)opensslc$URRS5 [R"[UR S[ RS9nUR[S[S5nURUS5 UR5 g)Nz AUTH CRAM-MD5rrrrrrrs rtestAUTH_CRAM_MD5SMTPSimTests.testAUTH_CRAM_MD5sg o.||D$))K$+$<$<>zz(1+x{3 AB rc$URRS5 [R"[UR S[ RS9nUR[S[S5nURUS5 UR5 g)NzAUTH BOGUS PLAIN LOGIN CRAM-MD5rrrrrrrs rtestAUTH_multipleSMTPSimTests.testAUTH_multiplesj ?@||D$))K$+$<$<>zz(1+x{3 AB rc SS1n[R"5 URS5 UH-nURR SR U55 M/ UHnURUS9 [R"[URS[RS9nURS5 [S [S sUlUlS UR%5R'S S 5-nUR)U[+X455nUR-US5 UR/5 SSS5 M g![a GN#f=f!,(df  GM=f)NPLAINrzCRAM-MD5zAUTH {}) mechanismrrfoorrauth_rrr)hashlibraddrfr"rkr]subTestr0rrDr2rrrr rr rrrrr9r)r supportedrrmethodr"s rtest_auth_functionSMTPSimTests.test_auth_functions"g&  & KKM MM* %"I II ! !)"2"29"= >#"I 2||D$))3>,3,D,DF % +3A; ( 4= 9??#4#<#  s# fd112  !4!45 T499% !4!45 ##% fd112 rc[R"[UR5nUR 5up#UR US5 SSS5 UR [RWRS5 [R"[UR5nUR5 SSS5 UR [RURS5 g!,(df  N=f!,(df  NK=f)Nrsfoo) r0rrDr2rr9rerrrrs rtest_with_statement SMTPSimTests.test_with_statements \\$ *d IIKMD   T3 '+ '88$))VL \\$ *d JJL+ '88$))VL + *+ *s%C(#C9( C69 DcUR[R5n[R"[UR 5nUR 5 SURRl SSS5 SSS5 URWRRS5 URURRS5 g!,(df  Nc=f!,(df  Nl=f)Nz421 QUIT FAILEDs QUIT FAILED)rer0rrrDr2rr"r\r5r9r rr)rerrorrs r test_with_statement_QUIT_failure-SMTPSimTests.test_with_statement_QUIT_failures   w<< =dDII.$ 7H &&4/> 22C8 33^D /.> =s#&C ,C2C  C C  C.c[R"[URS[R S9nUR 5 SURRl SURRl UR[R5 URSSS5 SSS5 URUR5 g!,(df  N*=f)Nrrz451 Requested action abortedTrr  test message)r0rrDr2rrrr"r\r;r=reSMTPSenderRefusedr#rWrZrs rtest__rest_from_mail_cmd%SMTPSimTests.test__rest_from_mail_cmds||D$))K$+$<$<> /M ,,0 )   w88 9 MM&'> :: $))$: 9s C Cc[R"[URS[R S9nUR 5 SURRl UR[R5 URSSS5 SSS5 URUR5 URURRR S5 g!,(df  NZ=f)Nrrz421 closing connectionrr rr)r0rrDr2rrrr"r\r;rerr#rWrZr9rFrs rtest_421_from_mail_cmd#SMTPSimTests.test_421_from_mail_cmds||D$))K$+$<$<> /G ,   w88 9 MM&'> :: $))$ //::A>: 9s >C&& C4cL[R"[URS[R S9nUR 5 SS/URRl UR[R5nURS/SQS5 SSS5 URUR5 URURRR S5 UR#WR$R&SS S 05 g!,(df  N=f) Nrrz 250 accepted 421 closingr)r FrankGeorgerrr)rsclosing)r0rrDr2rrrr"r\rAreSMTPRecipientsRefusedr#rWrZr9rFassertDictEqualr r)rrr&s rtest_421_from_rcpt_cmd#SMTPSimTests.test_421_from_rcpt_cmds||D$))K$+$<$<> 0> /N ,   w<< = MM&"> O> $))$ //::A> Q[[--a07 =s D D#c"SS[5nXRl[R"[ UR S[RS9nUR5 UR[R5 URSS/S5 SSS5 URUR5 URURR R"S5 g!,(df  NZ=f) Nc(^\rSrSrU4SjrSrU=r$)=SMTPSimTests.test_421_from_data_cmd..MySimSMTPChannelicz>URUR:XaURS5 g[TU]5 g)Nr)rDATArrr)rrs rrNSMTPSimTests.test_421_from_data_cmd..MySimSMTPChannel.found_terminators*??dii/IIm,G,.rr)rrrrrrrrs@rMySimSMTPChannelrs  / /rrrrz John@foo.orgz Sally@foo.orgrr)rr"rZr0rrDr2rrrre SMTPDataErrorr#rWrZr9r\rC)rrrs rtest_421_from_data_cmd#SMTPSimTests.test_421_from_data_cmds /~ / #3 ||D$))K$+$<$<>   w44 5 MM.?*;^ L6 $))$ //::A>6 5s C++ C9c [R"[URS[R S9nUR UR5 UR5 URUR5 URURS55 URURSSSSS/S 9 URUR SSS/S 9 g) Nrrsmtputf8rr rrrroptions)r0rrDr2rrrrrr does_esmtprrreSMTPNotSupportedErrorr#r=rs r4test_smtputf8_NotSupportedError_if_no_server_supportASMTPSimTests.test_smtputf8_NotSupportedError_if_no_server_supports|| $))K,,.  #  ( z23   ) ) MM GR .K  M   ) ) IIv'D  Frc([R"[URS[R S9nUR UR5 UR[URSSS5 UR[URS5 g)NrrAliceuBöbruÄlice) r0rrDr2rrrrreUnicodeEncodeErrorr#r=rs r"test_send_unicode_without_SMTPUTF8/SMTPSimTests.test_send_unicode_without_SMTPUTF8$sh|| $))K,,.  # ,dmmWfbQ ,diiBrcf[5nSUS'SUS'SUS'[R"[URS[ R S9nURUR5 UR[R5 URU5 SSS5 g!,(df  g=f) NrrTrerUNudge nudge, wink, wink ὠ9Subjectrr) rr0rrDr2rrrrrerrN)rr>rs r9test_send_message_error_on_non_ascii_addrs_if_no_smtputf8FSMTPSimTests.test_send_message_error_on_non_ascii_addrs_if_no_smtputf8,sn-F D :I|| $))K,,.  #   w<< =   c "> = =s B"" B0c$[R"[URS[R S9nUR UR5 [5n[RRS5US'[RRS5US'URURU505 URURR SS5 URURR S S /5 g) Nrr)uMichaëlmichael@example.comrT)uRenérene@example.comrUrarrbr)r0rrDr2rrrrrrJutils formataddrrrNr9r"rU)rrrs r1test_name_field_not_included_in_envelop_addresses>SMTPSimTests.test_name_field_not_included_in_envelop_addresses:s|| $))K,,.  #.++001TU ../LM  T..w7< --f57LM --e47I6JKrcSn[R"[URS[R S9nUR UR5 URSSU5 URS/URRR5 URS/URRR5 g)Nrrrrr zmail from: size=14zrcpt to:) r0rrDr2rrrrr#rr"r\rrs r test_lowercase_mail_from_rcpt_to-SMTPSimTests.test_lowercase_mail_from_rcpt_toIs || $))K,,.  # fgq) 12DII4J4J4]4]^ ()499+A+A+T+TUrrr2rr"rrrN)!rrrrr3r6rrrrrrrrrrrequires_hashdigestrrrrrrrrrrrrr rrrrrrrprps$ = ,  GG(''t<=''t<=, ME%? P? F C # L Vrrpc.\rSrSrSrSrSSjrSrg)SimSMTPUTF8ServeriVc^SS/Ul[RR"U/UQ70UD6 g)Nr8BITMIME)rTr rVrrWs rrSimSMTPUTF8Server.__init__Xs/!+J7 !!$444rc pURURXUURURS9Ulg)Nrenable_SMTPUTF8)rZrTr[r"r\r]s rr^!SimSMTPUTF8Server.handle_accepted_s9 ..  $d)) 00/ rNcLXlX lX0lX@lXPlX`lgr) last_peer last_mailfrom last_rcpttos last_messagelast_mail_optionslast_rcpt_options)rrcrdrerfr rcpt_optionss rrg!SimSMTPUTF8Server.process_messagefs%%# !-!-r)r\rTr)r&r(r%r*r')NN)rrrrrr^rgrrrrrrVs5 KOJN.rrc<\rSrSrSrSrSrSrSrSr Sr S r g) SMTPUTF8SimTestsipNc[R"5Ul[RUl[ R[l[R"5Ul [R"5Ul [[S4SSSS9Ul URRR5SUlURURUR4n[R "["US9UlUR$R'5 URR)5 URR+5 g)NrrFTr!rr)r rrr1rrrrrrrrrDr"rr2rrrrrrrs rr3SMTPUTF8SimTests.setUpts*::<"NN$,,!) #//+%tQi276:< II$$00215 YY t? &&.>YO    rc4UR[lURR 5 UR R 5 [R"UR5 U? UR5 [R"UR6 grrurs rr6SMTPUTF8SimTests.tearDownrwrc6[R"[URS[R S9nUR UR5 UR5 URUR5 URURS55 g)Nrrr) r0rrDr2rrrrrrrrrs r$test_test_server_supports_extensions5SMTPUTF8SimTests.test_test_server_supports_extensionssd|| $))K,,.  #  (  j12rcSRS5n[R"[URS[ R S9nURUR5 URSSUSS/S 9 URURRS5 URURRS/5 URURRU5 URSURR 5 URSURR 5 URURR"/5 g) N$¡a test message containing unicode!rrruJőhnuSállyrrr)rr0rrDr2rrrrr#r9r"r&r'r(rr)r*rs r,test_send_unicode_with_SMTPUTF8_via_sendmail=SMTPUTF8SimTests.test_send_unicode_with_SMTPUTF8_via_sendmails 2 9 9' B|| $))K,,.  # gx$3Z#@  B 00': //(< //3 otyy'B'BC j$))"="=> 44b9rctSRS5n[R"[URS[ R S9nURUR5 UR5 URURSSS/S9S 5 URURS 5S 5 URURU5S 5 URURRS5 URURR S /5 URURR"U5 UR%SURR&5 UR%SURR&5 URURR(/5 g) Nr7rrruJőrrrruJános)rr0rrDr2rrrrrr9r=rcptrfr"r&r'r(rr)r*rs r1test_send_unicode_with_SMTPUTF8_via_low_level_APIBSMTPUTF8SimTests.test_send_unicode_with_SMTPUTF8_via_low_level_APIsB 2 9 9' B|| $))K,,.  #   IIeoz%BI C   8,l; 1|4 00%8 //(< //3 otyy'B'BC j$))"="=> 44b9rcH[5nSUS'SUS'SUS'URS5 [R"S5n[R "[ URS [RS 9nURUR5 URURU505 URURRS 5 URURR S/5 URURR"R%5U5 UR'S URR(5 UR'S URR(5 URURR*/5 g)NrrTrerUr r u1oh là là, know what I mean, know what I mean? u< From: Páolo 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? rru főo@bar.comrr)r set_contenttextwrapdedentr0rrDr2rrrrr9rNr"r&r'r(r.rr)r*)rr>r<rs r2test_send_message_uses_smtputf8_if_addrs_non_asciiCSMTPUTF8SimTests.test_send_message_uses_smtputf8_if_addrs_non_asciis<n-F D :I MN?? $ || $))K,,.  # **3/4 00.A //*> //668(C otyy'B'BC j$))"="=> 44b9rr) rrrrrr3r6r4r8r<rBrrrrr.r.ps%G( =3 ::&:rr.spsudoesnotexistr)eolc\rSrSrSrSrg)!SimSMTPAUTHInitialResponseChannelicUR5nUSR5S:Xa.[U5S:XaUS[:XaUR S5 gUR S5 g)Nrplainr}rz235 Okz571 Bad authentication)rrrEXPECTED_RESPONSEr)rrrs rr+SimSMTPAUTHInitialResponseChannel.smtp_AUTHsWyy{ 7==?g %4yA~7//IIh' *+rrN)rrrrrrrrrrFrFs ,rrFc\rSrSr\rSrg) SimSMTPAUTHInitialResponseServerirN)rrrrrFrZrrrrrLrLs5MrrLc,\rSrSrSrSrSrSrSrg)SMTPAUTHInitialResponseSimTestsic[R"5Ul[RUl[ R[l[R"5Ul [R"5Ul [[S4SSS9Ul URRR5SUlURURUR4n[R "["US9UlUR$R'5 URR)5 URR+5 grr)r rrr1rrrrrrrrLrDr"rr2rrrrrrrs rr3%SMTPAUTHInitialResponseSimTests.setUps*::<"NN$,,!) #//+4 1ID: II$$00215 YY t? &&.>YO    rc4UR[lURR 5 UR R 5 [R"UR5 U? UR5 [R"UR6 grrurs rr6(SMTPAUTHInitialResponseSimTests.tearDownrwrcURRS5 [R"[UR S[ RS9nURSS5 UR5 g)Nrrrpsu doesnotexist) r"rkr0rrDr2rrrrrs r%testAUTH_PLAIN_initial_response_loginESMTPAUTHInitialResponseSimTests.testAUTH_PLAIN_initial_response_loginsL l+||D$))K$+$<$<> 5.) rc<URRS5 [R"[UR S[ RS9nSUlSUl URSUR5up#UR5 URUS5 g)NrrrrTrUrHr)r"rkr0rrDr2rrrr r auth_plainrr9)rrrresponses r$testAUTH_PLAIN_initial_response_authDSMTPAUTHInitialResponseSimTests.testAUTH_PLAIN_initial_response_authsr l+||D$))K$+$<$<> & 7DOO<  s#rrN) rrrrr3r6rVr[rrrrrNrNs& =$rrN__main__)Eremail.mime.textrJ email.messageremail.base64mimer encode_base64 email.utilsrrr1r0rrrrrrrr@rrtestrr test.supportrrr r r unittest.mockr requires_working_socketrDplatformr SMTPChannelr*r,TestCaserrrr%r&rrrrrr'r rr, ExceptionrrrVrRrprr.rIrFrLrNrmainrrrrls& &9  %'&)!t,<<8 $/E!,`6`6F|X%6%6 /|X%6%6/,> 6 3S8,,Sj)**)60H--08=**=&;x((;@#+#,'/  2;+,EF,.  ) (wU&&wtE$$6LV8$$LV^ . .4l:x((l:^""8bA , ,6}6.$h&7&7.$b z MMOr