grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026+ »É0¤qáãó€Rt^RIt^RIt^RIt^RIt^RItRtRR.t!RR] 4t ^nt Rt Rt R t] ],tR t!R R4t]'d!R R ]4t]P'R 4]R8XEd]!]P*^,4t]!]P144]P3]P*^,4]P5]P*^,4]P74]P94wtt]!^]^,4FGt ]PC] 4wt"t#t$]!R] ,4]#Ft%]!R]%,4K ]!R4KI ]PM4R#R# ]dRtELii;i)z@A POP3 client class. Based on the J. Myers POP3 draft, Jan. 96 NTFÚPOP3Ú error_protocó€]tRt^tRtR#)r©N)Ú__name__Ú __module__Ú __qualname__Ú__firstlineno__Ú__static_attributes__róÚ-/opt/alt/python314/lib64/python3.14/poplib.pyrrs†›dr iãó ó icóa€]tRt^3toRtRt]]P3Rlt Rt Rt Rt Rt RtR tR tR tR tR tRtRtRtR"RltRtRtRtRtRtRtRt]P@!R4t!Rt"Rt#R"Rlt$Rt%Rt&R"R lt'R!t(Vt)R#)#raÈThis 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ó€WnW nRVn\P!RWV4VP V4VnVP PR4Vn^Vn VP4Vn R#)Fzpoplib.connectÚrbN) ÚhostÚportÚ_tls_establishedÚsysÚauditÚ_create_socketÚsockÚmakefileÚfileÚ _debuggingÚ_getrespÚwelcome)ÚselfrrÚtimeouts&&&&r Ú__init__Ú POP3.__init__bsa€àŒ ØŒ Ø %ˆÔÜ � Š Ð" D°Ô5Ø×'Ñ'¨Ó0ˆŒ Ø—I‘I×&Ñ& tÓ,ˆŒ ؈ŒØ—}‘}“ˆŽ r cóŠ€VeV'g \R4h\P!VPVP3V4#)Nz0Non-blocking socket (timeout=0) is not supported)Ú ValueErrorÚsocketÚcreate_connectionrr)rrs&&r rÚPOP3._create_socketms6€Ø Ò §wÜÐOÓPÐ PÜ×'Ò'¨¯©°D·I±IÐ(>ÀÓHÐHr cóÌ€VP^8”d\R\V44\P!RW4VP P V\,4R#)éz*put*zpoplib.putlineN)rÚprintÚreprrrrÚsendallÚCRLF©rÚlines&&r Ú_putlineÚ POP3._putliners@€Ø �?‰?˜QÔ ¤ g¬t°D«zÔ :Ü � Š Ð" DÔ/Ø � ‰ ×ј$¤�+Ö&r cóð€VP'd\R\V44\WP4p\ P !RV4'd \R4hVPV4R#)z*cmd*s[-]z*Control characters not allowed in commandsN) rr)r*ÚbytesÚencodingÚreÚsearchr#r/r-s&&r Ú_putcmdÚ POP3._putcmdzsP€Ø �?�?ˆ?œE '¬4°«:Ô6Ü�TŸ=™=Ó)ˆÜ �9Š9Ð'¨× .Ò .ÜÐIÓJÐ JØ � ‰ �dÖr có~€VPP\^,4p\V4\8”d \ R4hVP ^8”d\ R\V44V'g \ R4h\V4pVRR\8XdVRRV3#VR,\8XdV^RV3#VRRV3#)r(z line too longz*get*z-ERR EOFN:Nr(Néþÿÿÿéÿÿÿÿ) rÚreadlineÚ_MAXLINEÚlenrrr)r*r,ÚCR)rr.Úoctetss& r Ú_getlineÚ POP3._getline†s®€Ø�y‰y×!Ñ!¤(¨Q¥,Ó/ˆÜ ˆt‹9”xÔ Ü˜oÓ.Ð .à �?‰?˜QÔ ¤ g¬t°D«zÔ :ßœ; zÓ2Ð2Ü�T“ˆð ��ˆ9œÔ ؘ˜�9˜fÐ$Ð $Ø ��8”rŒ>ؘ˜"�:˜vÐ%Ð %Ø�C�Rˆy˜&Ð Ð r cóº€VP4wrVP^8”d\R\V44VP R4'g \ V4hV#)r(z*resp*ó+)r@rr)r*Ú startswithr)rÚrespÚos& r rÚ POP3._getresp›sG€Ø—-‘-“/‰ˆØ �?‰?˜QÔ ¤ h´°T³ Ô ;Ø�‰˜t×$Ò$ܘdÓ#Ð #؈ r có€VP4p.p^pVP4wrEVR8wdWVPR4'dV^, pVR,pW5,pVPV4VP4wrEK]WV3#)éó.s..ºr(NN)rr@rDÚappend)rrEÚlistr?r.rFs& r Ú _getlongrespÚPOP3._getlongresp¥sx€Ø�}‰}‹ˆØˆ˜A�6Ø—-‘-“/‰ˆØ�dŒlØ�‰˜u×%Ò%Ø�a•C�ؘB•x�Ø•ZˆFØ �K‰K˜Ô Ø—m‘m“o‰GˆD‘!ؘ6Ð!Ð!r cóD€VPV4VP4#©N)r6rr-s&&r Ú _shortcmdÚPOP3._shortcmdµs€Ø � ‰ �TÔØ�}‰}‹Ðr cóD€VPV4VP4#rQ)r6rNr-s&&r Ú_longcmdÚ POP3._longcmd¼s€Ø � ‰ �TÔØ× Ñ Ó"Ð"r có€VP#rQ)r©rs&r Ú getwelcomeÚPOP3.getwelcomeÃs €Ø�|‰|Ðr có€WnR#rQ)r)rÚlevels&&r Úset_debuglevelÚPOP3.set_debuglevelÇs€ØŽr c ó2€VPRV,4#)zFSend user name, return response (should indicate password required). zUSER %s©rR©rÚusers&&r rbÚ POP3.userÍs€ð �~‰~˜i¨$Õ.Ó/Ð/r c ó2€VPRV,4#)zˆSend password, return response (response includes message count, mailbox size). NB: mailbox is locked by server from here to 'quit()' zPASS %sr`)rÚpswds&&r Úpass_Ú POP3.pass_Õs€ð�~‰~˜i¨$Õ.Ó/Ð/r c óL€VPR4pVP4pVP'd\R\ V44\ V4^8d \ R4h\V^,4p\V^,4pW43# \d \ R4hi;i)zMGet mailbox status. Result is tuple of 2 ints (message count, mailbox size) ÚSTATz*stat*zInvalid STAT response formatz.Invalid STAT response data: non-numeric values) rRÚsplitrr)r*r=rÚintr#)rÚretvalÚretsÚ numMessagesÚ sizeMessagess& r ÚstatÚ POP3.statßs–€ð —‘ Ó'ˆØ�|‰|‹~ˆØ �?�?ˆ?œE (¬D°«JÔ7ô ˆt‹9�qŒ=ÜÐ<Ó=Ð =ð Pܘd 1�g›,ˆKܘt A�w›<ˆLðÐ*Ð*øôô PÜÐNÓOÐ Oð Pús Á%$B  B#Nc ó\€VeVPRV,4#VPR4#)zðRequest 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. zLIST %sÚLIST©rRrU©rÚwhichs&&r rMÚ POP3.list÷s-€ð Ò Ø—>‘> )¨eÕ"3Ó4Ð 4Ø�}‰}˜VÓ$Ð$r c ó2€VPRV,4#)z_Retrieve whole message number 'which'. Result is in form ['response', ['line', ...], octets]. zRETR %s©rUrus&&r ÚretrÚ POP3.retrs€ð �}‰}˜Y¨Õ.Ó/Ð/r c ó2€VPRV,4#)z6Delete message number 'which'. Result is 'response'. zDELE %sr`rus&&r ÚdeleÚ POP3.dele s€ð �~‰~˜i¨%Õ/Ó0Ð0r c ó$€VPR4#)zHDoes nothing. One supposes the response indicates the server is alive. ÚNOOPr`rXs&r ÚnoopÚ POP3.noops€ð �~‰~˜fÓ%Ð%r c ó$€VPR4#)z(Unmark all messages marked for deletion.ÚRSETr`rXs&r ÚrsetÚ POP3.rsets€à�~‰~˜fÓ%Ð%r c óH€VPR4pVP4V#)zDSignoff: commit changes on server, unlock mailbox, close connection.ÚQUIT)rRÚclose)rrEs& r ÚquitÚ POP3.quit"s€à�~‰~˜fÓ%ˆØ � ‰ Œ ؈ r c ó€VPpRVnVeVP4VPpRVnVe3VP\P 4VP4R#R# \ d=pTP\P8wd\TR^4R8wdhRp?LVRp?ii;i TP4i;i TPpRTnTe’TP\P 4MJ \ d=pTP\P8wd\TR^4R8wdhRp?MRp?ii;iTP4i TP4i;ii;i)z8Close the connection without assuming anything about it.NÚwinerrori&') rr‰rÚshutdownr$Ú SHUT_RDWRÚOSErrorÚerrnoÚENOTCONNÚgetattr)rrrÚexcs& r r‰Ú POP3.close(s)€ð !Ø—9‘9ˆD؈DŒIØÒØ— ‘ ” à—9‘9ˆD؈DŒIØÒð !Ø—M‘M¤&×"2Ñ"2Ô3ð—J‘J–Lñ øôô🠙 ¤U§^¡^Ô3Ü" 3¨ °AÓ6¸%Ô?Øÿøð ûð—J‘J•Lûð—9‘9ˆD؈DŒIØÒð !Ø—M‘M¤&×"2Ñ"2Õ3øÜô🠙 ¤U§^¡^Ô3Ü" 3¨ °AÓ6¸%Ô?Øÿøð úð—J‘J•Lø�D—J‘J•Lúð úsq‚'CÁA4Á4 B;Á?2B6Â1B>Â6B;Â;B>Â>CÃE=Ã,D Ä E'Ä EÄ2EÅ E'ÅEÅE'ÅE=Å'E9Å9E=c ó2€VPRV,4#)z?Send RPOP command to access the mailbox with an alternate user.zRPOP %sr`ras&&r ÚrpopÚ POP3.rpopDs€à�~‰~˜i¨$Õ.Ó/Ð/r s\+OK.[^<]*(<.*>)c óD€\W P4pVPPVP4pV'g \ R4h^RIpVP^4V,pVPV4P4pVPRV: RV: 24#)zÛ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 serverNzAPOP Ú ) r2r3Ú timestampÚmatchrrÚhashlibÚgroupÚmd5Ú hexdigestrR)rrbÚpasswordÚsecretÚmr�Údigests&&& r ÚapopÚ POP3.apopKsy€ô�x§¡Ó/ˆØ �N‰N× Ñ  §¡Ó .ˆßÜÐAÓBÐ BÛØ—‘˜“˜FÕ"ˆØ—‘˜VÓ$×.Ñ.Ó0ˆØ�~Š~«d²FÐ;Ó<Б> )¨eÕ"3Ó4Ð 4Ø�}‰}˜VÓ$Ð$r c ó$€VPR4#)zITry to enter UTF-8 mode (see RFC 6856). Returns server response. ÚUTF8r`rXs&r Úutf8Ú POP3.utf8us€ð�~‰~˜fÓ%Ð%r c ó¨€Rp/pVPR4pV^,pVFpV!V4wrgWrV&K V# \d \R4hi;i)a°Return 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ód€VPR4P4pV^,VR,3#)ÚasciirK)Údecoderj)r.Úlsts& r Ú _parsecapÚPOP3.capa.._parsecapˆs+€Ø—+‘+˜gÓ&×,Ñ,Ó.ˆCØ�q•6˜3˜r�7�?Ð "r ÚCAPAz!-ERR CAPA not supported by server)rUr)rr¸ÚcapsrEÚrawcapsÚcaplineÚcapnmÚcapargss& r ÚcapaÚ POP3.capa{sn€ò #ðˆð CØ—=‘= Ó(ˆDؘ1•gˆGÛ"�Ù!*¨7Ó!3‘�Ø%�U“ ñ#ð ˆ øôô CÜÐAÓBÐ Bð Cús ‡1:ºAc ó¬€\'g \R4hVP'd \R4hVP4pRV9g \R4hVf\P !4pVP R4pVPVPVPR7VnVPPR4Vn RVnV#)zcStart 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 server©Úserver_hostnamerT) ÚHAVE_SSLrrrÀÚsslÚ_create_stdlib_contextrRÚ wrap_socketrrrr)rÚcontextr»rEs&& r ÚstlsÚ POP3.stls˜s´€÷ ‹xÜÐ8Ó9Ð 9Ø × × Ð ÜÐDÓEÐ EØ�y‰y‹{ˆØ˜Œ~ÜÐAÓBÐ BØ Š?Ü×0Ò0Ó2ˆGØ�~‰~˜fÓ%ˆØ×'Ñ'¨¯ © Ø8<¿ ¹ ð(óCˆŒ à—I‘I×&Ñ& tÓ,ˆŒ Ø $ˆÔ؈ r )rrrrrrrrQ)*rrrr Ú__doc__r3Ú POP3_PORTr$Ú_GLOBAL_DEFAULT_TIMEOUTr rr/r6r@rrNrRrUrYr]rbrfrprMrzr}r�r…rŠr‰r—r4Úcompiler›r¥r©r­r±rÀrÌr Ú__classdictcell__©Ú __classdict__s@r rr3sÁø‡€ñ)ðV€Hà"+Ø×7Ñ7ô 'òIò 'òò!ò*ò "ò ò#òò ò 0ò0ò+ô0 %ò0ò1ò&ò&ò ò !ò80ð — ’ Ð/Ó0€Iò=ò*=ô %ò&ò ÷:òr có`a€]tRtRtoRt]3R]PRR/RlltRt R Rlt R t Vt R#) ÚPOP3_SSLi°aPOP3 client class over SSL connection Instantiate with: POP3_SSL(hostname, port=995, context=None) hostname - the hostname of the pop3 over ssl server port - port number context - a ssl.SSLContext See the methods of the parent class POP3 for more documentation. rrËNcóp€Vf\P!4pW@n\P WW#4R#rQ)rÈrÉrËrr )rrrrrËs&&&$$r r ÚPOP3_SSL.__init__¼s(€àŠÜ×4Ò4Ó6�Ø"ŒLÜ �M‰M˜$ dÖ 4r có~€\PW4pVPPVVPR7pV#)rÅ)rrrËrÊr)rrrs&& r rÚPOP3_SSL._create_socketÃs:€Ü×&Ñ& tÓ5ˆDØ—<‘<×+Ñ+¨DØ<@¿I¹Ið,óGˆDàˆKr c ó€\R4h)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Ës&&r rÌÚ POP3_SSL.stlsÉs€ô ÐDÓEÐ Er )rËrQ) rrrr rÎÚ POP3_SSL_PORTr$rÐr rrÌr rÒrÓs@r rÖrÖ°s;ø‡€ñ ð'4ñ 5Ø &× >Ñ >ð 5ØHLõ 5ò ÷  Fò Fr rÖÚ__main__z Message %d:z z-----------------------)'rÎr‘r4r$rrÈrÇÚ ImportErrorÚ__all__Ú ExceptionrrÏrÝr>ÚLFr,r<rrÖrLrÚargvÚar)rYrbrfrMrpÚnumMsgsÚ totalSizeÚrangeÚirzÚheaderÚmsgr?r.rŠrr r Úrësyðñó Û Û Û ðÛØ€Hð �-Ð €ô#�)Ô"ð € ð€ ð €Ø €Ø ˆ"…u€ð €÷xñx÷v  ôF�4ôFð@ ‡N�N�:Ôà ˆzÕÙ ˆS�X‰X�a�[Ó€AÙ ˆ!�,‰,‹.ÔØ‡F�Fˆ3�8‰8�A�;ÔØ‡G�GˆC�H‰H�Q�KÔØ‡F�F„HØŸ6™6›8Ñ€WˆiÙ �1�g •kÖ "ˆØ !§¡ q£ ш��fÙ ˆm˜aÕÔ ÛˆDÙ �%˜$•,Ö ñá Ð'Ö(ñ #ð ‡F�F†Hñøðu ô؃Hðús”E7Å7 FÆF