%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /usr/local/lib/python2.7/
Upload File :
Create Path :
Current File : //usr/local/lib/python2.7/poplib.pyo

ó
Męáac@sŤdZddlZddlZddgZdefd„ƒYZdZdZdZd	Z	ee	Z
d
Zdfd„ƒYZyddl
Z
Wnek
ržn$Xdefd
„ƒYZejdƒedkr§ddlZeejdƒZejƒGHejejdƒejejdƒejƒejƒ\ZZx[ededƒD]FZejeƒ\ZZ Z!deGHxe D]Z"de"GHq~WdGHqPWej#ƒndS(s@A POP3 client class.

Based on the J. Myers POP3 draft, Jan. 96
i˙˙˙˙NtPOP3terror_protocBseZRS((t__name__t
__module__(((s"/usr/local/lib/python2.7/poplib.pyRsiniăs
s
icBsűeZdZeejd„Zd„Zd„Zd„Z	d„Z
d„Zd„Zd„Z
d	„Zd
„Zd„Zd„Zd
„Zdd„Zd„Zd„Zd„Zd„Zd„Zd„ZejdƒZd„Zd„Zdd„Z RS(sĎ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)

    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.
    cCs^||_||_tj||f|ƒ|_|jjdƒ|_d|_|jƒ|_	dS(Ntrbi(
thosttporttsockettcreate_connectiontsocktmakefiletfilet
_debuggingt_getresptwelcome(tselfRRttimeout((s"/usr/local/lib/python2.7/poplib.pyt__init__Us			cCs?|jdkr!dGt|ƒGHn|jjd|tfƒdS(Nis*put*s%s%s(RtreprR	tsendalltCRLF(Rtline((s"/usr/local/lib/python2.7/poplib.pyt_putline_scCs,|jrdGt|ƒGHn|j|ƒdS(Ns*cmd*(RRR(RR((s"/usr/local/lib/python2.7/poplib.pyt_putcmdfs	cCsĆ|jjtdƒ}t|ƒtkr7tdƒ‚n|jdkrXdGt|ƒGHn|smtdƒ‚nt|ƒ}|dtkr—|d |fS|dtkr¸|dd!|fS|d |fS(Nis
line too longs*get*s-ERR EOFiţ˙˙˙ii˙˙˙˙(	Rtreadlinet_MAXLINEtlenRRRRtCR(RRtoctets((s"/usr/local/lib/python2.7/poplib.pyt_getlineoscCs\|jƒ\}}|jdkr3dGt|ƒGHn|d }|dkrXt|ƒ‚n|S(Nis*resp*t+(RRRR(Rtresptotc((s"/usr/local/lib/python2.7/poplib.pyR
ƒs
cCsš|jƒ}g}d}|jƒ\}}x`|dkrŒ|d dkr`|d}|d}n||}|j|ƒ|jƒ\}}q-W|||fS(Nit.is..i(R
Rtappend(RRtlistRRR ((s"/usr/local/lib/python2.7/poplib.pyt_getlongrespŽs



cCs|j|ƒ|jƒS(N(RR
(RR((s"/usr/local/lib/python2.7/poplib.pyt	_shortcmdžs
cCs|j|ƒ|jƒS(N(RR%(RR((s"/usr/local/lib/python2.7/poplib.pyt_longcmdĽs
cCs|jS(N(R(R((s"/usr/local/lib/python2.7/poplib.pyt
getwelcomeŹscCs
||_dS(N(R(Rtlevel((s"/usr/local/lib/python2.7/poplib.pytset_debuglevel°scCs|jd|ƒS(sVSend user name, return response

        (should indicate password required).
        sUSER %s(R&(Rtuser((s"/usr/local/lib/python2.7/poplib.pyR+śscCs|jd|ƒS(s Send password, return response

        (response includes message count, mailbox size).

        NB: mailbox is locked by server from here to 'quit()'
        sPASS %s(R&(Rtpswd((s"/usr/local/lib/python2.7/poplib.pytpass_žscCs`|jdƒ}|jƒ}|jr6dGt|ƒGHnt|dƒ}t|dƒ}||fS(s]Get mailbox status.

        Result is tuple of 2 ints (message count, mailbox size)
        tSTATs*stat*ii(R&tsplitRRtint(RtretvaltretstnumMessagestsizeMessages((s"/usr/local/lib/python2.7/poplib.pytstatČs	cCs*|dk	r|jd|ƒS|jdƒS(sRequest 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.
        sLIST %stLISTN(tNoneR&R'(Rtwhich((s"/usr/local/lib/python2.7/poplib.pyR$Ős	cCs|jd|ƒS(soRetrieve whole message number 'which'.

        Result is in form ['response', ['line', ...], octets].
        sRETR %s(R'(RR8((s"/usr/local/lib/python2.7/poplib.pytretrăscCs|jd|ƒS(sFDelete message number 'which'.

        Result is 'response'.
        sDELE %s(R&(RR8((s"/usr/local/lib/python2.7/poplib.pytdeleëscCs
|jdƒS(sXDoes nothing.

        One supposes the response indicates the server is alive.
        tNOOP(R&(R((s"/usr/local/lib/python2.7/poplib.pytnoopóscCs
|jdƒS(s(Unmark all messages marked for deletion.tRSET(R&(R((s"/usr/local/lib/python2.7/poplib.pytrsetűscCsYy|jdƒ}Wntk
r.}|}nX|jjƒ|jjƒ|`|`|S(sDSignoff: commit changes on server, unlock mailbox, close connection.tQUIT(R&RRtcloseR	(RRtval((s"/usr/local/lib/python2.7/poplib.pytquits


cCs|jd|ƒS(sNot sure what this does.sRPOP %s(R&(RR+((s"/usr/local/lib/python2.7/poplib.pytrpopss\+OK.[^<]*(<.*>)cCsŠ|jj|jƒ}|s*tdƒ‚nddl}|j|jdƒ|ƒjƒ}djt	d„|ƒƒ}|j
d||fƒS(s Authorisation

        - only possible if server has supplied a timestamp in initial greeting.

        Args:
                user    - mailbox user;
                secret  - secret shared between client and server.

        NB: mailbox is locked by server from here to 'quit()'
        s!-ERR APOP not supported by serveri˙˙˙˙NitcSsdt|ƒS(Ns%02x(tord(tx((s"/usr/local/lib/python2.7/poplib.pyt<lambda>'RDs
APOP %s %s(t	timestamptmatchRRthashlibtmd5tgrouptdigesttjointmapR&(RR+tsecrettmRJRM((s"/usr/local/lib/python2.7/poplib.pytapops"cCs|jd||fƒS(s­Retrieve message header of message number 'which'
        and first 'howmuch' lines of message body.

        Result is in form ['response', ['line', ...], octets].
        s	TOP %s %s(R'(RR8thowmuch((s"/usr/local/lib/python2.7/poplib.pyttop+scCs*|dk	r|jd|ƒS|jdƒS(sěReturn 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]
        sUIDL %stUIDLN(R7R&R'(RR8((s"/usr/local/lib/python2.7/poplib.pytuidl4sN(!RRt__doc__t	POP3_PORTRt_GLOBAL_DEFAULT_TIMEOUTRRRRR
R%R&R'R(R*R+R-R5R7R$R9R:R<R>RBRCtretcompileRHRRRTRV(((s"/usr/local/lib/python2.7/poplib.pyR*s4(													
	
									tPOP3_SSLcBsDeZdZeddd„Zd„Zd„Zd„Zd„Z	RS(sÁPOP3 client class over SSL connection

        Instantiate with: POP3_SSL(hostname, port=995, keyfile=None, certfile=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

            See the methods of the parent class POP3 for more documentation.
        cCsR||_||_||_||_d|_d}d|_xŠtj|j|jdtj	ƒD]†}|\}}}	}
}y,tj|||	ƒ|_|jj
|ƒWn;tjk
râ}|jrÓ|jjƒnd|_q^nXPq^W|jstj|‚n|jj
dƒ|_tj|j|j|jƒ|_d|_|jƒ|_dS(NRDs!getaddrinfo returns an empty listiR(RRtkeyfiletcertfiletbufferR7R	RtgetaddrinfotSOCK_STREAMtconnectterrorR@R
Rtssltwrap_sockettsslobjRR
R(RRRR]R^tmsgtrestaftsocktypetprotot	canonnametsa((s"/usr/local/lib/python2.7/poplib.pyRRs0						(			!	cCsC|jjƒ}t|ƒdkr0tdƒ‚n|j|7_dS(Nis-ERR EOF(RftreadRRR_(Rtlocalbuf((s"/usr/local/lib/python2.7/poplib.pyt_fillBufferlscCsd}tjdƒ}|j|jƒ}xJ|ss|jƒt|jƒtkr^tdƒ‚n|j|jƒ}q*W|jdƒ}|j	d|jdƒ|_|j
dkrżdGt|ƒGHnt|ƒ}|dtkré|d |fS|dt
kr
|dd!|fS|d |fS(	NRDs.*?\ns
line too longiis*get*iţ˙˙˙i˙˙˙˙(RZR[RIR_RpRRRRLtsubRRRR(RRt	renewlineRIR((s"/usr/local/lib/python2.7/poplib.pyRrs$	
cCs„|jdkr!dGt|ƒGHn|t7}t|ƒ}xF|dkr|jj|ƒ}||krhPn||}||}q:WdS(Nis*put*i(RRRRRftwrite(RRtbytestsent((s"/usr/local/lib/python2.7/poplib.pyR†s

cCsLy|jdƒ}Wntk
r.}|}nX|jjƒ|`|`|S(sDSignoff: commit changes on server, unlock mailbox, close connection.R?(R&RR	R@Rf(RRRA((s"/usr/local/lib/python2.7/poplib.pyRB‘s

N(
RRRWt
POP3_SSL_PORTR7RRpRRRB(((s"/usr/local/lib/python2.7/poplib.pyR\Es			t__main__iiisMessage %d:s   s-----------------------($RWRZRt__all__t	ExceptionRRXRvRtLFRRRRdtImportErrorR\R#RtsystargvtaR(R+R-R$R5tnumMsgst	totalSizetrangetiR9theaderRgRRRB(((s"/usr/local/lib/python2.7/poplib.pyt<module>s@
˙
V

	

	

Zerion Mini Shell 1.0