HOME


Mini Shell 1.0
DIR: /usr/lib/python3/dist-packages/twisted/mail/scripts/__pycache__/
Upload File :
Current File : //usr/lib/python3/dist-packages/twisted/mail/scripts/__pycache__/mailmail.cpython-312.pyc
�

Ϫ�fh(��^�dZddlZddlZddlZddlZddlmZddlm	Z	ddl
mZddlm
Z
ddlmZmZddlmZd	Zej(j+d
�ZdZdZeej2�Zee�
�ZGd�d�Zd�Zed�Zd�Z Gd�d�Z!d�Z"d�Z#da$d�Z%d�Z&d�Z'd�Z(d�Z)y)z4
Implementation module for the I{mailmail} command.
�N)�ConfigParser)�StringIO)�version)�reactor)�Logger�textFileLogObserver)�smtpz
/etc/mailmailz~/.twisted/mailmailz	127.0.0.1z�Subject: Failed Message Delivery

  Message delivery failed.  The following occurred:

  %s
--
The Twisted sendmail application.
)�observerc��eZdZdZy)�Optionsat
    Store the values of the parsed command-line options to the I{mailmail}
    script.

    @type to: L{list} of L{str}
    @ivar to: The addresses to which to deliver this message.

    @type sender: L{str}
    @ivar sender: The address from which this message is being sent.

    @type body: C{file}
    @ivar body: The object from which the message is to be read.
    N)�__name__�
__module__�__qualname__�__doc__���?/usr/lib/python3/dist-packages/twisted/mail/scripts/mailmail.pyrr(s��rrc�r�	tj�S#t$rtj�cYSwxYw�N)�os�getlogin�
BaseException�getpass�getuserrrrrr8s/��!��{�{�}����!���� � �!�s��6�6zUnsupported option.c�d�t�}|D�cgc]}|jd�r�|��c}|_t�|_d|vrtdt�t��d|vrt�d|vrt�d|vrA||jd�dz|_|jj|j�d|vsd	|vrt�d
|vrd|_nd|_d
|vrd|_nd|_d|vsd|vrd|_nd|_d|vrt�d|vr d|_
|j|_g|_nd|_
g|_gggggd�}t!�}	d}t"j$j'�}|j)�sn�|j+dd�}|dj-�}|jrK|dvrG|jj/t0j2j5|d�dg�|dk(r2d}n/|dk(r*t0j2j5|d�d|_||vr||j7|d�|r|j9|���|ds|j9d|j�d��|dsP|jstd��|j9dj;dj=|j���|ds'|j9dt?j@��d��|j9|�|jr-|jD]}		|jj|	�� |jEdd�t!|jG�t"j$jI�z�|_%|Scc}w#tB$rY��wxYw) N�-z	--versionzmailmail version:z-bpz-bsz-F�z-iz-oiz-odbTFz-odfz-oepz-epz-omz-t)�from�to�cc�bcc�datez: r)rr r!r!rzFrom: z
rzNo recipients specified.zTo: {}
z, r"zDate: )&r�
startswithrr�sender�printr�
SystemExit�_unsupportedOption�index�remove�
background�printErrors�recipientsFromHeaders�excludeAddresses�exludeAddressesr�sys�stdin�readline�strip�split�lower�extend�email�utils�	parseaddr�append�write�format�joinr	�
rfc822dater�seek�getvalue�read�body)
�argv�o�e�requiredHeaders�bufferr:�line�hdrs�hdr�as
          r�parseOptionsrKBsb���	�A��5�!�1�<�<��#4�A�5�A�D��z�A�H��d��
�!�7�+��l��
��}� � �
��}� � ��t�|���
�
�4�(�1�,�-���	�����A�H�H��	
���%�4�-� � ���~���������~�������	�$��E�T�M���
���
�
��}� � �
�t�|�"&����T�T������"'������������O��Z�F�
����y�y�!�!�#���z�z�|���z�z�$��"���1�g�m�m�o���"�"�s�.A�'A�
�D�D�K�K����.�.�t�A�w�7��:�;�<��e�|���
�F�]��{�{�,�,�T�!�W�5�a�8�A�H��/�!��C� �'�'��Q��0���L�L���)�,�6�"����v�a�h�h�Z�t�,�-��4� ��t�t��7�8�8����\�(�(����1�4�4��9�:��6�"����v�d�o�o�/�0��5�6�
�L�L�������#�#�	�A�
������A��	��K�K��1��
�f�o�o�'�#�)�)�.�.�*:�:�
;�A�F��H��k6��`!�
��
�s�N�N�0N#�#	N/�.N/c��eZdZdZd�Zy)�
Configurationa�

    @ivar allowUIDs: A list of UIDs which are allowed to send mail.
    @ivar allowGIDs: A list of GIDs which are allowed to send mail.
    @ivar denyUIDs: A list of UIDs which are not allowed to send mail.
    @ivar denyGIDs: A list of GIDs which are not allowed to send mail.

    @type defaultAccess: L{bool}
    @ivar defaultAccess: L{True} if access will be allowed when no other access
    control rule matches or L{False} if it will be denied in that case.

    @ivar useraccess: Either C{'allow'} to check C{allowUID} first
    or C{'deny'} to check C{denyUID} first.

    @ivar groupaccess: Either C{'allow'} to check C{allowGID} first or
    C{'deny'} to check C{denyGID} first.

    @ivar identities: A L{dict} mapping hostnames to credentials to use when
    sending mail to that host.

    @ivar smarthost: L{None} or a hostname through which all outgoing mail will
    be sent.

    @ivar domain: L{None} or the hostname with which to identify ourselves when
    connecting to an MTA.
    c��g|_g|_g|_g|_d|_d|_i|_d|_d|_d|_	y)N�denyT)
�	allowUIDs�denyUIDs�	allowGIDs�denyGIDs�
useraccess�groupaccess�
identities�	smarthost�domain�
defaultAccess)�selfs r�__init__zConfiguration.__init__�sJ�������
������
� ���!������������!��rN)r
rrrr[rrrrMrM�s���6"rrMc
�h�t�}tj|tj�s|St	�}|j|�|j}|j}|j}|j}d||fd||ffD�]\}}}	|j|�s�d|fd|	ffD]n\}
}|j||
�s�|j||
�s�,|j||
�jd�D]}	t|�}|j|��!�p|j|d	�}
|
jd�D�cgc]}|j)���c}D�cgc]}|j���}
}|
ddk(rt+||d���t+||d���|jd
�r`|j-d
�D]L\}}|jdd�}t/|�d
k7rt"j%d|���>||j0|<�N|jd�rR|jdd�r|jdd�|_|jdd�r|jdd�|_|S#t $r.t"j%d|dj'�||��Y���wxYwcc}wcc}w)NrTrU�allowrO�,z6Illegal {prefix}ID in [{section}] section: {sectionID}r)�prefix�section�	sectionID�order�identity�:r�z.Illegal entry in [identity] section: {section})r`�	addressesrW�default_domain)rMr�access�R_OKrr@rPrQrRrS�has_section�
has_option�getr3�intr9�
ValueError�_log�error�upperr4�setattr�items�lenrVrWrX)�path�c�p�au�du�ag�dgr`rJ�d�mode�Lrarb�s�host�up�partss                  r�
loadConfigr��st�� 	��A�
�9�9�T�2�7�7�#�����A��F�F�4�L�	
���B�	
���B�	
���B�	
���B�'��R�0�=�"�b�2I�J�,�
���A��=�=��!�$�a�L�6�1�+�6�
0���a��<�<���.�1�5�5��$�3G�%&�U�U�7�D�%9�%?�%?��%D�0�	�0�(+�I��I��H�H�Y�/�0�
0��E�E�'�7�+�E�<A�K�K��<L�(M�q�����(M�N�1�Q�W�W�Y�N�E�N��Q�x�7�"���7�G�,���7�F�+�-,�0	�}�}�Z� ����
�+�	'�H�D�"��H�H�S�!�$�E��5�z�Q���
�
�K�UW�
�X��!&�A�L�L���	'�	�}�}�[�!��<�<��[�1��%�%��[�9�A�K��<�<��%5�6��u�u�[�*:�;�A�H��H��? *�� �J�J�!C�'.�q�z�'7�'7�'9�(/�*3�'����)N��Ns�9I0�>J*�J/�03J'	�&J'	c�,�tj�yr�r�stop)�results r�successr�,s���L�L�Nrc�0�tj�|ayr)rr��failed)�fs r�failurer�3s���L�L�N�
�Frc���tj||j|j|j�}|jtt�tj�yr)
r	�sendmailr$rrA�addCallbacksr�r�r�run)r��options�identr|s    rr�r�9s9���
�
�d�G�N�N�G�J�J����E�A��N�N�7�G�$��K�K�Mrc�j�|jg}djtjdtj
j
d��}t�}|j|��tt|j�z�}t	jd|||�}|jd��y)Nz2"Internally Generated Message ({})"<postmaster@{}>r�ascii��file�	localhostc�*�tj�Srr�)�_s r�<lambda>zsenderror.<locals>.<lambda>Hs������r)
r$r;r/rBr	�DNSNAME�decoder�printTraceback�	ERROR_FMTr?r��addBoth)r�r��	recipientr$rprAr|s       r�	senderrorr�?s������ �I�
A�
H�
H������T�\�\�(�(��1��F�
�J�E������&��I���� 0�0�1�D��
�
�k�6�9�d�;�A��I�I�&�'rc��tj�}tj�}|jdk(r||jvry||j
vry||j
vry||jvry|jdk(r+||jvry||jvry|jS||jvry||jvry|jS)NrOTF)
r�getuid�getgidrTrQrPrUrSrRrY)�conf�uid�gids   rrOrOKs���
�)�)�+�C�
�)�)�+�C����&� ��$�-�-����$�.�.� ���$�.�.� ���$�-�-������6�!��$�-�-����$�.�.� ���!�!�!�!��$�.�.� ���$�-�-����!�!�!�!rc���ttjdd�}tt�}tt
�}t
|�st
|�rtjd�y|jxs|jxst}|jj�}|j|j�|jr|jt_n!|jr|jt_t#|||�t$rL|j&r/t$j)tj*��t-d��t/t$|�yy)NrzPermission deniedr�)rKr/rBr��
GLOBAL_CFG�	LOCAL_CFGrOrorprW�	SMARTHOSTrV�copy�updaterXr	r�r�r�r+r��stderrr&r�)rC�gConf�lConfr�r�s     rr�r�hs����S�X�X�a�b�\�"�A��z�"�E��y�!�E��E�{�d�5�k��
�
�&�'���?�?�:�e�o�o�:��D����!�!�#�E�	�L�L��!�!�"��|�|��|�|���	����|�|����T�1�e��
��=�=��!�!�s�z�z�!�2��Q�-���f�a� �r)*r�email.utilsr6rrr/�configparserr�ior�twisted.copyrightr�twisted.internetr�twisted.loggerrr�twisted.mailr	r�ru�
expanduserr�r�r�r��_logObserverrorrr&r'rKrMr�r�r�r�r�r�rOr�rrr�<module>r�s���
�
��	�
�%��%�$�6��
�
��G�G���4�5�	��	�
�	�#�3�:�:�.��
�|�$��
�
� !� � 5�6��w
�t("�("�VB
�J�
����	(�"�:!r