JFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3RbrJFIFxxC      C  " }!1AQa"q2#BR$3br %&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz w!1AQaq"2B #3Rbra XC?h+@sdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z m Z m Z ddl mZzddlZdZWneydZYn0gdZdZdZd Zd Zd Zd Zd Zddddddddddddddddddddddddddddddddddddddddddd*ZedZedZedZedejZ edZ!edZ"edZ#edejZ$dZ%dZ&GdddZ'erGddde'Z(e)dGd d!d!e'Z*Gd"d#d#Z+d$,d%Z-d&d'e.e-d(dDZ/d)d*Z0d+d,Z1d-d.Z2d/d0Z3e4d1krddl5Z5ddl6Z6ze55ej7d(dd2\Z8Z9Wn0e5j:yjZ;zd3\Z8Z9WYdZ;[;n dZ;[;00dZe;Zne=d5krte;Zd?d@dAddeCffdBdCdDdEdFdGdHdIdJfZDdKdLdMdNd@dddeCffdIdOfZEdPdQZFze<r\e*e<ZGne'e?ZGeGjHdRkr|eDd(dZDeGIdSeGjJeGIdTeGjKfeDD]\ZLZ9eFeLe9qeFdUdVD]qeFdZd[d\eSdXd]fqeTd^Wn.eTd_eseTd`ej7dYn0dS)az2.58N)datetimetimezone timedelta)DEFAULT_BUFFER_SIZETF)IMAP4 IMAP4_streamInternaldate2tupleInt2AP ParseFlagsTime2Internaldate i)Z IMAP4REV1ri@Bi)AUTHSELECTED)NONAUTH)rrrLOGOUT)r)r)*APPEND AUTHENTICATE CAPABILITYCHECKCLOSECOPYCREATEDELETE DELETEACLENABLEEXAMINEEXPUNGEFETCHGETACL GETANNOTATIONGETQUOTA GETQUOTAROOTMYRIGHTSLISTLOGINrLSUBZMOVE NAMESPACENOOPPARTIAL PROXYAUTHRENAMESEARCHSELECTSETACL SETANNOTATIONSETQUOTASORTSTARTTLSSTATUSSTORE SUBSCRIBETHREADUID UNSUBSCRIBEUNSELECTs\+( (?P.*))?s.*FLAGS \((?P[^\)]*)\)s.*INTERNALDATE "(?P[ 0123][0-9])-(?P[A-Z][a-z][a-z])-(?P[0-9][0-9][0-9][0-9]) (?P[0-9][0-9]):(?P[0-9][0-9]):(?P[0-9][0-9]) (?P[-+])(?P[0-9][0-9])(?P[0-9][0-9])"s.*{(?P\d+)}$s \r\n|\r|\ns%\[(?P[A-Z-]+)( (?P.*))?\]s$\* (?P[A-Z-]+)( (?P.*))?s3\* (?P\d+) (?P[A-Z-]+)( (?P.*))?c@seZdZGdddeZGdddeZGdddeZdedfd d Zd d Z d dZ ddZ ddZ ddZ ddZddZdedfddZddZddZdd Zd!d"Zd#d$Zd%d&Zd'd(Zd)d*Zd+d,Zd-d.Zd/d0Zd1d2Zd3d4Zd5d6Zd7d8Zd9d:Z d;d<Z!d=d>Z"d?d@Z#dAdBZ$dCdDZ%dEdFZ&dGdHZ'ddKdLZ(dMdNZ)dOdPZ*dQdRZ+dSdTZ,ddUdVZ-dWdXZ.dYdZZ/d[d\Z0d]d^Z1d_d`Z2dadbZ3dcddZ4ddgdhZ5didjZ6dkdlZ7dmdnZ8dodpZ9ddqdrZ:dsdtZ;dudvZd{d|Z?d}d~Z@ddZAddZBddZCddZDddZEddZFddZGddZHdddZIddZJddZKddZLddZMddZNddZOdS)rc@s eZdZdS)z IMAP4.errorN__name__ __module__ __qualname__r>r>,/opt/alt/python39/lib64/python3.9/imaplib.pyerrorr@c@s eZdZdS)z IMAP4.abortNr:r>r>r>r?abortrArBc@s eZdZdS)zIMAP4.readonlyNr:r>r>r>r?readonlyrArCNc Cst|_d|_d|_i|_i|_d|_d|_d|_d|_ | | |||z | Wn4t yz |WntyYn0Yn0dS)NrrDFr)Debugdebugstateliteraltagged_commandsuntagged_responsescontinuation_response is_readonlytagnum_tls_established _mode_asciiopen_connect ExceptionshutdownOSErrorselfhostporttimeoutr>r>r?__init__s&    zIMAP4.__init__cCs0d|_d|_tttj|_tttj|_dS)NFascii) utf8_enabled _encodingrecompile_LiteralASCIILiteral_Untagged_statusUntagged_statusrVr>r>r?rOszIMAP4._mode_asciicCs(d|_d|_tt|_tt|_dS)NTutf-8)r\r]r^r_r`rbrcrdrer>r>r? _mode_utf8s zIMAP4._mode_utf8cCsttdd|_td|jdtj|_| |_ d|j vrHd|_ nd|j vrZd|_ n | |j |tD]}||jvrqr||_dS| d dS) Niis(?Ps"\d+) (?P[A-Z]+) (?P.*)ZPREAUTHrOKrzserver not IMAP4 compliant)r randomZrandinttagprer^r_ratagre __version__ _get_responseZwelcomerJrGr@_get_capabilitiesAllowedVersions capabilitiesPROTOCOL_VERSION)rVversionr>r>r?rQs*     zIMAP4._connectcCs&|tvrt||Std|dS)NzUnknown IMAP4 command: '%s')CommandsgetattrlowerAttributeError)rVattrr>r>r? __getattr__szIMAP4.__getattr__cCs|SNr>rer>r>r? __enter__szIMAP4.__enter__cGs2|jdkrdSz |Wnty,Yn0dSNr)rGlogoutrT)rVargsr>r>r?__exit__s    zIMAP4.__exit__cCs`|dur|std|jsdn|j}td||j|j||jf}|durVt||St|S)Nz0Non-blocking socket (timeout=0) is not supportedz imaplib.open) ValueErrorrWsysauditrXsocketZcreate_connection)rVrYrWZaddressr>r>r?_create_socket&s   zIMAP4._create_socketcCs*||_||_|||_|jd|_dS)Nrb)rWrXrsockmakefilefilerUr>r>r?rP3s z IMAP4.opencCsVt|t}|j|}||krRt||krRt|||}||j|7}||7}q|Sry)min_SAFE_BUF_SIZErreadlen)rVsizeZcursizedatadeltar>r>r?r?s   z IMAP4.readcCs.|jtd}t|tkr*|dt|S)Nzgot more than %d bytes)rreadline_MAXLINErr@rVliner>r>r?rJs zIMAP4.readlinecCstd|||j|dS)Nz imaplib.send)rrrZsendallrVrr>r>r?sendRsz IMAP4.sendc Cs|jzdz|jtjWnBty`}z*|jtjkrLt |dddkrLWYd}~n d}~00W|jn |j0dS)NZwinerrorri&') rcloserrSrZ SHUT_RDWRrTerrnoZENOTCONNrt)rVexcr>r>r?rSXs  zIMAP4.shutdowncCs|jSry)rrer>r>r?rhsz IMAP4.socketcCsBd}|ddg|\}}|dr(||fS|\}}||||S)NZRECENTrh)_untagged_responsenooprVnametypdatr>r>r?recentts  z IMAP4.recentcCs||dg|Sry)rupper)rVcoder>r>r?responseszIMAP4.responsecCsxd}|s d}|r.|d|dfdkr2d|}nd}|r@t|}nd}tt|}|jrbd|d}||_|||||S) NrINBOXrr()(%s)sUTF8 ())r MapCRLFsubCRLFr\rH_simple_command)rVmailboxflags date_timemessagerrHr>r>r?appends    z IMAP4.appendcCsP|}t|j|_|d|\}}|dkrB||dddd|_||fS)Nrrhrrfreplacer)r_AuthenticatorprocessrHrr@decoderG)rVZ mechanismZ authobjectmechrrr>r>r? authenticates zIMAP4.authenticatecCs d}||\}}||||S)Nrrrrr>r>r? capabilityszIMAP4.capabilitycCs |dS)Nrrrer>r>r?checksz IMAP4.checkcCs*z|d\}}Wd|_nd|_0||fS)NrrrrGrVrrr>r>r?rsz IMAP4.closecCs|d||S)Nrr)rV message_setZ new_mailboxr>r>r?copysz IMAP4.copycCs |d|S)NrrrVrr>r>r?createsz IMAP4.createcCs |d|S)Nrrrr>r>r?deletesz IMAP4.deletecCs|d||S)Nrr)rVrwhor>r>r? deleteaclszIMAP4.deleteaclcCsHd|jvrtd|d|\}}|dkr@d|vr@|||fS)NrzServer does not support ENABLErhz UTF8=ACCEPT)rprr@rrrg)rVrrrr>r>r?enables   z IMAP4.enablecCs d}||\}}||||S)Nrrrr>r>r?expunges z IMAP4.expungecCs$d}||||\}}||||S)Nrr)rVrZ message_partsrrrr>r>r?fetch"s z IMAP4.fetchcCs|d|\}}|||dS)NrZACLrrVrrrr>r>r?getacl1sz IMAP4.getaclcCs"|d|||\}}|||dS)Nr ANNOTATIONr)rVrentryZ attributerrr>r>r? getannotation:szIMAP4.getannotationcCs|d|\}}|||dS)Nr!QUOTAr)rVrootrrr>r>r?getquotaBszIMAP4.getquotacCs@|d|\}}|||d\}}|||d\}}|||gfS)Nr"rZ QUOTAROOTr)rVrrrZquotaZ quotarootr>r>r? getquotarootMszIMAP4.getquotaroot""*cCs$d}||||\}}||||S)Nr$rrVZ directorypatternrrrr>r>r?listXsz IMAP4.listcCs<|d|||\}}|dkr.||dd|_||fS)Nr%rhrr)r_quoter@rG)rVuserpasswordrrr>r>r?loginds z IMAP4.logincCs|||_|_|d|jS)NzCRAM-MD5)rrr_CRAM_MD5_AUTH)rVrrr>r>r?login_cram_md5rszIMAP4.login_cram_md5cCsBddl}t|jtr |jdn|j}|jd|||dS)Nrrf Zmd5)hmac isinstancerstrencoderZHMACZ hexdigest)rVZ challengerpwdr>r>r?r{s zIMAP4._CRAM_MD5_AUTHcCs$d|_|d\}}|||fSr{)rGrrSrr>r>r?r|sz IMAP4.logoutcCs$d}||||\}}||||S)Nr&rrr>r>r?lsubsz IMAP4.lsubcCs|d|\}}|||dS)Nr#rrr>r>r?myrightsszIMAP4.myrightscCs d}||\}}||||S)Nr'rrr>r>r? namespaceszIMAP4.namespacecCs |dS)Nr(rrer>r>r?rsz IMAP4.noopcCs(d}||||||\}}|||dS)Nr)rr)rVZ message_numZ message_partstartZlengthrrrr>r>r?partialsz IMAP4.partialcCsd}|d|S)Nr*r)rVrrr>r>r? proxyauths zIMAP4.proxyauthcCs|d||S)Nr+r)rVZ oldmailboxZ newmailboxr>r>r?renamesz IMAP4.renamecGsXd}|r4|jrtd|j|d|g|R\}}n|j|g|R\}}||||S)Nr,z'Non-None charset not valid in UTF8 modeCHARSET)r\rr@rr)rVcharsetZcriteriarrrr>r>r?searchs z IMAP4.searchrFcCsvi|_||_|rd}nd}|||\}}|dkr@d|_||fSd|_d|jvrb|sb|d|||jddgfS) Nrr-rhrr READ-ONLYz%s is not writableEXISTS)rJrLrrGrCget)rVrrCrrrr>r>r?selects  z IMAP4.selectcCs|d|||S)Nr.r)rVrrZwhatr>r>r?setacl sz IMAP4.setaclcGs$|jdg|R\}}|||dS)Nr/rr)rVr}rrr>r>r? setannotationszIMAP4.setannotationcCs |d||\}}|||dS)Nr0rr)rVrZlimitsrrr>r>r?setquotaszIMAP4.setquotacGsHd}|d|dfdkr d|}|j|||g|R\}}||||S)Nr1rrrrr)rVZ sort_criteriarsearch_criteriarrrr>r>r?sort$s z IMAP4.sortcCsd}ts|d|jr"|d||jvr6|d|durFt}||\}}|dkr|j|j |j d|_ |j d|_ d|_| n |d ||||S) Nr2zSSL support missingzTLS session already establishedzTLS not supported by serverrhZserver_hostnamerTzCouldn't establish TLS session)HAVE_SSLr@rNrBrpssl_create_stdlib_contextr wrap_socketrrWrrrnr)rV ssl_contextrrrr>r>r?starttls2s&      zIMAP4.starttlscCs$d}||||\}}||||S)Nr3r)rVrnamesrrrr>r>r?statusIsz IMAP4.statuscCs>|d|dfdkrd|}|d|||\}}|||dS)Nrrrrr4rr)rVrcommandrrrr>r>r?storeUsz IMAP4.storecCs |d|S)Nr5rrr>r>r? subscribe`szIMAP4.subscribecGs,d}|j|||g|R\}}||||S)Nr6r)rVZthreading_algorithmrrrrrr>r>r?threadhsz IMAP4.threadc Gs|}|tvr|d||jt|vrL|d||jdt|fd}|j||g|R\}}|dvrv|}nd}||||S)NzUnknown IMAP4 UID command: %s9command %s illegal in state %s, only allowed in states %s, r7)r,r1r6r)rrsr@rGjoinrr)rVrr}rrrr>r>r?uidrs z IMAP4.uidcCs |d|S)Nr8rrr>r>r? unsubscribeszIMAP4.unsubscribecCs*z|d\}}Wd|_nd|_0||fS)Nr9rr)rVrrr>r>r?unselects zIMAP4.unselectcGs.|}|tvr|jft|<|j|g|RSry)rrsrGrrVrr}r>r>r?xatoms  z IMAP4.xatomcCs8|dur d}|j}||vr*|||n |g||<dSNrA)rJrr)rVrrZurr>r>r?_append_untaggeds zIMAP4._append_untaggedcCs,|jd}|r(||d|jddS)NBYErr)rJrrBrr])rVbyer>r>r? _check_byes zIMAP4._check_byec Gs|jt|vr4d|_|d||jdt|fdD]}||jvr8|j|=q8d|jvrj|jsj|d|}t ||j }|d|}|D]0}|durqt |t rt ||j }|d|}q|j}|dur d|_t |t |jur|}nd}|t dt||j }z||tWn4tyP} z|d| WYd} ~ n d} ~ 00|dur`|S|r~|j|r`|Sq`|r||j}z|||tWn4ty} z|d| WYd} ~ n d} ~ 00|s`qq`|S) NrrrhNOBADrz#mailbox status changed to READ-ONLY z {%s}zsocket error: %s)rGrsrHr@rrJrLrC_new_tagbytesr]rrtype_commandrrrrTrBrmrIrK) rVrr}rtagrargrHZ literatorvalr>r>r?rs`           $     $zIMAP4._commandc Cs|dk}|s|z|j||d\}}Wnn|jyb}z|d||fWYd}~n@d}~0|jy}z|d||fWYd}~n d}~00|s||dkr|d|||f||fS)Nr) expect_byezcommand: %s => %srz%s command error: %s %s)r_get_tagged_responserBr@)rVrrr|rrrr>r>r?_command_completes&(zIMAP4._command_completecCsJ|\}}|dgkr |dt|d|j}|}t||_dS)Nz"no CAPABILITY response from serverr)rr@rr]rtuplesplitrprr>r>r?rn,s    zIMAP4._get_capabilitiescCs|}||j|rp|jd}||jvr:|d||jd}t||j}|jd}||gf|j|<nd}|t |s||j |r|jd}|jdur|t |r|jd|_ dS|d||jd}t||j}|jd}|durd}|r|d|}||j |rZt|jd }||}||||f|}q||||d vr|t|r|jd}t||j}|||jd|S) Nrzunexpected tagged response: %rrrZdata2zunexpected response: %rrArrr) _get_line_matchrkmogrouprIrBrr]Untagged_responserd ContinuationrKrbintrr  Response_code)rVresprrrZdat2rrr>r>r?rm5sD                 zIMAP4._get_responsec Cs|j|}|dur|j|=|S|rDd}|j|d}|durD||fS|z |Wq|jy}zWYd}~qd}~00qdS)Nr )rIrJpoprrmrB)rVrrresultrrrr>r>r?rs  zIMAP4._get_tagged_responsecCs>|}|s|d|ds.|d||dd}|S)Nzsocket error: EOFr z#socket error: unterminated line: %r)rrBendswithrr>r>r?r s   zIMAP4._get_linecCs|||_|jduSry)matchr")rVZcresr>r>r?r!s z IMAP4._matchcCs2|jtt|j|j}|jd|_d|j|<|S)Nr)rjrrrMr]rI)rVrr>r>r?rs  zIMAP4._new_tagcCs$|dd}|dd}d|dS)N\z\\"z\")r)rVrr>r>r?rs  z IMAP4._quotecGs|||j|g|RSry)rrr r>r>r?rszIMAP4._simple_commandcCs8|dkr||fS||jvr$|dgfS|j|}||fS)Nr)rJr))rVrrrrr>r>r?rs    zIMAP4._untagged_response)rr)rr)rF)N)F)Tr;r<r=rRr@rBrC IMAP4_PORTrZrOrgrQrxrzr~rrPrrrrSrrrrrrrrrrrrrrrrrrrrrrrr|rrrrrrrrrrrrrrrrrrrrrr r rrrrnrmrr r!rrrr_mesgZ_dump_urZ_logZ print_logr>r>r>r?rs1*                      M P ! $rc@s:eZdZdeddddfddZddZdedfddZdS) IMAP4_SSLrDNcCs|dur|durtd|dur0|dur0td|dus@|durVddl}|dtd||_||_|durxtj||d}||_t ||||dS)Nz8ssl_context and keyfile arguments are mutually exclusivez9ssl_context and certfile arguments are mutually exclusiverzEkeyfile and certfile are deprecated, use a custom ssl_context instead)certfilekeyfile) rwarningswarnDeprecationWarningr6r5rrrrrZ)rVrWrXr6r5rrYr7r>r>r?rZ#s"zIMAP4_SSL.__init__cCst||}|jj||jdS)Nr)rrrrrW)rVrYrr>r>r?r7s zIMAP4_SSL._create_socketcCst||||dSry)rrPrUr>r>r?rP<szIMAP4_SSL.open)r;r<r=IMAP4_SSL_PORTrZrrPr>r>r>r?r3s  r3c@s>eZdZddZdddZddZdd Zd d Zd d ZdS)rcCs||_t|dSry)rrrZ)rVrr>r>r?rZSszIMAP4_stream.__init__NcCsNd|_d|_d|_d|_tj|jttjtjddd|_ |j j |_ |j j |_ dS)NT)bufsizestdinstdoutshellZ close_fds)rWrXrr subprocessPopenrrPIPErr< writefiler=readfilerUr>r>r?rPXs zIMAP4_stream.opencCs |j|Sry)rCr)rVrr>r>r?rhszIMAP4_stream.readcCs |jSry)rCrrer>r>r?rmszIMAP4_stream.readlinecCs|j||jdSry)rBwriteflushrr>r>r?rrs zIMAP4_stream.sendcCs"|j|j|jdSry)rCrrBrwaitrer>r>r?rSxs  zIMAP4_stream.shutdown)NNN) r;r<r=rZrPrrrrSr>r>r>r?rGs   rc@s,eZdZddZddZddZddZd S) rcCs ||_dSry)r)rVZmechinstr>r>r?rZsz_Authenticator.__init__cCs&|||}|durdS||S)N*)rrr)rVrZretr>r>r?rsz_Authenticator.processcCsnd}t|tr|d}|rjt|dkrB|dd}|dd}n|}d}t|}|r||dd}q|S)NrArf0r)rrrrbinasciiZ b2a_base64)rVinpZoupter>r>r?rs      z_Authenticator.encodecCs|sdSt|Sr )rIZ a2b_base64)rVrJr>r>r?rsz_Authenticator.decodeN)r;r<r=rZrrrr>r>r>r?rsrz0 Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov DecrcCsi|]\}}||dqS)r)r).0nr.r>r>r? rArOrc Cst|}|sdSt|d}|d}t|d}t|d}t|d}t|d}t|d}t|d} t|d } | d | d } |d kr| } ||||||d d d f } t| | } t| S) Nmonzonendayyearhourrseczonehzonem<-r) InternalDater-Mon2numr#r&calendarZtimegmtime localtime)r(r"rPrQrRrSrTrrUrVrWZzoneZttutcr>r>r?rs$  rcCs@d}d}tt|}|rr>r?r s  r cCs$t|}|sdSt|dS)Nr>r)Flagsr-rr#r)r(r"r>r>r?r s r cCst|ttfr"t|tj}nt|trz |j }WnXt yt j r|d}|dkrnt t |d}t jt jf| }nt j }Yn0t|d}t|dddt|i}nLt|tr|jdurtd|}n*t|tr|d|dfdkr|Std d t|j}||S) Nr)Zsecondstzinfozdate_time must be awarer)r0r0zdate_time not of a known typez"%d-{}-%Y %H:%M:%S %z")rr&floatrZ fromtimestamprr_Z astimezoner tm_gmtoffrvr]daylightr^mktimealtzonerrgrrformatMonthsZmonthstrftime)rZdtZgmtoffZdstrZfmtr>r>r?r s2        r __main__zd:s:)r>r>z-dz-s)rDzIMAP password for %s on %s: Z localhostzJFrom: %(user)s@localhost%(lf)sSubject: IMAP4 test%(lf)s%(lf)sdata...%(lf)s )rZlfr)r) /tmp/xxx 1)r)rrz/tmp/yyy)r /tmp/yyz 2rrt)r)z/tmpzyy*)rrs)r)NZSUBJECTtest)r)1z(FLAGS INTERNALDATE RFC822))r)rvFLAGSz (\Deleted))rr>)rr>)rr>)rr>)rr>)r)Z UIDVALIDITY)r)r,ZALL)r)r)r|r>cCsLtd||ftt||\}}td|||f|dkrH|d|S)Nz%s %sz %s => %s %srr)Mr2rt)cmdr}rrr>r>r?runKs rzrzPROTOCOL_VERSION = %szCAPABILITIES = %rr)z/tmp/zyy%z .*"([^"]+)"$rrrrz%sz:(FLAGS INTERNALDATE RFC822.SIZE RFC822.HEADER RFC822.TEXT)z All tests OK.z Tests failed.z8 If you would like to see debugging output, try: %s -d5 )UrlrIrrir^rr?rr]r\rrriorrr ImportError__all__rrEr1r:rorrrsr_r%rdrZrarbrr'r$rdr`rcrr3rrrrrn enumerater[rr r r r;ZgetoptZgetpassargvZoptlistr}r@rZstream_commandoptr&rWZgetuserZUSERZPASSWDZ test_mesgZ test_seq1Z test_seq2rzrxrGr2rqrpryZmlr-r"r#pathrrprintr>r>r>r?sLH    0      6 9, #  )