Edit File: smtplib.cpython-38.opt-2.pyc
U ����@��d֯������������������� ���@���sn��d�dl�Z�d�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dlZd�dl Z d�dl Z d�dlZd�dlm Z�ddddddd d ddd ddg ZdZdZdZdZdZdZe�dej�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd��de�ZG�dd ��d e�Z G�dd ��d e�Z!G�dd��de�Z"G�d d��de�Z#d!d ��Z$d"d#��Z%d$d��Z&d%d&��Z'd'd(��Z(zd�dl)Z)W�n�e*k �r����d)Z+Y�nX�d*Z+G�d+d��d�Z,e+�r�G�d,d-��d-e,�Z-e�.d-��d.Z/G�d/d0��d0e,�Z0e1d1k�rjd2d3��Z2e2d4�Z3e2d5��4d6�Z5e6d7��d8Z7ej8�9��Z:e:�s&�q2e7e:�Z7�qe6d9e;e7����e,d:�Z<e<�=d;��e<�>e3e5e7��e<�?���dS�)<�����N)�body_encode� SMTPException�SMTPNotSupportedError�SMTPServerDisconnected�SMTPResponseException�SMTPSenderRefused�SMTPRecipientsRefused� SMTPDataError�SMTPConnectError� SMTPHeloError�SMTPAuthenticationError� quoteaddr� quotedata�SMTP����i���� s��� i� ������z auth=(.*)c�������������������@���s���e�Zd�ZdS�)r���N��__name__� __module__�__qualname__��r���r����,/opt/alt/python38/lib64/python3.8/smtplib.pyr���H���s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r���r���K���s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r���r���R���s���c�������������������@���s���e�Zd�Zdd��ZdS�)r���c�����������������C���s���||�_�||�_||f|�_d�S��N)� smtp_code� smtp_error�args)�self�code�msgr���r���r����__init__c���s����zSMTPResponseException.__init__N�r���r���r���r ���r���r���r���r���r���Z���s��� c�������������������@���s���e�Zd�Zdd��ZdS�)r���c�����������������C���s"���||�_�||�_||�_|||f|�_d�S�r���)r���r����senderr���)r���r���r���r"���r���r���r���r ���o���s����zSMTPSenderRefused.__init__Nr!���r���r���r���r���r���h���s���c�������������������@���s���e�Zd�Zdd��ZdS�)r���c�����������������C���s���||�_�|f|�_d�S�r���)� recipientsr���)r���r#���r���r���r���r ���}���s����zSMTPRecipientsRefused.__init__Nr!���r���r���r���r���r���u���s���c�������������������@���s���e�Zd�ZdS�)r ���Nr���r���r���r���r���r �������s���c�������������������@���s���e�Zd�ZdS�)r ���Nr���r���r���r���r���r �������s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r���r�������s���c�������������������@���s���e�Zd�ZdS�)r���Nr���r���r���r���r���r�������s���c�����������������C���s>���t�j�|��\}}||fdkr6|�����d�r.|�S�d|��S�d|�S�)N���r%����<z<%s>)�email�utils� parseaddr�strip� startswith�Z addrstringZdisplayname�addrr���r���r���r �������s����c�����������������C���s$���t�j�|��\}}||fdkr |�S�|S�)Nr$���)r'���r(���r)���r,���r���r���r���� _addr_only����s����r.���c�������������� ���C���s���t��ddt��dt|���S�)Nz(?m)^\.z..�(?:\r\n|\n|\r(?!\n))��re�sub�CRLF��datar���r���r���r�������s�����c�����������������C���s���t��dd|��S�)Ns���(?m)^\.s���..)r1���r2���)Zbindatar���r���r����_quote_periods����s����r6���c�����������������C���s���t��dt|��S�)Nr/���r0���r4���r���r���r���� _fix_eols����s����r7���FTc�������������������@���sv��e�Zd�ZdZdZdZdZdZdZdZ e Zdddej dfdd�Zdd��Zd d ��Zdd��Zd d��Zdd��ZdMdd�Zdd��ZdNdd�Zdd��ZdOdd�ZdPdd�ZdQdd�Zd d!��ZdRd"d#�Zd$d%��Zd&d'��Zd(d)��ZdSd+d,�Z dTd-d.�Z!d/d0��Z"d1d2��Z#e#Z$d3d4��Z%d5d6��Z&d7d8�d9d:�Z'dUd;d<�Z(dVd=d>�Z)dWd?d@�Z*d7d8�dAdB�Z+dXdCdD�Z,dYdEdF�Z-dZdGdH�Z.dIdJ��Z/dKdL��Z0dS�)[r���r���N�ehlor%���c����������� ������C���s����||�_�||�_i�|�_d|�_||�_d|�_|rR|��||�\}}|dkrR|�����t||��|d�k rb||�_ nPt ���}d|krz||�_ n8d} zt �t � ���} W�n�t jk r����Y�nX�d| �|�_ d�S�)N�asciir���������.z 127.0.0.1z[%s])�_host�timeout�esmtp_features�command_encoding�source_address�_auth_challenge_count�connect�closer ����local_hostname�socketZgetfqdnZ gethostbynameZgethostnameZgaierror) r����host�portrD���r=���r@���r���r���Zfqdnr-���r���r���r���r �������s,���� z SMTP.__init__c�����������������C���s���|�S�r���r����r���r���r���r���� __enter__��s����zSMTP.__enter__c�����������������G���sN���z>z$|��d�\}}|dkr$t||��W�n�tk r:���Y�nX�W�5�|������X�d�S�)NZQUIT�����)rC����docmdr���r���)r���r���r����messager���r���r����__exit__��s���� z SMTP.__exit__c�����������������C���s ���||�_�d�S�r���)� debuglevel)r���rN���r���r���r����set_debuglevel"��s����zSMTP.set_debuglevelc�����������������G���s@���|�j�dkr,ttj������f|�dtji��nt|dtji��d�S�)N�����file)rN����print�datetimeZnow�time�sys�stderr�r���r���r���r���r����_print_debug+��s���� "zSMTP._print_debugc�����������������C���s2���|�j�dkr|��d||f|�j��t�||f||�j�S�)Nr���zconnect: to)rN���rX���r@���rE����create_connection)r���rF���rG���r=���r���r���r����_get_socket1��s ���� �zSMTP._get_socket� localhostc�����������������C���s����|r ||�_�|s||�d�|�d�kr||�d�}|dkr||d�|��||d�d����}}zt|�}W�n�tk rz���td��Y�nX�|s�|�j}t�d|�||��|�� |||�j �|�_d�|�_|�� ��\}}|�jdkr�|��dt|���||fS�)N�:r���rP���znonnumeric portzsmtplib.connect�connect:)r@����find�rfind�int� ValueError�OSError�default_portrU����auditrZ���r=����sockrQ����getreplyrN���rX����repr)r���rF���rG���r@����ir���r���r���r���r���rB���9��s&���� zSMTP.connectc�����������������C���s����|�j�dkr|��dt|���|�jr|t|t�r6|�|�j�}t� d|�|��z|�j� |��W�q��tk rx���|�����t d��Y�q�X�nt d��d�S�)Nr���zsend:zsmtplib.send�Server not connectedzplease run connect() first)rN���rX���rg���re���� isinstance�str�encoder?���rU���rd���Zsendallrb���rC���r���)r����sr���r���r����sendZ��s���� z SMTP.sendc�����������������C���sd���|dkr|}n|��d|���}d|ks,d|krN|��dd���dd�}td|�����|��|��t�����d�S�)Nr%���� � � z\nz\rz=command and arguments contain prohibited newline characters: )�replacera���rn���r3���)r����cmdr���rm���r���r���r����putcmdm��s�����zSMTP.putcmdc�������������� ���C���sP��g�}|�j�d�kr|�j�d�|�_�z|�j��td��}W�n:�tk rj�}�z|�����tdt|����W�5�d�}~X�Y�nX�|s�|�����td��|�j dkr�|�� dt|���t|�tkr�|�����t dd��|�|d d����d ���|d�d��}zt|�}W�n �tk �r���d}Y��q Y�nX�|dd ��d kr�q qd�|�}|�j dk�rH|�� d||f���||fS�)N�rbrP���z Connection unexpectedly closed: zConnection unexpectedly closedr���zreply:i���zLine too long.����s��� �����������-���� zreply: retcode (%s); Msg: %a)rQ���re���Zmakefile�readline�_MAXLINErb���rC���r���rk���rN���rX���rg����lenr����appendr*���r`���ra����join)r����resp�line�er���Zerrcode�errmsgr���r���r���rf���z��s>���� � z SMTP.getreplyc�����������������C���s���|���||��|����S�r����rt���rf���)r���rs���r���r���r���r���rK������s����z SMTP.docmdc�����������������C���s,���|���d|p|�j��|����\}}||�_||fS�)N�helo)rt���rD���rf���� helo_resp)r����namer���r���r���r���r���r�������s����z SMTP.heloc����������� ������C���s.��i�|�_�|��|�j|p|�j��|����\}}|dkrJt|�dkrJ|�����td��||�_|dkr`||fS�d|�_ |�j� d��d�}|d=�|D�]�}t� |�}|r�|�j��dd �d �|�d�d��|�j�d<�q�t� d|�}|r�|�d����}|j|�d�d������} |dk�r|�j��|d �d �| �|�j�|<�q�| |�j�|<�q�||fS�) Nrx���r���ri�������rP���zlatin-1rq����authr%���ro���z((?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*) ?�feature)r>���rt����ehlo_msgrD���rf���r}���rC���r���� ehlo_resp� does_esmtp�decode�split� OLDSTYLE_AUTH�match�get�groupsr1����group�lower�string�endr*���) r���r����r���r���r�����eachZ auth_match�mr����Zparamsr���r���r���r8������sB���� �� ��z SMTP.ehloc�����������������C���s���|����|�jkS�r���)r����r>���)r����optr���r���r����has_extn���s����z SMTP.has_extnc�����������������C���s���|���d|��|����d�S�)N�helprP���r����rW���r���r���r���r�������s����z SMTP.helpc�����������������C���s���d|�_�|��d�S�)Nr9����rset)r?���rK���rH���r���r���r���r�������s����z SMTP.rsetc�����������������C���s&���z|������W�n�tk r ���Y�nX�d�S�r���)r����r���rH���r���r���r����_rset���s����z SMTP._rsetc�����������������C���s ���|���d�S�)N�noop)rK���rH���r���r���r���r���� ��s����z SMTP.noopr���c�����������������C���sh���d}|rH|�j�rHtdd��|D���r:|��d�r2d|�_ntd��dd�|��}|��dd t|�|f���|����S�) Nr%���c�����������������s���s���|�]}|����d�kV��qdS�)�smtputf8N)r����)�.0�xr���r���r���� <genexpr>��s�����zSMTP.mail.<locals>.<genexpr>r����zutf-8z SMTPUTF8 not supported by serverro����mailz FROM:%s%s) r�����anyr����r?���r���r���rt���r ���rf���)r���r"����options� optionlistr���r���r���r���� ��s���� �z SMTP.mailc�����������������C���s<���d}|r|�j�rdd�|��}|��ddt|�|f���|����S�)Nr%���ro����rcptzTO:%s%s)r����r���rt���r ���rf���)r���Zrecipr����r����r���r���r���r����"��s ���� z SMTP.rcptc�����������������C���s����|���d��|����\}}|�jdkr0|��d||f��|dkrDt||��n|t|t�r\t|��d�}t |�}|dd���t kr||t �}|d�t �}|��|��|����\}}|�jdkr�|��d||f��||fS�d�S�)Nr5���r���zdata:ib��r9����������.)rt���rf���rN���rX���r ���rj���rk���r7���rl���r6����bCRLFrn���)r���r���r����repl�qr���r���r���r5���*��s"���� z SMTP.datac�����������������C���s���|���dt|���|����S�)N�vrfy�rt���r.���rf����r���Zaddressr���r���r����verifyG��s����zSMTP.verifyc�����������������C���s���|���dt|���|����S�)N�expnr����r����r���r���r���r����N��s����z SMTP.expnc�����������������C���sb���|�j�d�kr^|�jd�kr^d|����d���kr0dks^n�|����\}}d|��krRdks^n�t||��d�S�)N�����r���i+��)r����r����r8���r����r���)r���r���r����r���r���r����ehlo_or_helo_if_neededU��s ����zSMTP.ehlo_or_helo_if_neededT��initial_response_okc���������� ������C���s����|����}|r|��nd�}|d�k rPt|�d�dd�}|��d|d�|��\}}d|�_n|��d|�\}}d|�_|dkr�|��jd7��_t�|�}t||��d�dd�}|��|�\}}|�jtkrftd t ||f����qf|d kr�||fS�t ||��d�S�)Nr9���r%���)ZeolZAUTHro���rP���r���iN��z4Server AUTH mechanism infinite loop. Last response: ������i���)�upper� encode_base64rl���rK���rA����base64Zdecodebytes� _MAXCHALLENGEr���rg���r���) r���Z mechanismZ authobjectr����Zinitial_responseZresponser���r����� challenger���r���r���r����f��s2���� �� ��z SMTP.authc�����������������C���s0���|d�krd�S�|�j�d�t�|�j�d�|d�����S�)Nro���r9���Zmd5)�user�hmacZHMAC�passwordrl���Z hexdigest�r���r����r���r���r���� auth_cram_md5���s���� ���zSMTP.auth_cram_md5c�����������������C���s���d|�j�|�jf�S�)Nz�%s�%s)r����r����r����r���r���r���� auth_plain���s����zSMTP.auth_plainc�����������������C���s"���|d�ks|�j�dk�r|�jS�|�jS�d�S�)N����)rA���r����r����r����r���r���r���� auth_login���s����zSMTP.auth_loginc�������������������s����|������|��d�std��|�jd������dddg}��fdd�|D��}|sPtd��||�|�_|�_|D�]t}d |���� d d��}z4|�j |t|�|�|d�\}} |d kr�|| fW���S�W�qb�tk r��} �z| }W�5�d�} ~ X�Y�qbX�qb|�d�S�)Nr����z,SMTP AUTH extension not supported by server.zCRAM-MD5ZPLAINZLOGINc��������������������s���g�|�]}|��kr|�qS�r���r���)r����r�����Zadvertised_authlistr���r���� <listcomp>���s�����zSMTP.login.<locals>.<listcomp>z(No suitable authentication method found.Zauth_�-�_r����r����) r����r����r���r>���r����r���r����r����r����rr���r�����getattrr���)r���r����r����r����Zpreferred_authsZauthlistZ authmethodZmethod_namer���r����r����Zlast_exceptionr���r����r����login���s0���� � �� z SMTP.loginc�����������������C���s����|������|��d�std��|��d�\}}|dkr�ts<td��|d�k rT|d�k rTtd��|d�k rl|d�k rltd��|d�k s||d�k r�dd�l}|�d t d ��|d�kr�t j||d�}|j|�j |�jd�|�_ d�|�_d�|�_d�|�_i�|�_d|�_n t||��||fS�) N�starttlsz+STARTTLS extension not supported by server.ZSTARTTLSr:���z&No SSL support included in this Python�4context and keyfile arguments are mutually exclusive�5context and certfile arguments are mutually exclusiver����Akeyfile and certfile are deprecated, use a custom context insteadr������certfile�keyfile�Zserver_hostname)r����r����r���rK���� _have_ssl�RuntimeErrorra����warnings�warn�DeprecationWarning�ssl�_create_stdlib_context�wrap_socketre���r<���rQ���r����r����r>���r����r���)r���r����r�����contextr����Zreplyr����r���r���r���r�������sB���� ����� z SMTP.starttlsc�����������������C���s^��|������g�}t|t�r$t|��d�}|�jrZ|��d�rF|�dt|����|D�]}|�|��qJ|�� ||�\}} |dkr�|dkr�|�� ���n|�����t|| |��i�} t|t�r�|g}|D�]H}|�� ||�\}} |dkr�|dkr�|| f| |<�|dkr�|�� ���t| ��q�t| �t|�k�r|�����t| ��|��|�\}} |dk�rZ|dk�rH|�� ���n|�����t|| ��| S�)Nr9����sizezsize=%dr����i�������)r����rj���rk���r7���rl���r����r����r~���r}���r����rC���r����r���r����r���r5���r ���)r���� from_addr�to_addrsr����mail_options�rcpt_optionsZ esmtp_optsZoptionr���r����Zsenderrsr����r���r���r����sendmail&��sF����@ z SMTP.sendmailc�������������� ���C���s���|������|�d�}|d�kr d}nt|�dkr2d}ntd��|d�kr||d�|krZ||d��n ||d��}tj�|g�d�d�}|d�kr�d d ��||d��||d��||d ��fD��}dd ��tj�|�D��}t�|�} | d=�| d=�d} zd�|f|��� d��W�n.�t k �r(���|��d��s td��d} Y�nX�t ����R}| �r^tjj||jjdd�d�}|d�}ntj�|�}|j| dd��|���} W�5�Q�R�X�|��||| ||�S�)NzResent-Dater%���rP���zResent-z0message has more than one 'Resent-' header blockZSender�Fromr���c�����������������S���s���g�|�]}|d�k r|�qS�r���r���)r�����fr���r���r���r�������s�����z%SMTP.send_message.<locals>.<listcomp>�ToZBccZCcc�����������������S���s���g�|�]}|d���qS�)rP���r���)r�����ar���r���r���r�������s�����z Resent-BccFr9���r����z�One or more source or delivery addresses require internationalized email support, but the server does not advertise the required SMTPUTF8 capabilityT)�utf8)�policy�SMTPUTF8� BODY=8BITMIMEr���)�linesep)r����r����)r����Zget_allr}���ra���r'���r(���Zgetaddresses�copyr���rl����UnicodeEncodeErrorr����r����io�BytesIO� generatorZBytesGeneratorr����ZcloneZflatten�getvaluer����)r���r���r����r����r����r����ZresentZ header_prefixZaddr_fieldsZmsg_copyZ internationalZbytesmsg�gZflatmsgr���r���r����send_message���sX���� � � � � �� �zSMTP.send_messagec�����������������C���s<���z|�j}d�|�_|r|����W�5�|�j�}d�|�_�|r6|����X�d�S�r���)re���rC���rQ���)r���re���rQ���r���r���r���rC������s����z SMTP.closec�����������������C���s.���|���d�}d��|�_|�_i�|�_d|�_|�����|S�)N�quitF)rK���r����r����r>���r����rC���)r����resr���r���r���r�������s���� z SMTP.quit)r[���r���N)r%���)r%���)r%���)r%���)r%���)r���)r���)N)N)N)NNN)r���r���)NNr���r���)1r���r���r���rN���re���rQ���r����r����r����r����� SMTP_PORTrc���rE����_GLOBAL_DEFAULT_TIMEOUTr ���rI���rM���rO���rX���rZ���rB���rn���rt���rf���rK���r����r8���r����r����r����r����r����r����r����r5���r����r����r����r����r����r����r����r����r����r����r����r����rC���r����r���r���r���r���r�������sf���� 0 ! 1 3 0 B 8��� h����� M c�������������������@���s4���e�Zd�ZeZdddddejddfdd�Zdd��ZdS�)�SMTP_SSLr%���r���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�)Nr����r����r���r����r����r����)ra���r����r����r����r����r����r����r����r����r���r ���) r���rF���rG���rD���r����r����r=���r@���r����r����r���r���r���r �����s(��������zSMTP_SSL.__init__c�����������������C���sD���|�j�dkr|��d||f��t�||f||�j�}|�jj||�jd�}|S�)Nr���r]���r����)rN���rX���rE���rY���r@���r����r����r<���)r���rF���rG���r=���Z new_socketr���r���r���rZ�����s���� ��zSMTP_SSL._get_socket) r���r���r���� SMTP_SSL_PORTrc���rE���r����r ���rZ���r���r���r���r���r�������s������ r����i���c�������������������@���s,���e�Zd�ZdZdeddfdd�Zd dd �ZdS�)�LMTPZlhlor%���Nc�����������������C���s���t�j|�||||d��d�S�)N)rD���r@���)r���r ���)r���rF���rG���rD���r@���r���r���r���r ���;��s�����z LMTP.__init__r[���r���c�����������������C���s����|d�dkrt�j|�|||d�S�z(t�tjtj�|�_d�|�_|�j�|��W�nB�tk r����|�jdkrl|�� d|��|�jr||�j� ���d�|�_��Y�nX�|����\}}|�jdkr�|�� d|��||fS�)Nr����/)r@���z connect fail:r]���)r���rB���rE���ZAF_UNIXZSOCK_STREAMre���rQ���rb���rN���rX���rC���rf���)r���rF���rG���r@���r���r���r���r���r���rB���A��s"���� zLMTP.connect)r[���r���N)r���r���r���r����� LMTP_PORTr ���rB���r���r���r���r���r����+��s ���� r�����__main__c�����������������C���s(���t�j�|�d���t�j����t�j������S�)Nz: )rU����stdout�write�flush�stdinr{���r*���)�promptr���r���r���r��[��s���� r��r����r�����,zEnter message, end with ^D:r%���zMessage length is %dr[���rP���)@rE���r����r1���Zemail.utilsr'���Z email.messageZemail.generatorr����r����r����rS���rU���Zemail.base64mimer���r�����__all__r����r����r3���r����r|���r�����compile�Ir����rb���r���r���r���r���r���r���r ���r ���r���r���r ���r.���r���r6���r7���r�����ImportErrorr����r���r����r~���r����r����r���r��Zfromaddrr����ZtoaddrsrR���r���r��r{���r����r}���ZserverrO���r����r����r���r���r���r����<module>,���s����������� ������:0 /