grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026a XC?hj±ã@sVddlZddlZddlZddlZddlZddlZddlZddlZddl 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(z ddl)Z)Wne*�y~d)Z+Yn0d*Z+Gd+d,„d,ƒZ,e+�r²Gd-d.„d.e,ƒZ-e .d.¡d/Z/Gd0d1„d1e,ƒZ0e1d2k�rRd3d4„Z2e2d5ƒZ3e2d6ƒ 4d7¡Z5e6d8ƒd9Z7e j8 9¡Z:e:�s�qe7e:Z7�qúe6d:e;e7ƒƒe,d;ƒZe3e5e7¡e< ?¡dS)=éN)Ú body_encode) Ú SMTPExceptionÚSMTPNotSupportedErrorÚSMTPServerDisconnectedÚSMTPResponseExceptionÚSMTPSenderRefusedÚSMTPRecipientsRefusedÚ SMTPDataErrorÚSMTPConnectErrorÚ SMTPHeloErrorÚSMTPAuthenticationErrorÚ quoteaddrÚ quotedataÚSMTPéiÑú s i éz auth=(.*)c@s eZdZdS)rN©Ú__name__Ú __module__Ú __qualname__©rrú,/opt/alt/python39/lib64/python3.9/smtplib.pyrHsrc@s eZdZdS)rNrrrrrrKsrc@s eZdZdS)rNrrrrrrRsrc@seZdZdd„ZdS)rcCs||_||_||f|_dS©N)Ú smtp_codeÚ smtp_errorÚargs)ÚselfÚcodeÚmsgrrrÚ__init__cszSMTPResponseException.__init__N©rrrr rrrrrZs rc@seZdZdd„ZdS)rcCs"||_||_||_|||f|_dSr)rrÚsenderr)rrrr"rrrr oszSMTPSenderRefused.__init__Nr!rrrrrhsrc@seZdZdd„ZdS)rcCs||_|f|_dSr)Ú recipientsr)rr#rrrr }szSMTPRecipientsRefused.__init__Nr!rrrrrusrc@s eZdZdS)r Nrrrrrr ‚sr c@s eZdZdS)r Nrrrrrr …sr c@s eZdZdS)r Nrrrrrr ˆsr c@s eZdZdS)r Nrrrrrr ‹sr cCs>tj |¡\}}||fdkr6| ¡ 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 r.c Cst ddt dt|¡¡S)Nz(?m)^\.z..ú(?:\r\n|\n|\r(?!\n))©ÚreÚsubÚCRLF©Údatarrrr§s ÿrcCst dd|¡S)Ns(?m)^\.s..)r1r2)ZbindatarrrÚ_quote_periods°sr6cCst dt|¡S)Nr/r0r4rrrÚ _fix_eols³sr7FTc@sveZdZdZdZdZdZdZdZdZ e Z ddde j dfdd„Zdd„Zd d „Zd d „Zd d„Zdd„ZdMdd„Zdd„ZdNdd„Zdd„ZdOdd„ZdPdd„ZdQdd„Zd d!„ZdRd"d#„Zd$d%„Zd&d'„Zd(d)„ZdSd+d,„Z dTd-d.„Z!d/d0„Z"d1d2„Z#e#Z$d3d4„Z%d5d6„Z&d7d8œd9d:„Z'dUd;d<„Z(dVd=d>„Z)dWd?d@„Z*d7d8œdAdB„Z+dXdCdD„Z,dYdEdF„Z-dZdGdH„Z.dIdJ„Z/dKdL„Z0dS)[rrNÚehlor%c Cs´||_||_i|_d|_||_d|_|rR| ||¡\}}|dkrR| ¡t||ƒ‚|durb||_ nNt   ¡}d|vrz||_ n6d} zt   t   ¡¡} Wnt jy¤Yn0d| |_ 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ÚportrDr=r@rrZfqdnr-rrrr ås, z SMTP.__init__cCs|Srr©rrrrÚ __enter__szSMTP.__enter__cGsTzDz$| d¡\}}|dkr$t||ƒ‚Wnty8Yn0W| ¡n | ¡0dS)NZQUITéÝ)ÚdocmdrrrC)rrrÚmessagerrrÚ__exit__s z SMTP.__exit__cCs ||_dSr)Ú debuglevel)rrNrrrÚset_debuglevel"szSMTP.set_debuglevelcGsB|jdkr.ttj ¡ ¡g|¢RdtjiŽnt|dtjiŽdS)NéÚfile)rNÚprintÚdatetimeZnowÚtimeÚsysÚstderr©rrrrrÚ _print_debug+s $zSMTP._print_debugcCsF|dur|stdƒ‚|jdkr2| d||f|j¡t ||f||j¡S)Nú0Non-blocking socket (timeout=0) is not supportedrz connect: to)Ú ValueErrorrNrXr@rEZcreate_connection)rrFrGr=rrrÚ _get_socket1s   ÿzSMTP._get_socketÚ localhostcCsÚ|r ||_|sz| d¡| d¡krz| d¡}|dkrz|d|…||dd…}}z t|ƒ}Wntyxtdƒ‚Yn0|s„|j}t d|||¡|  |||j ¡|_ d|_ |  ¡\}}|jdkrÒ| dt|ƒ¡||fS)Nú:rrPznonnumeric portzsmtplib.connectúconnect:)r@ÚfindÚrfindÚintrZÚOSErrorÚ default_portrUÚauditr[r=ÚsockrQÚgetreplyrNrXÚrepr)rrFrGr@ÚirrrrrrB;s&      z SMTP.connectcCs†|jdkr| dt|ƒ¡|jrzt|tƒr6| |j¡}t  d||¡z|j  |¡Wq‚t yv|  ¡t dƒ‚Yq‚0nt dƒ‚dS)Nrzsend:z smtplib.sendúServer not connectedzplease run connect() first)rNrXrgreÚ isinstanceÚstrÚencoder?rUrdZsendallrbrCr)rÚsrrrÚsend\s    z SMTP.sendcCsd|dkr|}n|›d|›�}d|vs,d|vrN| dd¡ dd¡}td|›�ƒ‚| |›t›�¡dS)Nr%ú ú Ú z\nz\rz=command and arguments contain prohibited newline characters: )ÚreplacerZrnr3)rÚcmdrrmrrrÚputcmdosÿz SMTP.putcmdc CsPg}|jdur|j d¡|_z|j td¡}Wn<tyl}z$| ¡tdt|ƒƒ‚WYd}~n d}~00|s‚| ¡tdƒ‚|j dkrœ|  dt |ƒ¡t |ƒtkrº| ¡t ddƒ‚| |d d… d ¡¡|dd …}z t|ƒ}Wnt�yd }Y�q Yn0|d d …d kr�q qd |¡}|j dk�rH|  d||f¡||fS)NÚrbrPz Connection unexpectedly closed: zConnection unexpectedly closedrzreply:iôzLine too long.és ééÿÿÿÿó-ó zreply: retcode (%s); Msg: %a)rQreZmakefileÚreadlineÚ_MAXLINErbrCrrkrNrXrgÚlenrÚappendr*rarZÚjoin)rÚrespÚlineÚerZerrcodeÚerrmsgrrrrf|s>  ÿ        z SMTP.getreplycCs| ||¡| ¡Sr©rtrf)rrsrrrrrK­s z SMTP.docmdcCs,| d|p|j¡| ¡\}}||_||fS)NÚhelo)rtrDrfÚ helo_resp)rÚnamerrrrrr…³s z SMTP.heloc Cs.i|_| |j|p|j¡| ¡\}}|dkrJt|ƒdkrJ| ¡tdƒ‚||_|dkr`||fSd|_ |j  d¡  d¡}|d=|D]¢}t   |¡}|r¼|j dd ¡d | d¡d|jd<q‚t  d |¡}|r‚| d ¡ ¡}|j| d ¡d… ¡} |dk�r|j |d ¡d | |j|<q‚| |j|<q‚||fS) NrxrriéúrPzlatin-1rqÚauthr%roz((?P[A-Za-z0-9][A-Za-z0-9\-]*) ?Úfeature)r>rtÚehlo_msgrDrfr}rCrÚ ehlo_respÚ does_esmtpÚdecodeÚsplitÚ OLDSTYLE_AUTHÚmatchÚgetÚgroupsr1ÚgroupÚlowerÚstringÚendr*) rr‡rrr€ÚeachZ auth_matchÚmrŠÚparamsrrrr8½sB   ÿ ÿ    ÿÿ  z SMTP.ehlocCs| ¡|jvSr)r•r>)rÚoptrrrÚhas_extnðsz SMTP.has_extncCs| d|¡| ¡dS)NÚhelprPr„rWrrrr�ôs z SMTP.helpcCsd|_| d¡S)Nr9Úrset)r?rKrHrrrržúsz SMTP.rsetcCs$z | ¡WntyYn0dSr)ržrrHrrrÚ_rsetÿs  z SMTP._rsetcCs | d¡S)NÚnoop)rKrHrrrr  sz SMTP.nooprcCshd}|rH|jrHtdd„|Dƒƒr:| d¡r2d|_ntdƒ‚dd |¡}| dd t|ƒ|f¡| ¡S) Nr%css|]}| ¡dkVqdS)Úsmtputf8N)r•)Ú.0ÚxrrrÚ ózSMTP.mail..r¡zutf-8z SMTPUTF8 not supported by serverroÚmailz FROM:%s%s) r�Úanyrœr?rrrtr rf)rr"ÚoptionsÚ optionlistrrrr¦s   ÿz SMTP.mailcCs<d}|r|jrdd |¡}| ddt|ƒ|f¡| ¡S)Nr%roÚrcptzTO:%s%s)r�rrtr rf)rZrecipr¨r©rrrrª$s  z SMTP.rcptcCsÄ| d¡| ¡\}}|jdkr0| d||f¡|dkrDt||ƒ‚n|t|tƒr\t|ƒ d¡}t |ƒ}|dd…t kr||t }|dt }|  |¡| ¡\}}|jdkr¸| d||f¡||fSdS)Nr5rzdata:ibr9éþÿÿÿó.) rtrfrNrXr rjrkr7rlr6ÚbCRLFrn)rrrÚreplÚqrrrr5,s"         z SMTP.datacCs| dt|ƒ¡| ¡S)NÚvrfy©rtr.rf©rZaddressrrrÚverifyIsz SMTP.verifycCs| dt|ƒ¡| ¡S)NÚexpnr±r²rrrr´Psz SMTP.expncCsb|jdur^|jdur^d| ¡dkr0dks^n| ¡\}}d|krRdks^nt||ƒ‚dS)NéÈri+)r†rŒr8r…r )rrr€rrrÚehlo_or_helo_if_neededWs  zSMTP.ehlo_or_helo_if_neededT©Úinitial_response_okc Csè| ¡}|r|ƒnd}|durPt| d¡dd�}| d|d|¡\}}d|_n| d|¡\}}d|_|dkrÊ|jd7_t |¡}t||ƒ d¡dd�}| |¡\}}|jtkrftd t ||fƒƒ‚qf|d vrÚ||fSt ||ƒ‚dS) Nr9r%)ZeolZAUTHrorPriNz4Server AUTH mechanism infinite loop. Last response: ©éëi÷) ÚupperÚ encode_base64rlrKrAÚbase64Z decodebytesÚ _MAXCHALLENGErrgr ) rZ mechanismZ authobjectr¸Zinitial_responseZresponserr€Ú challengerrrr‰hs0 ÿ  ÿÿz SMTP.authcCs0|dur dS|jdt |j d¡|d¡ ¡S)Nror9Zmd5)ÚuserÚhmacZHMACÚpasswordrlZ hexdigest©rr¿rrrÚ auth_cram_md5˜s  ÿzSMTP.auth_cram_md5cCsd|j|jfS)Nz%s%s)rÀrÂrÃrrrÚ auth_plain¡szSMTP.auth_plaincCs"|dus|jdkr|jS|jSdS)Né)rArÀrÂrÃrrrÚ auth_login¦szSMTP.auth_loginc sà| ¡| d¡stdƒ‚|jd ¡‰gd¢}‡fdd„|Dƒ}|sNtdƒ‚|||_|_|D]v}d| ¡  dd ¡}z4|j |t ||ƒ|d �\}} |d vrª|| fWSWq`t yÔ} z| } WYd} ~ q`d} ~ 00q`| ‚dS) 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œrr>r�rrÀrÂr•rrr‰Úgetattrr ) rrÀrÂr¸Zpreferred_authsZauthlistZ authmethodZ method_namerr€r‚Zlast_exceptionrrÈrÚlogin®s. ÿ þ z SMTP.logincCsî| ¡| d¡stdƒ‚| d¡\}}|dkrÜtsr�r)rrÔrÓÚcontextr€ZreplyrØrrrrÎðs@ ÿÿÿÿ z SMTP.starttlsc Cs^| ¡g}t|tƒr$t|ƒ d¡}|jrZ| d¡rF| dt|ƒ¡|D]}| |¡qJ|  ||¡\}} |dkr˜|dkr„|  ¡n|  ¡t || |ƒ‚i} t|tƒr¬|g}|D]H} |  | |¡\}} |dkrà|dkrà|| f| | <|dkr°|  ¡t| ƒ‚q°t| ƒt|ƒk�r|  ¡t| ƒ‚| |¡\}} |dk�rZ|dk�rH|  ¡n|  ¡t|| ƒ‚| S)Nr9Úsizezsize=%drˆi¥éû)r¶rjrkr7rlr�rœr~r}r¦rCrŸrrªrr5r ) rÚ from_addrÚto_addrsrÚ mail_optionsÚ rcpt_optionsZ esmtp_optsZoptionrr€Zsenderrsr˜rrrÚsendmail(sF@            z SMTP.sendmailcCsº| ¡| d¡}|dur d}nt|ƒdkr2d}ntdƒ‚|dur||d|vrZ||dn ||d}tj |g¡dd}|durÆd d „||d ||d ||d fDƒ}dd „tj |¡Dƒ}t |¡} | d =| d=d} zd |g|¢¡  d¡Wn,t �y&|  d¡�st dƒ‚d} Yn0t  ¡�f} | �rftjj| |jjdd�d�} g|¢d‘d‘R}n tj | ¡} | j| dd�|  ¡} Wdƒn1�sž0Y| ||| ||¡S)Nz Resent-Dater%rPzResent-z0message has more than one 'Resent-' header blockZSenderÚFromrcSsg|]}|dur|‘qSrr)r¢Úfrrrrɾsýz%SMTP.send_message..ÚToZBccZCccSsg|] }|d‘qS)rPr)r¢ÚarrrrÉÂr¥z Resent-BccFr9r¡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}rZr'r(Z getaddressesÚcopyrrlÚUnicodeEncodeErrorrœrÚioÚBytesIOÚ generatorZBytesGeneratorrëZcloneZflattenÚgetvaluerå)rrrárârãräZresentZ header_prefixZ addr_fieldsZmsg_copyZ internationalZbytesmsgÚgZflatmsgrrrÚ send_message�sV   ÿ þ  þ  ÿ  ÿ ( ÿzSMTP.send_messagecCsTz4|j}d|_|r| ¡W|j}d|_|rP| ¡n|j}d|_|rN| ¡0dSr)rQrCre)rrQrerrrrCÝs  ýz SMTP.closecCs.| d¡}d|_|_i|_d|_| ¡|S)NÚquitF)rKrŒr†r>r�rC)rÚresrrrrõês   z SMTP.quit)r\rN)r%)r%)r%)r%)r%)r)r)N)N)N)NNN)rr)NNrr)1rrrrNrerQr†r‹rŒr�Ú SMTP_PORTrcrEÚ_GLOBAL_DEFAULT_TIMEOUTr rIrMrOrXr[rBrnrtrfrKr…r8rœr�ržrŸr r¦rªr5r³r°r´r¶r‰rÄrÅrÇrÍrÎrårôrCrõrrrrr¾sdþ 0   ! 1  3    0  B 8ÿ hÿ M rcs<eZdZeZdddddejddfdd„Z‡fdd„Z‡Z S)ÚSMTP_SSLr%rNc Cs–|dur|durtdƒ‚|dur0|dur0tdƒ‚|dus@|durVddl} |  dtd¡||_||_|durxtj||d�}||_t   ||||||¡dS)NrÏrÐrrÑrÆrÒ) rZrØrÙrÚrÔrÓrÛrÜrÞrr ) rrFrGrDrÔrÓr=r@rÞrØrrrr s&ÿÿÿzSMTP_SSL.__init__cs@|jdkr| d||f¡tƒ |||¡}|jj||jd�}|S)Nrr^rÕ)rNrXÚsuperr[rÞrÝr<)rrFrGr=Z new_socket©Ú __class__rrr[s ÿzSMTP_SSL._get_socket) rrrÚ SMTP_SSL_PORTrcrErør r[Ú __classcell__rrrûrrùösý rùiÓcs<eZdZdZdeddejf‡fdd„ Zd ‡fdd „ Z‡Z S) ÚLMTPZlhlor%Ncstƒj|||||d�dS)N)rDr@r=)rúr )rrFrGrDr@r=rûrrr <s ÿz LMTP.__init__r\rcsä|ddkrtƒj|||d�S|jdur6|js6tdƒ‚zBt tjtj¡|_|jtjurd|j  |j¡d|_ |j |¡Wn@t y¸|j dkrœ|  d|¡|jr¬|j ¡d|_‚Yn0| ¡\}}|j dkrÜ|  d|¡||fS)Nrú/)r@rYz connect fail:r^)rúrBr=rZrEZAF_UNIXZ SOCK_STREAMrerøZ settimeoutrQrbrNrXrCrf)rrFrGr@rrrûrrrBBs*         z LMTP.connect)r\rN) rrrr‹Ú LMTP_PORTrErør rBrþrrrûrrÿ,s ÿrÿÚ__main__cCs(tj |d¡tj ¡tj ¡ ¡S)Nz: )rUÚstdoutÚwriteÚflushÚstdinr{r*)Úpromptrrrras rrærèú,zEnter message, end with ^D:r%zMessage length is %dr\rP)@rErïr1Z email.utilsr'Z email.messageZemail.generatorr½rÁrírSrUZemail.base64mimerr¼Ú__all__r÷rýr3r­r|r¾ÚcompileÚIr�rbrrrrrrr r r r r r.rr6r7rÛÚ ImportErrorrÖrrùr~rrÿrrZfromaddrr�ZtoaddrsrRrrr{r�r}ZserverrOrårõrrrrÚ,s„       </ 4