grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026§ °RŠìËu‘Îãó&—dZddlZddlZddlZddlZ ddlZdZn #e$rdZYnwxYwddgZGd„de ¦«Z dZ d Z d Z d Ze ezZd ZGd „d¦«Zer#Gd„de¦«Ze d¦«edk�rddlZeejd¦«Zee ¦«¦«e ejd¦«e ejd¦«e ¦«e ¦«\ZZededz¦«D]GZ e !e ¦«\Z"Z#Z$ede z¦«e#D]Z%ede%z¦«Œed¦«ŒHe &¦«dSdS)z@A POP3 client class. Based on the J. Myers POP3 draft, Jan. 96 éNTFÚPOP3Ú error_protocó—eZdZdS)rN)Ú__name__Ú __module__Ú __qualname__©óú-/opt/alt/python311/lib64/python3.11/poplib.pyrrs€€€€€€€r éniãó ó icóô—eZdZdZdZeejfd„Zd„Z d„Z d„Z d„Z d„Z d „Zd „Zd „Zd „Zd „Zd„Zd„Zd„Zd!d„Zd„Zd„Zd„Zd„Zd„Zd„Zd„Zejd¦«Z d„Z!d„Z"d!d„Z#d„Z$d„Z%d!d „Z&dS)"raPThis class supports both the minimal and optional command sets. Arguments can be strings or integers (where appropriate) (e.g.: retr(1) and retr('1') both work equally well. Minimal Command Set: USER name user(name) PASS string pass_(string) STAT stat() LIST [msg] list(msg = None) RETR msg retr(msg) DELE msg dele(msg) NOOP noop() RSET rset() QUIT quit() Optional Commands (some servers support these): RPOP name rpop(name) APOP name digest apop(name, digest) TOP msg n top(msg, n) UIDL [msg] uidl(msg = None) CAPA capa() STLS stls() UTF8 utf8() Raises one exception: 'error_proto'. Instantiate with: POP3(hostname, port=110) NB: the POP protocol locks the mailbox from user authorization until QUIT, so be sure to get in, suck the messages, and quit, each time you access the mailbox. POP is a line-based protocol, which means large mail messages consume lots of python cycles reading them line-by-line. If it's available on your mail server, use IMAP4 instead, it doesn't suffer from the two problems above. zUTF-8có—||_||_d|_tjd|||¦«| |¦«|_|j d¦«|_d|_ |  ¦«|_ dS)NFzpoplib.connectÚrbr) ÚhostÚportÚ_tls_establishedÚsysÚauditÚ_create_socketÚsockÚmakefileÚfileÚ _debuggingÚ_getrespÚwelcome)ÚselfrrÚtimeouts r Ú__init__z POP3.__init__bsu€àˆŒ ؈Œ Ø %ˆÔÝ Œ Ð" D¨$°Ñ5Ô5Ð5Ø×'Ò'¨Ñ0Ô0ˆŒ Ø”I×&Ò& tÑ,Ô,ˆŒ ؈ŒØ—}’}‘”ˆŒ ˆ ˆ r cój—|�|std¦«‚tj|j|jf|¦«S)Nz0Non-blocking socket (timeout=0) is not supported)Ú ValueErrorÚsocketÚcreate_connectionrr)rrs r rzPOP3._create_socketms8€Ø Ð  wÐ ÝÐOÑPÔPÐ PÝÔ'¨¬°D´IÐ(>ÀÑHÔHÐHr cóÆ—|jdkrtdt|¦«¦«tjd||¦«|j |tz¦«dS)Néz*put*zpoplib.putline)rÚprintÚreprrrrÚsendallÚCRLF©rÚlines r Ú_putlinez POP3._putlinersY€Ø Œ?˜QÒ Ð ¥ g­t°D©z¬zÑ :Ô :Ð :Ý Œ Ð" D¨$Ñ/Ô/Ð/Ø Œ ×Ò˜$¥™+Ñ&Ô&Ð&Ð&Ð&r cóê—|jrtdt|¦«¦«t||j¦«}t jd|¦«rtd¦«‚| |¦«dS)Nz*cmd*s[-]z*Control characters not allowed in commands) rr'r(ÚbytesÚencodingÚreÚsearchr"r-r+s r Ú_putcmdz POP3._putcmdzsm€Ø Œ?Ð6�E '­4°©:¬:Ñ6Ô6Ð6Ý�T˜4œ=Ñ)Ô)ˆÝ Œ9Ð'¨Ñ .Ô .ð KÝÐIÑJÔJÐ JØ � Š �dÑÔÐÐÐr có¸—|j tdz¦«}t|¦«tkrt d¦«‚|jdkrt dt|¦«¦«|st d¦«‚t|¦«}|dd…tkr |dd…|fS|dd…tkr |dd…|fS|dd…|fS)Nr&z line too longz*get*z-ERR EOFéþÿÿÿéÿÿÿÿ) rÚreadlineÚ_MAXLINEÚlenrrr'r(r*ÚCR)rr,Úoctetss r Ú_getlinez POP3._getline†sـ،y×!Ò!¥(¨Q¡,Ñ/Ô/ˆÝ ˆt‰9Œ9•xÒ Ð Ý˜oÑ.Ô.Ð .à Œ?˜QÒ Ð ¥ g­t°D©z¬zÑ :Ô :Ð :ØÐ2�; zÑ2Ô2Ð2Ý�T‘”ˆð ���Œ9�Ò Ð Ø˜˜˜”9˜fÐ$Ð $Ø ���Œ8•rŠ>ˆ>ؘ˜"˜”:˜vÐ%Ð %Ø�C�R�CŒy˜&Ð Ð r cóÌ—| ¦«\}}|jdkrtdt|¦«¦«| d¦«st |¦«‚|S)Nr&z*resp*ó+)r<rr'r(Ú startswithr)rÚrespÚos r rz POP3._getresp›s\€Ø—-’-‘/”/‰ˆˆaØ Œ?˜QÒ Ð ¥ hµ°T± ´ Ñ ;Ô ;Ð ;Ø�Š˜tÑ$Ô$ð $ݘdÑ#Ô#Ð #؈ r có,—| ¦«}g}d}| ¦«\}}|dkr[| d¦«r|dz }|dd…}||z}| |¦«| ¦«\}}|dk°[|||fS)Nró.s..r&)rr<r?Úappend)rr@Úlistr;r,rAs r Ú _getlongrespzPOP3._getlongresp¥s¢€Ø�}Š}‰ŒˆØˆ˜A�6Ø—-’-‘/”/‰ˆˆaØ�dŠlˆlØ�Š˜uÑ%Ô%ð Ø�a‘C�ؘA˜B˜B”x�ؘa‘ZˆFØ �KŠK˜Ñ Ô Ð Ø—m’m‘o”o‰GˆD�!ð �dŠlˆlð�T˜6Ð!Ð!r cóT—| |¦«| ¦«S©N)r3rr+s r Ú _shortcmdzPOP3._shortcmdµs"€Ø � Š �TÑÔÐØ�}Š}‰ŒÐr cóT—| |¦«| ¦«SrH)r3rFr+s r Ú_longcmdz POP3._longcmd¼s&€Ø � Š �TÑÔÐØ× Ò Ñ"Ô"Ð"r có—|jSrH)r©rs r Ú getwelcomezPOP3.getwelcomeÃs €ØŒ|Ðr có—||_dSrH)r)rÚlevels r Úset_debuglevelzPOP3.set_debuglevelÇs €ØˆŒˆˆr có2—| d|z¦«S)zVSend user name, return response (should indicate password required). zUSER %s©rI©rÚusers r rUz POP3.userÍs€ð �~Š~˜i¨$Ñ.Ñ/Ô/Ð/r có2—| d|z¦«S)z Send password, return response (response includes message count, mailbox size). NB: mailbox is locked by server from here to 'quit()' zPASS %srS)rÚpswds r Úpass_z POP3.pass_Õs€ð�~Š~˜i¨$Ñ.Ñ/Ô/Ð/r cóø—| d¦«}| ¦«}|jrtdt |¦«¦«t |d¦«}t |d¦«}||fS)z]Get mailbox status. Result is tuple of 2 ints (message count, mailbox size) ÚSTATz*stat*r&é)rIÚsplitrr'r(Úint)rÚretvalÚretsÚ numMessagesÚ sizeMessagess r Ústatz POP3.statßsh€ð —’ Ñ'Ô'ˆØ�|Š|‰~Œ~ˆØ Œ?Ð7�E (­D°©J¬JÑ7Ô7Ð7ݘ$˜qœ'‘l”lˆ ݘ4 œ7‘|”|ˆ ؘ\Ð*Ð*r Ncó`—|�| d|z¦«S| d¦«S)aRequest listing, return result. Result without a message number argument is in form ['response', ['mesg_num octets', ...], octets]. Result when a message number argument is given is a single response: the "scan listing" for that message. NzLIST %sÚLIST©rIrK©rÚwhichs r rEz POP3.listìs3€ð Ð Ø—>’> )¨eÑ"3Ñ4Ô4Ð 4Ø�}Š}˜VÑ$Ô$Ð$r có2—| d|z¦«S)zoRetrieve whole message number 'which'. Result is in form ['response', ['line', ...], octets]. zRETR %s©rKrfs r Úretrz POP3.retrús€ð �}Š}˜Y¨Ñ.Ñ/Ô/Ð/r có2—| d|z¦«S)zFDelete message number 'which'. Result is 'response'. zDELE %srSrfs r Údelez POP3.deles€ð �~Š~˜i¨%Ñ/Ñ0Ô0Ð0r có,—| d¦«S)zXDoes nothing. One supposes the response indicates the server is alive. ÚNOOPrSrMs r Únoopz POP3.noop s€ð �~Š~˜fÑ%Ô%Ð%r có,—| d¦«S)z(Unmark all messages marked for deletion.ÚRSETrSrMs r Úrsetz POP3.rsets€à�~Š~˜fÑ%Ô%Ð%r cóX—| d¦«}| ¦«|S)zDSignoff: commit changes on server, unlock mailbox, close connection.ÚQUIT)rIÚclose)rr@s r Úquitz POP3.quits%€à�~Š~˜fÑ%Ô%ˆØ � Š ‰ Œ ˆ ؈ r cóà— |j}d|_|�| ¦«|j}d|_|�’ | tj¦«nB#t $r5}|jtjkrt|dd¦«dkr‚Yd}~nd}~wwxYw| ¦«dS#| ¦«wxYwdS#|j}d|_|�‘ | tj¦«nB#t $r5}|jtjkrt|dd¦«dkr‚Yd}~nd}~wwxYw| ¦«w#| ¦«wxYwwxYw)z8Close the connection without assuming anything about it.NÚwinerrorri&') rrurÚshutdownr#Ú SHUT_RDWRÚOSErrorÚerrnoÚENOTCONNÚgetattr)rrrÚexcs r ruz POP3.closesƒ€ð !Ø”9ˆD؈DŒIØÐØ— ’ ‘ ” � à”9ˆD؈DŒIØÐð !Ø—M’M¥&Ô"2Ñ3Ô3Ð3Ð3øÝððð𜠥U¤^Ò3Ð3Ý" 3¨ °AÑ6Ô6¸%Ò?Ð?Øøøøøøøøøøð øøøð—J’J‘L”L�L�L�Lø�D—J’J‘L”L�L�Løøøð Ðøð”9ˆD؈DŒIØÐð !Ø—M’M¥&Ô"2Ñ3Ô3Ð3Ð3øÝððð𜠥U¤^Ò3Ð3Ý" 3¨ °AÑ6Ô6¸%Ò?Ð?Øøøøøøøøøøð øøøð—J’J‘L”L�L�Lø�D—J’J‘L”L�L�Løøøð øøøsv‚$C ·AÁB/Á BÁ!+B B/ÂBÂB/Â/Cà E-ÃC<Ã;EÃ< D;Ä+D6Ä1EÄ6D;Ä;EÄ>E-ÅE)Å)E-có2—| d|z¦«S)zNot sure what this does.zRPOP %srSrTs r Úrpopz POP3.rpop9s€à�~Š~˜i¨$Ñ.Ñ/Ô/Ð/r s\+OK.[^<]*(<.*>)cóH—t||j¦«}|j |j¦«}|st d¦«‚ddl}| d¦«|z}| |¦«  ¦«}|  d|›d|›�¦«S)a Authorisation - only possible if server has supplied a timestamp in initial greeting. Args: user - mailbox user; password - mailbox password. NB: mailbox is locked by server from here to 'quit()' z!-ERR APOP not supported by serverrNr&zAPOP ú ) r/r0Ú timestampÚmatchrrÚhashlibÚgroupÚmd5Ú hexdigestrI)rrUÚpasswordÚsecretÚmr†Údigests r Úapopz POP3.apop@s�€õ�x ¤Ñ/Ô/ˆØ ŒN× Ò  ¤Ñ .Ô .ˆØð CÝÐAÑBÔBÐ B؈ˆˆØ—’˜‘”˜FÑ"ˆØ—’˜VÑ$Ô$×.Ò.Ñ0Ô0ˆØ�~Š~ˆ~¨d¨d¨d°F°FÐ;Ñ<Ô<Ð’> )¨eÑ"3Ñ4Ô4Ð 4Ø�}Š}˜VÑ$Ô$Ð$r có,—| d¦«S)zITry to enter UTF-8 mode (see RFC 6856). Returns server response. ÚUTF8rSrMs r Úutf8z POP3.utf8js€ð�~Š~˜fÑ%Ô%Ð%r có¸—d„}i} | d¦«}|d}|D]}||¦«\}}|||<Œn#t$rtd¦«‚wxYw|S)aReturn server capabilities (RFC 2449) as a dictionary >>> c=poplib.POP3('localhost') >>> c.capa() {'IMPLEMENTATION': ['Cyrus', 'POP3', 'server', 'v2.2.12'], 'TOP': [], 'LOGIN-DELAY': ['0'], 'AUTH-RESP-CODE': [], 'EXPIRE': ['NEVER'], 'USER': [], 'STLS': [], 'PIPELINING': [], 'UIDL': [], 'RESP-CODES': []} >>> Really, according to RFC 2449, the cyrus folks should avoid having the implementation split into multiple arguments... cót—| d¦« ¦«}|d|dd…fS)NÚasciirr&)Údecoder\)r,Úlsts r Ú _parsecapzPOP3.capa.._parsecap}s5€Ø—+’+˜gÑ&Ô&×,Ò,Ñ.Ô.ˆCØ�q”6˜3˜q˜r˜rœ7�?Ð "r ÚCAPAr&z!-ERR CAPA not supported by server)rKr)rr�Úcapsr@ÚrawcapsÚcaplineÚcapnmÚcapargss r Úcapaz POP3.capapsŸ€ð #ð #ð #ðˆð CØ—=’= Ñ(Ô(ˆDؘ1”gˆGØ"ð &ð &�Ø!* ¨7Ñ!3Ô!3‘��wØ%��U‘ � ð &øõð Cð Cð CÝÐAÑBÔBÐ Bð Cøøøàˆ s ‡5=½Acó˜—tstd¦«‚|jrtd¦«‚| ¦«}d|vrtd¦«‚|€t j¦«}| d¦«}| |j|j ¬¦«|_|j  d¦«|_ d|_|S) z{Start a TLS session on the active connection as specified in RFC 2595. context - a ssl.SSLContext z-ERR TLS support missingú$-ERR TLS session already establishedÚSTLSz!-ERR STLS not supported by serverN©Úserver_hostnamerT) ÚHAVE_SSLrrr¤ÚsslÚ_create_stdlib_contextrIÚ wrap_socketrrrr)rÚcontextrŸr@s r Ústlsz POP3.stls�sÊ€õ ð :ÝÐ8Ñ9Ô9Ð 9Ø Ô ð FÝÐDÑEÔEÐ EØ�yŠy‰{Œ{ˆØ˜ˆ~ˆ~ÝÐAÑBÔBÐ BØ ˆ?ÝÔ0Ñ2Ô2ˆGØ�~Š~˜fÑ%Ô%ˆØ×'Ò'¨¬ Ø8<¼ ð(ñCôCˆŒ à”I×&Ò& tÑ,Ô,ˆŒ Ø $ˆÔ؈ r rH)'rrrÚ__doc__r0Ú POP3_PORTr#Ú_GLOBAL_DEFAULT_TIMEOUTr rr-r3r<rrFrIrKrNrQrUrXrbrErjrlrorrrvrur�r1Úcompiler„rŽr‘r”r—r¤r¯r r r rr3sþ€€€€€ð)ð)ðV€Hà"+ØÔ7ð 'ð 'ð 'ð 'ðIðIðIð 'ð'ð'ðððð!ð!ð!ð*ððð "ð "ð "ð ððð#ð#ð#ðððð ð ð ð 0ð0ð0ð0ð0ð0ð +ð +ð +ð %ð %ð %ð %ð0ð0ð0ð1ð1ð1ð&ð&ð&ð&ð&ð&ð ððð !ð!ð!ð80ð0ð0ð �” Ð/Ñ0Ô0€Ið=ð=ð=ð*=ð=ð=ð %ð %ð %ð %ð&ð&ð&ð ððð:ðððððr có<—eZdZdZeddejdfd„Zd„Zdd„Z dS)ÚPOP3_SSLaPOP3 client class over SSL connection Instantiate with: POP3_SSL(hostname, port=995, keyfile=None, certfile=None, context=None) hostname - the hostname of the pop3 over ssl server port - port number keyfile - PEM formatted file that contains your private key certfile - PEM formatted certificate chain file context - a ssl.SSLContext See the methods of the parent class POP3 for more documentation. Ncó.—|�|�td¦«‚|�|�td¦«‚|€|� ddl}| dtd¦«||_||_|€t j||¬¦«}||_t  ||||¦«dS)Nz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiverzAkeyfile and certfile are deprecated, use a custom context insteadr[)ÚcertfileÚkeyfile) r"ÚwarningsÚwarnÚDeprecationWarningr¸r·r«r¬r®rr )rrrr¸r·rr®r¹s r r zPOP3_SSL.__init__´sÔ€àÐ" wÐ':Ý ð"-ñ.ô.ð.àÐ" xÐ';Ý ð"-ñ.ô.ð.àÐ" hÐ&:Ø���Ø— ’ ð7Ý8JÈAñOôOðOà"ˆDŒLØ$ˆDŒM؈ÝÔ4¸hØ=DðFñFôF�à"ˆDŒLÝ �MŠM˜$  d¨GÑ 4Ô 4Ð 4Ð 4Ð 4r có~—t ||¦«}|j ||j¬¦«}|S)Nr¨)rrr®r­r)rrrs r rzPOP3_SSL._create_socketÈsA€Ý×&Ò& t¨WÑ5Ô5ˆDØ”<×+Ò+¨DØ<@¼Ið,ñGôGˆDàˆKr có —td¦«‚)z¬The method unconditionally raises an exception since the STLS command doesn't make any sense on an already established SSL/TLS session. r¦)r)rr¸r·r®s r r¯z POP3_SSL.stlsÎs€õ ÐDÑEÔEÐ Er )NNN) rrrr°Ú POP3_SSL_PORTr#r²r rr¯r r r rµrµ¥sl€€€€€ð ð ð'4¸TÈDØ#Ô;ÀTð 5ð 5ð 5ð 5ð( ð ð ð  Fð Fð Fð Fð Fð Fr rµÚ__main__r&r[éz Message %d:z z-----------------------)'r°r|r1r#rr«rªÚ ImportErrorÚ__all__Ú Exceptionrr±r¾r:ÚLFr*r8rrµrDrÚargvÚar'rNrUrXrErbÚnumMsgsÚ totalSizeÚrangeÚirjÚheaderÚmsgr;r,rvr r r úrÍsoðððð € € € Ø € € € Ø € € € Ø € € € ðØ€J€J€JØ€H€HøØðððØ€H€H€Hðøøøð �-Ð €ð#Ð"Ð"Ð"Ð"�)Ñ"Ô"Ð"ð € ð€ ð €Ø €Ø ˆ"�u€ð €ðmðmðmðmðmñmômðmð`  ð2ð.Fð.Fð.Fð.Fð.F�4ñ.Fô.Fð.Fð` ‡N‚N�:ÑÔÐà ˆzÒÑØ€J€J€JØ ˆˆSŒX�aŒ[ÑÔ€AØ €Eˆ!�,Š,‰.Œ.ÑÔÐØ‡F‚Fˆ3Œ8�AŒ;ÑÔÐØ‡G‚GˆCŒH�QŒKÑÔÐØ‡F‚F�H„H€HØŸ6š6™8œ8Ñ€WˆiØ ˆU�1�g ‘kÑ "Ô "ð)ð)ˆØ !§¢ q¡ ¤ ш��fØ ˆˆm˜aÑÑ Ô Ð Øð ð ˆDØ ˆE�%˜$‘,Ñ Ô Ð Ð Ø ˆÐ'Ñ(Ô(Ð(Ð(؇F‚F�H„H€H€H€HðÐs ”›%¤%