grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jw±ã@sV ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl Z ddl m Zgd¢ZdZdZdZdZdZd Ze d ej¡ZGd d „d eƒZGd d„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„deƒZ Gdd„deƒZ!Gdd„deƒZ"Gdd„deƒZ#dd „Z$d!d"„Z%d#d$„Z&d%d&„Z'd'd(„Z(zddl)Z)Wn e*y¿d)Z+Ynwd*Z+Gd+d,„d,ƒZ,e+rØGd-d.„d.e,ƒZ-e .d.¡d/Z/Gd0d1„d1e,ƒZ0e1d2k�r)d3d4„Z2e2d5ƒZ3e2d6ƒ 4d7¡Z5e6d8ƒd9Z7 e j8 9¡Z:e:�sne7e:Z7qýe6d;e;e7ƒƒe,d<ƒZe3e5e7¡e< ?¡dSdS)=éN)Ú body_encode) Ú SMTPExceptionÚSMTPNotSupportedErrorÚSMTPServerDisconnectedÚSMTPResponseExceptionÚSMTPSenderRefusedÚSMTPRecipientsRefusedÚ SMTPDataErrorÚSMTPConnectErrorÚ SMTPHeloErrorÚSMTPAuthenticationErrorÚ quoteaddrÚ quotedataÚSMTPéiÑú s i éz auth=(.*)c@ó eZdZdS)rN©Ú__name__Ú __module__Ú __qualname__©rrú./opt/alt/python310/lib64/python3.10/smtplib.pyrHórc@r)rNrrrrrrKrrc@r)rNrrrrrrRrrc@óeZdZ dd„ZdS)rcCs||_||_||f|_dS©N)Ú smtp_codeÚ smtp_errorÚargs)ÚselfÚcodeÚmsgrrrÚ__init__cszSMTPResponseException.__init__N©rrrr#rrrrrZs rc@r)rcCs"||_||_||_|||f|_dSr)rrÚsenderr)r r!r"r%rrrr#oszSMTPSenderRefused.__init__Nr$rrrrrhs rc@r)rcCs||_|f|_dSr)Ú recipientsr)r r&rrrr#}s zSMTPRecipientsRefused.__init__Nr$rrrrrus rc@r)r Nrrrrrr ‚rr c@r)r Nrrrrrr …rr c@r)r Nrrrrrr ˆrr c@r)r Nrrrrrr ‹rr cCs@ tj |¡\}}||fdkr| ¡ d¡r|Sd|Sd|S)N©Úr(ú)ÚemailÚutilsÚ parseaddrÚstripÚ startswith©Z addrstringZ displaynameÚaddrrrrr ’s r cCs$tj |¡\}}||fdkr|S|S)Nr')r*r+r,r/rrrÚ _addr_onlyŸs r1c Cs t ddt dt|¡¡S)Nz(?m)^\.z..ú(?:\r\n|\n|\r(?!\n))©ÚreÚsubÚCRLF©Údatarrrr§s ÿrcCst dd|¡S)Ns(?m)^\.s..)r4r5)ZbindatarrrÚ_quote_periods°ór9cCst dt|¡S)Nr2r3r7rrrÚ _fix_eols³r:r;FTc@s€eZdZ dZdZdZdZdZdZdZ e Z ddde j dfdd„Zdd „Zd d „Zd d „Zdd„Zdd„ZdNdd„Zdd„ZdOdd„Zdd„ZdOdd„ZdOdd„ZdOdd „Zd!d"„ZdOd#d$„Zd%d&„Zd'd(„Zd)d*„ZdPd,d-„Z dPd.d/„Z!d0d1„Z"d2d3„Z#e#Z$d4d5„Z%d6d7„Z&d8d9œd:d;„Z'dQdd?„Z)dQd@dA„Z*d8d9œdBdC„Z+dRdDdE„Z, + +dSdFdG„Z-  +dTdHdI„Z.dJdK„Z/dLdM„Z0dS)UrrNÚehloFr(c Csº ||_||_i|_d|_||_d|_|r*| ||¡\}}|dkr*| ¡t||ƒ‚|dur3||_ dSt   ¡}d|vr@||_ dSd} z t   t   ¡¡} Wn t jyUYnwd| |_ dS)NÚasciiréÜÚ.z 127.0.0.1z[%s])Ú_hostÚtimeoutÚesmtp_featuresÚcommand_encodingÚsource_addressÚ_auth_challenge_countÚconnectÚcloser Úlocal_hostnameÚsocketZgetfqdnZ gethostbynameZ gethostnameZgaierror) r ÚhostÚportrHrArDr!r"Zfqdnr0rrrr#ås0   ÿz SMTP.__init__cCs|Srr©r rrrÚ __enter__szSMTP.__enter__cGs`z*z| d¡\}}|dkrt||ƒ‚Wn tyYnwW| ¡dSW| ¡dS| ¡w)NZQUITéÝ)ÚdocmdrrrG)r rr!ÚmessagerrrÚ__exit__s ÿ ÿþ þz SMTP.__exit__cCs ||_dSr)Ú debuglevel)r rRrrrÚset_debuglevel"s zSMTP.set_debuglevelcGsD|jdkrttj ¡ ¡g|¢RdtjiŽdSt|dtjiŽdS)NéÚfile)rRÚprintÚdatetimeZnowÚtimeÚsysÚstderr©r rrrrÚ _print_debug+s &zSMTP._print_debugcCsF|dur |s tdƒ‚|jdkr| d||f|j¡t ||f||j¡S)Nú0Non-blocking socket (timeout=0) is not supportedrz connect: to)Ú ValueErrorrRr\rDrIZcreate_connection)r rJrKrArrrÚ _get_socket1s   ÿzSMTP._get_socketÚ localhostcCsØ |r||_|s<| d¡| d¡kr<| d¡}|dkr<|d|…||dd…}}zt|ƒ}Wn ty;tdƒ‚w|sA|j}t d|||¡|  |||j ¡|_ d|_ |  ¡\}}|jdkrh| dt|ƒ¡||fS)Nú:rrTznonnumeric portzsmtplib.connectúconnect:)rDÚfindÚrfindÚintr^ÚOSErrorÚ default_portrYÚauditr_rAÚsockrUÚgetreplyrRr\Úrepr)r rJrKrDÚir!r"rrrrF;s*    ÿ  z SMTP.connectcCs€ |jdkr| dt|ƒ¡|jr[A-Za-z0-9][A-Za-z0-9\-]*) ?Úfeature)rBrxÚehlo_msgrHrjr�rGrÚ ehlo_respÚ does_esmtpÚdecodeÚsplitÚ OLDSTYLE_AUTHÚmatchÚgetÚgroupsr4ÚgroupÚlowerÚstringÚendr-) r r‹r!r"r„ÚeachZ auth_matchÚmrŽÚparamsrrrr<½sF   ÿ  ÿ  ÿ ÿ €z SMTP.ehlocCs | ¡|jvSr)r™rB)r ÚoptrrrÚhas_extnðsz SMTP.has_extncCs | d|¡| ¡dS)NÚhelprTrˆr[rrrr¡ôs  z SMTP.helpcCs d|_| d¡S)Nr=Úrset)rCrOrLrrrr¢ús z SMTP.rsetcCs& z| ¡WdStyYdSwr)r¢rrLrrrÚ_rsetÿs  ÿz SMTP._rsetcCs | d¡S)NÚnoop)rOrLrrrr¤ s z SMTP.nooprcCsj d}|r%|jr%tdd„|Dƒƒr| d¡rd|_ntdƒ‚dd |¡}| dd t|ƒ|f¡| ¡S) Nr(css�|] }| ¡dkVqdS)Úsmtputf8N)r™)Ú.0ÚxrrrÚ s€zSMTP.mail..r¥zutf-8z SMTPUTF8 not supported by serverrsÚmailz FROM:%s%s) r‘Úanyr rCrrƒrxr rj)r r%ÚoptionsÚ optionlistrrrr©s  ÿz SMTP.mailcCs> d}|r|jrdd |¡}| ddt|ƒ|f¡| ¡S)Nr(rsÚrcptzTO:%s%s)r‘rƒrxr rj)r Zrecipr«r¬rrrr­$s  z SMTP.rcptcCsÀ | d¡| ¡\}}|jdkr| d||f¡|dkr"t||ƒ‚t|tƒr.t|ƒ d¡}t |ƒ}|dd…t kr>|t }|dt }|  |¡| ¡\}}|jdkr\| d||f¡||fS)Nr8rzdata:ibr=éþÿÿÿó.) rxrjrRr\r rnror;rpr9ÚbCRLFrr)r r"r!ÚreplÚqrrrr8,s$        z SMTP.datacCó | dt|ƒ¡| ¡S)NÚvrfy©rxr1rj©r ZaddressrrrÚverifyIóz SMTP.verifycCr³)NÚexpnrµr¶rrrr¹Pr¸z SMTP.expncCsp |jdur0|jdur2d| ¡dkrdks4n| ¡\}}d|kr*dks6nt||ƒ‚dSdSdSdS)NéÈri+)rŠr�r<r‰r )r r!r„rrrÚehlo_or_helo_if_neededWs   üzSMTP.ehlo_or_helo_if_neededT©Úinitial_response_okc Csì | ¡}|r |ƒnd}|dur)t| d¡dd�}| d|d|¡\}}d|_n | d|¡\}}d|_|dkri|jd7_t |¡}t||ƒ d¡dd�}| |¡\}}|jtkretd t ||fƒƒ‚|dks8|d vrq||fSt ||ƒ‚) Nr=r()ZeolZAUTHrsrTriNz4Server AUTH mechanism infinite loop. Last response: ©éëi÷) ÚupperÚ encode_base64rprOrEÚbase64Z decodebytesÚ _MAXCHALLENGErrkr ) r Z mechanismZ authobjectr½Zinitial_responseZresponser!r„Ú challengerrrr�hs4 ÿ  ÿÿø  z SMTP.authcCs2 |durdS|jdt |j d¡|d¡ ¡S)Nrsr=Zmd5)ÚuserÚhmacZHMACÚpasswordrpZ hexdigest©r rÄrrrÚ auth_cram_md5˜s ÿÿzSMTP.auth_cram_md5cCs d|j|jfS)Nz%s%s)rÅrÇrÈrrrÚ auth_plain¡szSMTP.auth_plaincCs |dus |jdkr |jS|jS)Né)rErÅrÇrÈrrrÚ auth_login¦szSMTP.auth_loginc sÜ | ¡| d¡stdƒ‚|jd ¡‰gd¢}‡fdd„|Dƒ}|s(tdƒ‚|||_|_|D]:}d| ¡  dd ¡}z|j |t ||ƒ|d �\}} |d vrV|| fWSWq1t yk} z| } WYd} ~ q1d} ~ ww| ‚) Nr�z,SMTP AUTH extension not supported by server.)zCRAM-MD5ZPLAINZLOGINcsg|]}|ˆvr|‘qSrr)r¦r�©Zadvertised_authlistrrÚ ×sÿzSMTP.login..z(No suitable authentication method found.Zauth_ú-Ú_r¼r¾) r»r rrBr“rrÅrÇr™rvr�Úgetattrr ) r rÅrÇr½Zpreferred_authsZauthlistZ authmethodZ method_namer!r„r†Zlast_exceptionrrÍrÚlogin®s6 ÿ  þÿ€ÿz SMTP.logincCsî | ¡| d¡stdƒ‚| d¡\}}|dkrrtstdƒ‚|dur+|dur+tdƒ‚|dur7|dur7tdƒ‚|dus?|durJddl}| d t d ¡|durUt j ||d �}|j |j |jd �|_ d|_d|_d|_i|_d |_||fSt||ƒ‚)NÚstarttlsz+STARTTLS extension not supported by server.ZSTARTTLSr>z&No SSL support included in this Pythonú4context and keyfile arguments are mutually exclusiveú5context and certfile arguments are mutually exclusiverúAkeyfile and certfile are deprecated, use a custom context insteadrË©ÚcertfileÚkeyfile©Zserver_hostnameF)r»r rrOÚ _have_sslÚ RuntimeErrorr^ÚwarningsÚwarnÚDeprecationWarningÚsslÚ_create_stdlib_contextÚ wrap_socketrir@rUrŠr�rBr‘r)r rÙrØÚcontextr„ZreplyrÝrrrrÓðsB ÿÿÿÿ ÿz SMTP.starttlsc CsZ | ¡g}t|tƒrt|ƒ d¡}|jr.| d¡r$| dt|ƒ¡|D]}| |¡q&|  ||¡\}} |dkrM|dkrC|  ¡n|  ¡t || |ƒ‚i} t|tƒrW|g}|D]$} |  | |¡\}} |dkrq|dkrq|| f| | <|dkr}|  ¡t| ƒ‚qYt| ƒt|ƒkrŽ|  ¡t| ƒ‚| |¡\}} |dkr«|dkr¢|  ¡n|  ¡t|| ƒ‚| S)Nr=Úsizezsize=%drŒi¥éû)r»rnror;rpr‘r r‚r�r©rGr£rr­rr8r ) r Ú from_addrÚto_addrsr"Ú mail_optionsÚ rcpt_optionsZ esmtp_optsZoptionr!r„ZsenderrsrœrrrÚsendmail(sJ>       þ  z SMTP.sendmailcCs´ | ¡| d¡}|durd}n t|ƒdkrd}ntdƒ‚|dur?|d|vr.||dn||d}tj |g¡dd}|durdd d „||d ||d ||d fDƒ}dd „tj |¡Dƒ}t |¡} | d =| d=d} z d |g|¢¡  d¡Wnt y’|  d¡sŽt dƒ‚d} Ynwt  ¡�2} | r±tjj| |jjdd�d�} g|¢d‘d‘R}ntj | ¡} | j| dd�|  ¡} Wdƒn1sÌwY| ||| ||¡S)Nz Resent-Dater(rTzResent-z0message has more than one 'Resent-' header blockZSenderÚFromrcSsg|]}|dur|‘qSrr)r¦Úfrrrrξsýz%SMTP.send_message..ÚToZBccZCccSsg|]}|d‘qS)rTr)r¦ÚarrrrÎÂsz Resent-BccFr=r¥z”One or more source or delivery addresses require internationalized email support, but the server does not advertise the required SMTPUTF8 capabilityT)Úutf8)ÚpolicyZSMTPUTF8z BODY=8BITMIMEr)Úlinesep)r»Zget_allr�r^r*r+Z getaddressesÚcopyrƒrpÚUnicodeEncodeErrorr rÚioÚBytesIOÚ generatorZBytesGeneratorrðZcloneZflattenÚgetvaluerê)r r"rærçrèréZresentZ header_prefixZ addr_fieldsZmsg_copyZ internationalZbytesmsgÚgZflatmsgrrrÚ send_message�s\    ÿ þ  þ   ÿú ÿ  ø ÿzSMTP.send_messagecCsZ z|j}d|_|r| ¡W|j}d|_|r| ¡dSdS|j}d|_|r,| ¡wwr)rUrGri)r rUrirrrrGÝs"€ ÿþ ÿz SMTP.closecCs0 | d¡}d|_|_i|_d|_| ¡|S)NÚquitF)rOr�rŠrBr‘rG)r Úresrrrrúês  z SMTP.quit©r`rN)r()rr)NNN)rr)NNrr)1rrrrRrirUrŠr�r�r‘Ú SMTP_PORTrgrIÚ_GLOBAL_DEFAULT_TIMEOUTr#rMrQrSr\r_rFrrrxrjrOr‰r<r r¡r¢r£r¤r©r­r8r·r´r¹r»r�rÉrÊrÌrÒrÓrêrùrGrúrrrrr¾sh þ0   !  1  3    0  B8 ÿh ÿM rcs>eZdZ eZdddddejddfdd„Z‡fdd„Z‡Z S)ÚSMTP_SSLr(rNc Cs–|dur |dur tdƒ‚|dur|durtdƒ‚|dus |dur+ddl} |  dtd¡||_||_|dureZdZ dZdeddejf‡fdd„ Zd ‡fdd „ Z‡Z S) ÚLMTPZlhlor(Ncs tƒj|||||d�dS)N)rHrDrA)rr#)r rJrKrHrDrArrrr#<s  ÿz LMTP.__init__r`rcsâ |ddkrtƒj|||d�S|jdur|jstdƒ‚z!t tjtj¡|_|jtjur3|j  |j¡d|_ |j |¡Wnt y[|j dkrO|  d|¡|jrW|j ¡d|_‚w| ¡\}}|j dkrm|  d|¡||fS)Nrú/)rDr]z connect fail:rb)rrFrAr^rIZAF_UNIXZ SOCK_STREAMrirþZ settimeoutrUrfrRr\rGrj)r rJrKrDr!r"rrrrFBs.      ú   z LMTP.connectrü) rrrr�Ú LMTP_PORTrIrþr#rFrrrrrr,s ÿrÚ__main__cCs(tj |d¡tj ¡tj ¡ ¡S)Nz: )rYÚstdoutÚwriteÚflushÚstdinrr-)Úpromptrrrr as r rëríú,zEnter message, end with ^D:r(rTzMessage length is %dr`)@rIrôr4Z email.utilsr*Z email.messageZemail.generatorrÂrÆròrWrYZemail.base64mimerrÁÚ__all__rýrr6r°r€rÃÚcompileÚIr”rfrrrrrrr r r r r r1rr9r;ràÚ ImportErrorrÛrrÿr‚rrrr Zfromaddrr“ZtoaddrsrVr"r rr…r�ZserverrSrêrúrrrrÚs�)       ÿ< / 4 ü  ì