python (3.12.0)

(root)/
lib/
python3.12/
__pycache__/
poplib.cpython-312.opt-1.pyc

ˑeS7dZddlZddlZddlZddlZ	ddlZdZddgZGdde	Z
dZd	Zd
Z
dZe
ezZdZGd
dZerGddeZej'dedk(rddlZeej*dZeej1ej3ej*dej5ej*dej7ej9\ZZededzD]<Z ejCe \Z"Z#Z$ede ze#D]
Z%ede%zed>ejMyy#e$rdZY@wxYw)z@A POP3 client class.

Based on the J. Myers POP3 draft, Jan. 96
NTFPOP3error_protoceZdZy)rN)__name__
__module____qualname__:/BuggyBox/python/3.12.0/bootstrap/lib/python3.12/poplib.pyrrsr
ni

iceZdZdZdZeejfdZdZ	dZ
dZdZdZ
d	Zd
ZdZdZd
ZdZdZdZd!dZdZdZdZdZdZdZdZej>dZ dZ!dZ"d!dZ#dZ$dZ%d!d Z&y)"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||_|jjd|_d|_	|j|_y)NFzpoplib.connectrbr)hostport_tls_establishedsysaudit_create_socketsockmakefilefile
_debugging_getrespwelcome)selfrrtimeouts    r__init__z
POP3.__init__bsg		 %		"D$5''0	II&&t,	}}r
cx|
|stdtj|j|jf|S)Nz0Non-blocking socket (timeout=0) is not supported)
ValueErrorsocketcreate_connectionrr)rrs  rrzPOP3._create_socketms6wOPP''DII(>HHr
c|jdkDrtdt|tjd|||j
j
|tzy)Nz*put*zpoplib.putline)rprintreprrrrsendallCRLFrlines  r_putlinez
POP3._putlinersB??QgtDz :		"D$/		$+&r
c|jrtdt|t||j}|j|y)Nz*cmd*)rr'r(bytesencodingr-r+s  r_putcmdzPOP3._putcmdzs2??E'4:6T4==)

dr
cR|jjtdz}t|tkDrt	d|j
dkDrt
dt||st	dt|}|ddtk(r|dd|fS|ddtk(r|dd|fS|dd|fS)Nr&z
line too longz*get*z-ERR EOF)
rreadline_MAXLINElenrrr'r(r*CR)rr,octetss   r_getlinez
POP3._getlinesyy!!(Q,/t9xo..??QgtDz :;z22T99f$$8r>":v%%CRy&  r
c|j\}}|jdkDrtdt||j	dst||S)Nr&z*resp*+)r:rr'r(
startswithr)rrespos   rrz
POP3._getrespsF--/a??QhT
 ;t$d##r
c|j}g}d}|j\}}|dk7rJ|jdr
|dz
}|dd}||z}|j||j\}}|dk7rJ|||fS)Nr.s..r&)rr:r=append)rr>listr9r,r?s      r_getlongrespzPOP3._getlongresps}}A6--/adlu%aCABxaZFKKmmoGD!
dlT6!!r
cD|j||jSN)r1rr+s  r	_shortcmdzPOP3._shortcmdsT}}r
cD|j||jSrF)r1rDr+s  r_longcmdz
POP3._longcmdsT  ""r
c|jSrF)rrs r
getwelcomezPOP3.getwelcomes||r
c||_yrF)r)rlevels  rset_debuglevelzPOP3.set_debuglevels	r
c*|jd|zS)zVSend user name, return response

        (should indicate password required).
        zUSER %srGrusers  rrSz	POP3.users
~~i$.//r
c*|jd|zS)zSend password, return response

        (response includes message count, mailbox size).

        NB: mailbox is locked by server from here to 'quit()'
        zPASS %srQ)rpswds  rpass_z
POP3.pass_s~~i$.//r
c|jd}|j}|jrtdt	|t|d}t|d}||fS)z]Get mailbox status.

        Result is tuple of 2 ints (message count, mailbox size)
        STATz*stat*r&)rGsplitrr'r(int)rretvalretsnumMessagessizeMessagess     rstatz	POP3.statsV
'||~??E(DJ7$q'l47|\**r
NcP||jd|zS|jdS)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.
        zLIST %sLISTrGrIrwhichs  rrCz	POP3.lists->>)e"344}}V$$r
c*|jd|zS)zoRetrieve whole message number 'which'.

        Result is in form ['response', ['line', ...], octets].
        zRETR %srIrds  rretrz	POP3.retrs
}}Y.//r
c*|jd|zS)zFDelete message number 'which'.

        Result is 'response'.
        zDELE %srQrds  rdelez	POP3.deles
~~i%/00r
c$|jdS)zXDoes nothing.

        One supposes the response indicates the server is alive.
        NOOPrQrKs rnoopz	POP3.noops
~~f%%r
c$|jdS)z(Unmark all messages marked for deletion.RSETrQrKs rrsetz	POP3.rsets~~f%%r
cH|jd}|j|S)zDSignoff: commit changes on server, unlock mailbox, close connection.QUIT)rGclose)rr>s  rquitz	POP3.quits~~f%

r
c	|j}d|_||j|j}d|_|1	|jtj
|jyy#t$r8}|jtjk7rt|dddk7rYd}~Nd}~wwxYw#|jwxYw#|j}d|_|	|jtj
nD#t$r8}|jtjk7rt|dddk7rYd}~nd}~wwxYw|jw#|jwxYwwxYw)z8Close the connection without assuming anything about it.Nwinerrorri&')
rrsrshutdownr#	SHUT_RDWROSErrorerrnoENOTCONNgetattr)rrrexcs    rrsz
POP3.closes)	!99DDI

99DDI
!MM&"2"23JJL 		U^^3"3
A6%?
JJL99DDI
!MM&"2"23		U^^3"3
A6%?
JJLDJJL sp%CA..	B/7.B*%B2*B//B22CE)C>=E>	D?.D:5E:D??EE)E%%E)c*|jd|zS)zNot sure what this does.zRPOP %srQrRs  rrpopz	POP3.rpop7s~~i$.//r
s\+OK.[^<]*(<.*>)c.t||j}|jj|j}|stdddl}|jd|z}|j|j}|jd|d|S)aAuthorisation

        - 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	timestampmatchrrhashlibgroupmd5	hexdigestrG)rrSpasswordsecretmrdigests       rapopz	POP3.apop>s{x/NN  .ABBF"V$..0~~dF;<<r
c0|jd|d|S)zRetrieve message header of message number 'which'
        and first 'howmuch' lines of message body.

        Result is in form ['response', ['line', ...], octets].
        zTOP rrg)rrehowmuchs   rtopzPOP3.topSs}}E7;<<r
cP||jd|zS|jdS)zReturn message digest (unique id) list.

        If 'which', result contains unique id for that message
        in the form 'response mesgnum uid', otherwise result is
        the list ['response', ['mesgnum uid', ...], octets]
        zUIDL %sUIDLrcrds  ruidlz	POP3.uidl\s->>)e"344}}V$$r
c$|jdS)zITry to enter UTF-8 mode (see RFC 6856). Returns server response.
        UTF8rQrKs rutf8z	POP3.utf8hs~~f%%r
cd}i}	|jd}|d}|D]}||\}}|||<	|S#t$rtdwxYw)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...
        cT|jdj}|d|ddfS)Nasciirr&)decoderZ)r,lsts  r	_parsecapzPOP3.capa.<locals>._parsecap{s-++g&,,.Cq63qr7?"r
CAPAr&z!-ERR CAPA not supported by server)rIr)rrcapsr>rawcapscaplinecapnmcapargss        rcapaz	POP3.capansw	#	C==(D1gG"
&!*7!3w%U
&
	CABB	Cs	-7Actstd|jrtd|j}d|vrtd|t	j
}|j
d}|j|j|j|_|jjd|_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 establishedSTLSz!-ERR STLS not supported by serverserver_hostnamerT)HAVE_SSLrrrssl_create_stdlib_contextrGwrap_socketrrrr)rcontextrr>s    rstlsz	POP3.stlss
899  DEEyy{~ABB?002G~~f%''		8<		(C	II&&t,	 $r
rF)'rrr__doc__r0	POP3_PORTr#_GLOBAL_DEFAULT_TIMEOUTr rr-r1r:rrDrGrIrLrOrSrVr`rCrhrjrmrprtrsrrecompilerrrrrrrr	r
rrr3s)VH"+77	'I
'!*" # 00
+%01&&
!80


/0I=*=	%&:r
cDeZdZdZefejdddZdZddZ	y)POP3_SSLaNPOP3 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.
        N)rrcn|tj}||_tj	||||yrF)rrrrr )rrrrrs     rr zPOP3_SSL.__init__s.446"DLMM$dG4r
ctj||}|jj||j}|S)Nr)rrrrr)rrrs   rrzPOP3_SSL._create_sockets<&&tW5D<<++D<@II,GDKr
ctd)zThe method unconditionally raises an exception since the
            STLS command doesn't make any sense on an already established
            SSL/TLS session.
            r)r)rrs  rrz
POP3_SSL.stlss
DEEr
rF)
rrrr
POP3_SSL_PORTr#rr rrr	r
rrrs,		'4	5 & > >	5		Fr
r__main__r&rYzMessage %d:z   z-----------------------)'rrzrr#rrrImportError__all__	Exceptionrrrr8LFr*r6rrrBrargvar'rLrSrVrCr`numMsgs	totalSizerangeirhheadermsgr9r,rtr	r
r<module>rs
	

H-
 #)"
	

	"ukk\F4F@NN:zSXXa[A	!,,.FF388A;GGCHHQKFFH668Wi
1gk
") !q	f
ma 	 D%$,	 
'()FFH[
HsEEE