Файловый менеджер - Редактировать - /opt/imh-python/lib/python3.9/site-packages/twisted/mail/__pycache__/relay.cpython-39.pyc
Ðазад
a k�h� � @ s� d Z ddlZddlZddlmZ ddlmZ ddlmZ G dd� d�Z G dd � d �Z G d d� de ej�ZG dd � d e ej �ZdS )z Support for relaying mail. � N)�UNIXAddress)�smtp)�logc @ s2 e Zd ZdZddd�Zdd� Zdd� Zd d � ZdS ) �DomainQueuerzM An SMTP domain which add messages to a queue intended for relaying. Fc C s || _ || _d S �N)�service�authed)�selfr � authenticated� r ��/root/rpmbuild/BUILDROOT/imh-python39-modules-3.9.7-92.el8.x86_64/opt/imh-python/lib/python3.9/site-packages/twisted/mail/relay.py�__init__ s zDomainQueuer.__init__c st � � �j�j�rftdt�j��dd��}tdt�j��dd��}t|�dkrft|�dkrf� �fdd�S t� ���dS )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�@� � c s � � ��S r )�startMessager �r �userr r �<lambda>- � z%DomainQueuer.exists.<locals>.<lambda>) � willRelay�dest�protocol�filter�str�orig�split�lenr ZSMTPBadRcpt)r r r r r r r �exists s zDomainQueuer.existsc C s$ |j �� }| jp"t|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)� transportZgetPeerr � isinstancer �host)r �addressr Zpeerr r r r 0 s zDomainQueuer.willRelayc C sz | j j}|�� \}}|�N t�dt|j��dt|j���� t� t|j�t|j�g|� W d � n1 sl0 Y |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 �queueZcreateNewMessager �msgr r r �pickle�dump)r r r# ZenvelopeFileZsmtpMessager r r r : s ":zDomainQueuer.startMessageN)F)�__name__� __module__�__qualname__�__doc__r r r r r r r r r s r c @ s4 e Zd Zdd� Zdd� Zdd� Zdd� Zd d � ZdS )�RelayerMixinc C s� g | _ g | _|D ]j}t|d d��}t�|�}W d � n1 sB0 Y t|d �}|�|� | j �|� | j�|� qd S )N�-H�rb�-D)�messages�names�openr% �load�append)r �messagePaths�message�fpZmessageContentsr r r �loadMessagesR s ( zRelayerMixin.loadMessagesc C s | j s d S | j d d S )Nr �r/ �r r r r �getMailFrom] s zRelayerMixin.getMailFromc C s | j s d S | j d d gS )Nr r r8 r9 r r r � getMailTob s zRelayerMixin.getMailToc C s | j s d S | j d d S )Nr r r8 r9 r r r �getMailDatag s zRelayerMixin.getMailDatac C sF |t jv r2t�| jd d � t�| jd d � | 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. r r. r, N)r �SUCCESS�os�remover0 r/ )r �code�respZnumOk� addressesr r r r �sentMaill s zRelayerMixin.sentMailN)r'