o
    –ðyh»	  ã                   @   sX   d dl Z d dlZd dlZd dlZG dd„ de jƒZee jdƒr*G dd„ de jƒZdS dS )é    Nc                   @   s"   e Zd ZdZdd„ Zddd„ZdS )ÚSTARTTLSzŒDerived class to verify the peer certificate for STARTTLS.

    This class allows to pass any keyword arguments to SSL socket creation.
    c                 K   s   t jj| fi |¤Ž || _d S ©N)ÚsmtplibÚSMTPÚ__init__Ú
_sslkwargs)ÚselfÚ	sslkwargsÚkwargs© r   úK/var/www/html/myenv/lib/python3.10/site-packages/secure_smtplib/__init__.pyr      s   
zSTARTTLS.__init__Nc                 C   s˜   |   ¡  |  d¡sd}t |¡‚|  d¡\}}|dkrHtj| j||fi | j¤Ž| _t	| jdƒs5| jj
| j_t | j¡| _d | _d | _i | _d| _||fS )NÚstarttlsz*STARTTLS extension not supported by serverr   éÜ   Úreadr   )Úehlo_or_helo_if_neededÚhas_extnr   ÚSMTPExceptionÚdocmdÚsslÚwrap_socketÚsockr   ÚhasattrÚrecvr   ÚSSLFakeFileÚfileÚ	helo_respÚ	ehlo_respÚesmtp_featuresÚ
does_esmtp)r   ÚkeyfileÚcertfileÚmsgÚrespÚreplyr   r   r   r      s*   

ýüzSTARTTLS.starttls©NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r   r      s    r   Ú_get_socketc                   @   s"   e Zd ZdZddd„Zdd„ ZdS )ÚSMTPSz‘Derived class to verify the peer certificate for SMTPS.

        This class allows to pass any keyword arguments to SSL socket creation.
        Nc                 K   s2   || _ || _tjj| fi |¤Ž tj| _|| _d S r   )r   r    r   r   r   ÚSMTP_SSL_PORTÚdefault_portr   )r   r	   r   r    r
   r   r   r   r   4   s
   
zSMTPS.__init__c                 C   sZ   | j dkrttj? d||ff t ||f|¡}tj|| j| j	fi | j
¤Ž}t |¡| _|S )Nr   zconnect:)Ú
debuglevelÚprintÚsysÚstderrÚsocketÚcreate_connectionr   Ússl_wrap_socketr   r    r   r   r   r   )r   ÚhostÚportÚtimeoutÚ
new_socketr   r   r   r)   ;   s   
ýüzSMTPS._get_socketr$   )r%   r&   r'   r(   r   r)   r   r   r   r   r*   /   s    
r*   )r   r1   r   r/   r   r   r   r*   r   r   r   r   Ú<module>   s    ÿ