OwlCyberSecurity - MANAGER
Edit File: poplib.cpython-38.pyc
U ����e5d�:����������������������@���sl��d�Z�ddlZddlZddlZddlZzddlZdZW�n�ek rL���dZY�nX�ddgZG�dd��de �Z dZd Zd Z dZe e�ZdZG�d d��d�Zer�G�dd��de�Ze�d��edk�rhddlZeejd��Zee�����e�ejd���e�ejd���e����e���\ZZeded��D�]BZ e�!e �\Z"Z#Z$ede ���e#D�]Z%ede%����q@ed���qe�&���dS�)z@A POP3 client class. Based on the J. Myers POP3 draft, Jan. 96 �����NTF�POP3�error_protoc�������������������@���s���e�Zd�ZdS�)r���N)�__name__� __module__�__qualname__��r���r����/usr/lib64/python3.8/poplib.pyr������s�����n���i������� ���� i���c�������������������@���s��e�Zd�ZdZdZeejfdd�Zdd��Z dd��Z d d ��Zdd��Zd d��Z dd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zdd��Zd=d d!�Zd"d#��Zd$d%��Zd&d'��Zd(d)��Zd*d+��Zd,d-��Zd.d/��Ze�d0�Z d1d2��Z!d3d4��Z"d>d5d6�Z#d7d8��Z$d9d:��Z%d?d;d<�Z&dS�)@r���aP��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�����������������C���sP���||�_�||�_d|�_t�d|�||��|��|�|�_|�j�d�|�_d|�_ |�� ��|�_d�S�)NFzpoplib.connect�rbr���)�host�port�_tls_established�sys�audit�_create_socket�sock�makefile�file� _debugging�_getresp�welcome)�selfr ���r����timeoutr���r���r����__init__b���s����z POP3.__init__c�����������������C���s���t��|�j|�jf|�S��N)�socketZcreate_connectionr ���r���)r���r���r���r���r���r���m���s����zPOP3._create_socketc�����������������C���s:���|�j�dkrtdt|���t�d|�|��|�j�|t���d�S�)N����z*put*zpoplib.putline)r����print�reprr���r���r���Zsendall�CRLF�r����liner���r���r����_putlinep���s���� �z POP3._putlinec�����������������C���s.���|�j�rtdt|���t||�j�}|��|��d�S�)Nz*cmd*)r���r���r ����bytes�encodingr$���r"���r���r���r����_putcmdx���s�����zPOP3._putcmdc�����������������C���s����|�j��td��}t|�tkr$td��|�jdkr<tdt|���|sHtd��t|�}|dd���tkrp|d�d��|fS�|d�d��t kr�|dd��|fS�|d�d��|fS�)Nr���z line too longz*get*z-ERR EOF������) r����readline�_MAXLINE�lenr���r���r���r ���r!����CR)r���r#����octetsr���r���r����_getline����s���� ��z POP3._getlinec�����������������C���s:���|�����\}}|�jdkr$tdt|���|�d�s6t|��|S�)Nr���z*resp*����+)r/���r���r���r ���� startswithr���)r����resp�or���r���r���r�������s���� � z POP3._getrespc�����������������C���sl���|�����}g�}d}|����\}}|dkrb|�d�rB|d�}|dd���}||�}|�|��|����\}}q|||fS�)Nr�������.s���..r���)r���r/���r1����append)r���r2����listr.���r#���r3���r���r���r����_getlongresp����s����� zPOP3._getlongrespc�����������������C���s���|���|��|����S�r���)r'���r���r"���r���r���r���� _shortcmd����s���� zPOP3._shortcmdc�����������������C���s���|���|��|����S�r���)r'���r7���r"���r���r���r����_longcmd����s���� z POP3._longcmdc�����������������C���s���|�j�S�r���)r����r���r���r���r���� getwelcome����s����zPOP3.getwelcomec�����������������C���s ���||�_�d�S�r���)r���)r����levelr���r���r����set_debuglevel����s����zPOP3.set_debuglevelc�����������������C���s���|���d|��S�)zVSend user name, return response (should indicate password required). zUSER %s�r8����r����userr���r���r���r@�������s����z POP3.userc�����������������C���s���|���d|��S�)z�Send password, return response (response includes message count, mailbox size). NB: mailbox is locked by server from here to 'quit()' zPASS %sr>���)r���Zpswdr���r���r����pass_����s����z POP3.pass_c�����������������C���sF���|���d�}|���}|�jr&tdt|���t|d��}t|d��}||fS�)z]Get mailbox status. Result is tuple of 2 ints (message count, mailbox size) ZSTATz*stat*r�������)r8����splitr���r���r ����int)r���ZretvalZretsZnumMessagesZsizeMessagesr���r���r����stat����s���� �z POP3.statNc�����������������C���s ���|dk r|���d|��S�|��d�S�)a��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. NzLIST %sZLIST�r8���r9����r����whichr���r���r���r6�������s���� z POP3.listc�����������������C���s���|���d|��S�)zoRetrieve whole message number 'which'. Result is in form ['response', ['line', ...], octets]. zRETR %s�r9���rG���r���r���r����retr����s����z POP3.retrc�����������������C���s���|���d|��S�)zFDelete message number 'which'. Result is 'response'. zDELE %sr>���rG���r���r���r����dele����s����z POP3.delec�����������������C���s ���|���d�S�)zXDoes nothing. One supposes the response indicates the server is alive. ZNOOPr>���r:���r���r���r����noop��s����z POP3.noopc�����������������C���s ���|���d�S�)z(Unmark all messages marked for deletion.ZRSETr>���r:���r���r���r����rset��s����z POP3.rsetc�����������������C���s���|���d�}|�����|S�)zDSignoff: commit changes on server, unlock mailbox, close connection.ZQUIT)r8����close)r���r2���r���r���r����quit��s���� z POP3.quitc�����������������C���s����z |�j }d|�_ |dk r|����W�5�|�j�}d|�_�|dk r�zVz|�tj��W�n@�tk r��}�z"|jtjkrxt|dd�dkrx��W�5�d}~X�Y�nX�W�5�|����X�X�dS�)z8Close the connection without assuming anything about it.NZwinerrorr���i&'��) r���rN���Zshutdownr���Z SHUT_RDWR�OSError�errnoZENOTCONN�getattrr���)r���r����excr���r���r���r���rN�����s �����z POP3.closec�����������������C���s���|���d|��S�)zNot sure what this does.zRPOP %sr>���r?���r���r���r����rpop5��s����z POP3.rpops���\+OK.[^<]*(<.*>)c�����������������C���s\���t�||�j�}|�j�|�j�}|s&td��ddl}|�d�|�}|�|�� ��}|�� d||f��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 serverr���Nr���z APOP %s %s)r%���r&���� timestamp�matchr���r����hashlib�groupZmd5Z hexdigestr8���)r���r@���ZpasswordZsecret�mrW���Zdigestr���r���r����apop<��s����z POP3.apopc�����������������C���s���|���d||f��S�)z�Retrieve message header of message number 'which' and first 'howmuch' lines of message body. Result is in form ['response', ['line', ...], octets]. z TOP %s %srI���)r���rH���Zhowmuchr���r���r����topQ��s����zPOP3.topc�����������������C���s ���|dk r|���d|��S�|��d�S�)z�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] NzUIDL %sZUIDLrF���rG���r���r���r����uidlZ��s����z POP3.uidlc�����������������C���s ���|���d�S�)zITry to enter UTF-8 mode (see RFC 6856). Returns server response. ZUTF8r>���r:���r���r���r����utf8f��s����z POP3.utf8c����������� ��� ���C���sp���dd��}i�}z4|���d�}|d�}|D�]}||�\}}|||<�q$W�n*�tk rj�}�ztd��W�5�d}~X�Y�nX�|S�)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�����������������S���s"���|���d����}|d�|dd���fS�)N�asciir���r���)�decoderC���)r#���Zlstr���r���r���� _parsecapy��s����zPOP3.capa.<locals>._parsecapZCAPAr���z!-ERR CAPA not supported by serverN)r9���r���) r���r`����capsr2���ZrawcapsZcaplineZcapnmZcapargsZ_errr���r���r����capal��s���� z POP3.capac�����������������C���sx���t�std��|�jrtd��|����}d|kr2td��|dkrBt���}|��d�}|j|�j|�j d�|�_|�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 establishedZSTLSz!-ERR STLS not supported by serverN�Zserver_hostnamer���T)�HAVE_SSLr���r���rb����ssl�_create_stdlib_contextr8����wrap_socketr���r ���r���r���)r����contextra���r2���r���r���r����stls���s ���� �z POP3.stls)N)N)N)'r���r���r����__doc__r&���� POP3_PORTr����_GLOBAL_DEFAULT_TIMEOUTr���r���r$���r'���r/���r���r7���r8���r9���r;���r=���r@���rA���rE���r6���rJ���rK���rL���rM���rO���rN���rT����re�compilerU���rZ���r[���r\���r]���rb���rj���r���r���r���r���r���3���sB���+� c�������������������@���s8���e�Zd�ZdZeddejdfdd�Zdd��Zd dd�Z dS�) �POP3_SSLa��POP3 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�����������������C���s����|d�k r|d�k rt�d��|d�k r0|d�k r0t�d��|d�k s@|d�k rVdd�l}|�dtd��||�_||�_|d�krxtj||d�}||�_t � |�|||��d�S�)Nz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiver���zAkeyfile and certfile are deprecated, use a custom context insteadrB���)�certfile�keyfile)� ValueError�warnings�warn�DeprecationWarningrr���rq���rf���rg���ri���r���r���)r���r ���r���rr���rq���r���ri���rt���r���r���r���r������s$�������zPOP3_SSL.__init__c�����������������C���s"���t��|�|�}|�jj||�jd�}|S�)Nrd���)r���r���ri���rh���r ���)r���r���r���r���r���r���r������s �����zPOP3_SSL._create_socketc�����������������C���s���t�d��dS�)z�The method unconditionally raises an exception since the STLS command doesn't make any sense on an already established SSL/TLS session. rc���N)r���)r���rr���rq���ri���r���r���r���rj������s����z POP3_SSL.stls)NNN) r���r���r���rk���� POP3_SSL_PORTr���rm���r���r���rj���r���r���r���r���rp������s����� rp����__main__r���rB�������zMessage %d:z z-----------------------)'rk���rQ���rn���r���r���rf���re����ImportError�__all__� Exceptionr���rl���rw���r-���ZLFr!���r+���r���rp���r5���r����argv�ar���r;���r@���rA���r6���rE���ZnumMsgsZ totalSize�range�irJ����header�msgr.���r#���rO���r���r���r���r����<module>���sL��� ��n0