Spamworldpro Mini Shell
Spamworldpro


Server : Apache/2.4.52 (Ubuntu)
System : Linux webserver 6.8.0-49-generic #49~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Wed Nov 6 17:42:15 UTC 2 x86_64
User : www-data ( 33)
PHP Version : 8.1.2-1ubuntu2.21
Disable Function : NONE
Directory :  /lib/python3/dist-packages/twisted/mail/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //lib/python3/dist-packages/twisted/mail/__pycache__/relay.cpython-310.pyc
o

�b��@s�dZddlZddlZddlmZddlmZddlmZGdd�d�Z	Gdd	�d	�Z
Gd
d�de
ej�ZGdd
�d
e
ej
�ZdS)z
Support for relaying mail.
�N)�UNIXAddress)�smtp)�logc@s2eZdZdZddd�Zdd�Zdd�Zd	d
�ZdS)
�DomainQueuerzM
    An SMTP domain which add messages to a queue intended for relaying.
    FcCs||_||_dS�N)�service�authed)�selfr�
authenticated�r�4/usr/lib/python3/dist-packages/twisted/mail/relay.py�__init__s
zDomainQueuer.__init__csp���j�j�r3tdt�j��dd��}tdt�j��dd��}t|�dkr3t|�dkr3��fdd�St�	���)a�
        Check whether mail can be relayed to a user.

        @type user: L{User}
        @param user: A user.

        @rtype: no-argument callable which returns L{IMessage <smtp.IMessage>}
            provider
        @return: A function which takes no arguments and returns a message
            receiver for the user.

        @raise SMTPBadRcpt: When mail cannot be relayed to the user.
        N�@��cs
����Sr)�startMessager�r	�userrr�<lambda>-s
z%DomainQueuer.exists.<locals>.<lambda>)
�	willRelay�dest�protocol�filter�str�orig�split�lenr�SMTPBadRcpt)r	rrrrrr�existss
zDomainQueuer.existscCs$|j��}|jpt|t�p|jdkS)z�
        Check whether we agree to relay.

        The default is to relay for all connections over UNIX
        sockets and all connections from localhost.
        z	127.0.0.1)�	transport�getPeerr�
isinstancer�host)r	�addressr�peerrrrr0s
zDomainQueuer.willRelaycCs||jj}|��\}}|�(t�dt|j��dt|j����t�	t|j�t|j�g|�Wd�|S1s7wY|S)z�
        Create an envelope and a message receiver for the relay queue.

        @type user: L{User}
        @param user: A user.

        @rtype: L{IMessage <smtp.IMessage>}
        @return: A message receiver.
        zQueueing mail z -> N)
r�queue�createNewMessager�msgrrr�pickle�dump)r	rr%�envelopeFile�smtpMessagerrrr:s
"
��zDomainQueuer.startMessageN)F)�__name__�
__module__�__qualname__�__doc__r
rrrrrrrrs

rc@s4eZdZdd�Zdd�Zdd�Zdd�Zd	d
�ZdS)�RelayerMixinc	Cs�g|_g|_|D]5}t|dd��
}t�|�}Wd�n1s!wYt|d�}|�|�|j�|�|j�|�qdS)N�-H�rb�-D)�messages�names�openr(�load�append)r	�messagePaths�message�fp�messageContentsrrr�loadMessagesRs�
�zRelayerMixin.loadMessagescCs|jsdS|jddS)Nr�r4�r	rrr�getMailFrom]�zRelayerMixin.getMailFromcCs|jsdS|jddgS)Nrrr>r?rrr�	getMailTobszRelayerMixin.getMailTocCs|jsdS|jddS)Nrrr>r?rrr�getMailDatagrAzRelayerMixin.getMailDatacCsF|tjvrt�|jdd�t�|jdd�|jd=|jd=dS)z�Since we only use one recipient per envelope, this
        will be called with 0 or 1 addresses. We probably want
        to do something with the error message if we failed.
        rr3r1N)r�SUCCESS�os�remover5r4)r	�code�resp�numOk�	addressesrrrr�sentMaills

zRelayerMixin.sentMailN)r,r-r.r=r@rBrCrKrrrrr0Lsr0c@�eZdZdZdd�ZdS)�SMTPRelayerz)
    A base class for SMTP relayers.
    cO�(tjj|g|�Ri|��|�|�dS)a�
        @type messagePaths: L{list} of L{bytes}
        @param messagePaths: The base filename for each message to be relayed.

        @type args: 1-L{tuple} of (0) L{bytes} or 2-L{tuple} of
            (0) L{bytes}, (1) L{int}
        @param args: Positional arguments for L{SMTPClient.__init__}

        @type kw: L{dict}
        @param kw: Keyword arguments for L{SMTPClient.__init__}
        N)r�
SMTPClientr
r=�r	r9�args�kwrrrr
~szSMTPRelayer.__init__N�r,r-r.r/r
rrrrrMy�rMc@rL)�ESMTPRelayerz*
    A base class for ESMTP relayers.
    cOrN)a�
        @type messagePaths: L{list} of L{bytes}
        @param messagePaths: The base filename for each message to be relayed.

        @type args: 3-L{tuple} of (0) L{bytes}, (1) L{None} or
            L{ClientContextFactory
            <twisted.internet.ssl.ClientContextFactory>},
            (2) L{bytes} or 4-L{tuple} of (0) L{bytes}, (1) L{None}
            or L{ClientContextFactory
            <twisted.internet.ssl.ClientContextFactory>}, (2) L{bytes},
            (3) L{int}
        @param args: Positional arguments for L{ESMTPClient.__init__}

        @type kw: L{dict}
        @param kw: Keyword arguments for L{ESMTPClient.__init__}
        N)r�ESMTPClientr
r=rPrrrr
�szESMTPRelayer.__init__NrSrrrrrU�rTrU)r/rEr(�twisted.internet.addressr�twisted.mailr�twisted.pythonrrr0rOrMrVrUrrrr�<module>s;-

Spamworldpro Mini