ó
    Ö›‘hh(  ã                   óX  • S r SSKrSSKrSSKrSSKrSSKJr  SSKJ	r	  SSK
Jr  SSKJr  SSKJrJr  SSKJr  S	r\R(                  R+                  S
5      rSrSr\" \R2                  5      r\" \S9r " S S5      rS r\" S5      rS r  " S S5      r!S r"S r#Sq$S r%S r&S r'S r(S r)g)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                   ó   • \ rS rSrSrSrg)ÚOptionsé(   aP  
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__Ú__firstlineno__Ú__doc__Ú__static_attributes__r   ó    ÚaC:\Users\psant\Downloads\Noiseback\school\venv\Lib\site-packages\twisted/mail/scripts/mailmail.pyr   r   (   s   † ôr   r   c                  óx   •  [         R                  " 5       $ ! [         a    [        R                  " 5       s $ f = f©N)ÚosÚgetloginÚBaseExceptionÚgetpassÚgetuserr   r   r   r   r   8   s/   € ð!Ü�{Š{‹}ÐøÜó !Ü�ŠÓ Ò ð!ús   ‚ —9¸9zUnsupported option.c                 ó  • [        5       nU  Vs/ s H  o"R                  S5      (       a  M  UPM     snUl        [        5       Ul        SU ;   a  [        S[        5        [        5       eSU ;   a  [        eSU ;   a  [        eSU ;   a@  X R                  S5      S-      Ul        UR                  R                  UR                  5        SU ;   d  S	U ;   a  [        eS
U ;   a  SUl        OSUl        SU ;   a  SUl        OSUl        SU ;   d  SU ;   a  SUl        OSUl        SU ;   a  [        eSU ;   a   SUl        UR                  Ul        / Ul        OSUl        / Ul        / / / / / S.n[!        5       n Sn["        R$                  R'                  5       nUR)                  5       (       d  OêUR+                  SS5      nUS   R-                  5       nUR                  (       aN  US;   aH  UR                  R/                  [0        R2                  R5                  US   5      S   /5        US:X  a  SnO0US:X  a*  [0        R2                  R5                  US   5      S   Ul        Xƒ;   a  X8   R7                  US   5        U(       a  UR9                  U5        GM   US   (       d  UR9                  SUR                   S35        US   (       dU  UR                  (       d  [        S5      eUR9                  SR;                  SR=                  UR                  5      5      5        US   (       d(  UR9                  S[>        R@                  " 5        S35        UR9                  U5        UR                  (       a/  UR                   H  n	 UR                  R                  U	5        M!     URE                  SS5        [!        URG                  5       ["        R$                  RI                  5       -   5      Ul%        U$ s  snf ! [B         a     M†  f = f) NÚ-z	--versionzmailmail version:z-bpz-bsz-Fé   z-iz-oiz-odbTFz-odfz-oepz-epz-omz-t)ÚfromÚtoÚccÚbccÚdatez: r   )r"   r#   r$   r$   r!   zFrom: z
r"   zNo recipients specified.zTo: {}
z, r%   zDate: )&r   Ú
startswithr"   r   Ú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   ÚparseOptionsrN   B   s\  € Ü‹	€AÙÓ5’t�!§<¡<°×#4�A‘tÑ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àÓ!ØÑ ×'Ñ'¨¨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   �O-¬O-Í=O2Ï2
P Ï?P c                   ó   • \ rS rSrSrS rSrg)ÚConfigurationé¼   a¥  

@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                 ó�   • / U l         / U l        / U l        / U l        SU l        SU l        0 U l        S U l        S U l        SU l	        g )NÚdenyT)
Ú	allowUIDsÚdenyUIDsÚ	allowGIDsÚdenyGIDsÚ
useraccessÚgroupaccessÚ
identitiesÚ	smarthostÚdomainÚdefaultAccess)Úselfs    r   Ú__init__ÚConfiguration.__init__Ø   sJ   € ØˆŒØˆŒØˆŒØˆŒØ ˆŒØ!ˆÔàˆŒØˆŒØˆŒà!ˆÕr   )
rV   rT   r]   rW   rU   r\   rY   rZ   r[   rX   N)r   r   r   r   r   r_   r   r   r   r   rP   rP   ¼   s   † ñõ6"r   rP   c                 óÆ  • [        5       n[        R                  " U [        R                  5      (       d  U$ [	        5       nUR                  U 5        UR                  nUR                  nUR                  nUR                  nSX44SXV44 GH&  u  pxn	UR                  U5      (       d  M  SU4SU	44 Hy  u  p«UR                  Xz5      (       d  M  UR                  Xz5      (       d  M5  UR                  Xz5      R                  S5       H   n [        U5      nUR                  U5        M"     M{     UR                  US	5      nUR                  S5       Vs/ s H  oîR)                  5       PM     sn Vs/ s H  oîR                  5       PM     nnUS   S:X  a  [+        XS5        GM  [+        XS5        GM)     UR                  S
5      (       aa  UR-                  S
5       HL  u  nnUR                  SS5      n[/        U5      S:w  a  ["        R%                  SUS9  M=  UUR0                  U'   MN     UR                  S5      (       a\  UR                  SS5      (       a  UR                  SS5      Ul        UR                  SS5      (       a  UR                  SS5      Ul        U$ ! [          a,    ["        R%                  SUS   R'                  5       UUS9   GMÏ  f = fs  snf s  snf )NrX   rY   ÚallowrS   Ú,z6Illegal {prefix}ID in [{section}] section: {sectionID}r   )ÚprefixÚsectionÚ	sectionIDÚorderÚidentityÚ:r    é   z.Illegal entry in [identity] section: {section})re   Ú	addressesr[   Údefault_domain)rP   r   ÚaccessÚR_OKr   rC   rT   rU   rV   rW   Úhas_sectionÚ
has_optionÚgetr6   Úintr<   Ú
ValueErrorÚ_logÚerrorÚupperr7   ÚsetattrÚitemsÚlenrZ   r[   r\   )ÚpathÚcÚpÚauÚduÚagÚdgre   rM   ÚdÚmodeÚLrf   rg   ÚsÚhostÚupÚpartss                     r   Ú
loadConfigrˆ   ç   sm  € ô  	‹€Aä�9Š9�Tœ2Ÿ7™7×#Ñ#Øˆä‹€AØ‡F�Fˆ4„Là	
�‰€BØ	
�‰€BØ	
�‰€BØ	
�‰€BØ'¨Ð0°=À"Ð2IÔJ‰ˆ�AØ�=‰=˜×!Ó!Ø$ a˜L¨6°1¨+Ó6‘�Ø—<‘< ×.Ó.°1·5±5¸×3GÓ3GØ%&§U¡U¨7Ó%9×%?Ñ%?ÀÖ%D˜	ð0Ü(+¨I«˜Ið ŸH™H YÖ/ó &Eñ 7ð —E‘E˜' 7Ó+ˆEØ<A¿K¹KÈÔ<LÓ(MÒ<L°q¯©®Ñ<LÒ(MÓNÒ(M 1—W‘W–YÑ(MˆEÐNØ�Q‰x˜7Ó"Ü˜ G×,ä˜ F×+ñ- Kð0 	‡}�}�Z× Ñ ØŸ™ 
Ö+‰HˆD�"Ø—H‘H˜S !Ó$ˆEÜ�5‹z˜Q‹Ü—
‘
ÐKÐUW�
ÑXÙØ!&ˆA�L‰L˜Óñ ,ð 	‡}�}�[×!Ñ!Ø�<‰<˜ [×1Ñ1ØŸ%™% ¨[Ó9ˆAŒKØ�<‰<˜Ð%5×6Ñ6Ø—u‘u˜[Ð*:Ó;ˆAŒHà€Høô?  *ó Ü ŸJ™Jð!Cà'.¨q¡z×'7Ñ'7Ó'9Ø(/Ø*3ð 'õ ðüò )NùÒNs   Ä
J ÅKÅ1KÊ 1K	ËK	c                 ó.   • [         R                  " 5         g r   ©r   Ústop)Úresults    r   Úsuccessr�   ,  s   € Ü‡L‚L…Nr   c                 ó2   • [         R                  " 5         U qg r   )r   r‹   Úfailed)Úfs    r   Úfailurer‘   3  s   € ä‡L‚L„NØ�Fr   c                 óÎ   • [         R                  " XR                  UR                  UR                  5      nUR                  [        [        5        [        R                  " 5         g r   )
r	   Úsendmailr'   r"   rD   ÚaddCallbacksr�   r‘   r   Úrun)r…   ÚoptionsÚidentr�   s       r   r“   r“   9  s7   € Ü�Š�dŸN™N¨G¯J©J¸¿¹ÓE€AØ‡N�N”7œGÔ$Ü‡K‚K…Mr   c                 ód  • UR                   /nSR                  [        R                  S   [        R
                  R                  S5      5      n[        5       nU R                  US9  [        [        UR                  5       -  5      n[        R                  " SX2U5      nUR                  S 5        g )Nz2"Internally Generated Message ({})"<postmaster@{}>r   Úascii©ÚfileÚ	localhostc                 ó,   • [         R                  " 5       $ r   rŠ   )Ú_s    r   Ú<lambda>Úsenderror.<locals>.<lambda>H  s
   € œŸšœr   )r'   r>   r2   rE   r	   ÚDNSNAMEÚdecoder   ÚprintTracebackÚ	ERROR_FMTrB   r“   ÚaddBoth)r‘   r–   Ú	recipientr'   ru   rD   r�   s          r   Ú	senderrorr§   ?  s‰   € Ø—‘Ð €IØA×HÑHÜ�‰�‰”T—\‘\×(Ñ(¨Ó1ó€Fô ‹J€EØ×Ñ ÐÑ&Ü”I §¡Ó 0Ñ0Ó1€DÜ�Š�k 6°dÓ;€AØ‡I�IÑ&Õ'r   c                 ó¼  • [         R                  " 5       n[         R                  " 5       nU R                  S:X  a!  XR                  ;   a  gXR
                  ;   a  gO XR
                  ;   a  gXR                  ;   a  gU R                  S:X  a!  X R                  ;   a  gX R                  ;   a  gO X R                  ;   a  gX R                  ;   a  gU R                  (       + $ )NrS   TF)
r   ÚgetuidÚgetgidrX   rU   rT   rY   rW   rV   r]   )ÚconfÚuidÚgids      r   rS   rS   K  s·   € Ü
�)Š)‹+€CÜ
�)Š)‹+€Cà‡�˜&Ó Ø—-‘-ÓØØ—.‘.Ó Øð !ð —.‘.Ó ØØ—-‘-ÓØà×Ñ˜6Ó!Ø—-‘-ÓØØ—.‘.Ó Øð !ð —.‘.Ó ØØ—-‘-ÓØà×!Ñ!Ô!Ð!r   c                  ó
  • [        [        R                  SS  5      n [        [        5      n[        [
        5      n[        U5      (       d  [        U5      (       a  [        R                  S5        g UR                  =(       d    UR                  =(       d    [        nUR                  R                  5       nUR                  UR                  5        UR                  (       a  UR                  [        l        O&UR                  (       a  UR                  [        l        [#        X0U5        [$        (       aN  U R&                  (       a,  [$        R)                  [        R*                  S9  [-        S5      e[/        [$        U 5        g g )Nr    zPermission deniedrš   )rN   r2   rE   rˆ   Ú
GLOBAL_CFGÚ	LOCAL_CFGrS   rt   ru   r[   Ú	SMARTHOSTrZ   ÚcopyÚupdater\   r	   r¡   r“   r�   r.   r£   Ústderrr)   r§   )rF   ÚgConfÚlConfr…   r—   s        r   r•   r•   h  sð   € Ü”S—X‘X˜a˜b�\Ó"€AÜ”zÓ"€EÜ”yÓ!€EäˆE‡{�{”d˜5—k‘kÜ�
‰
Ð&Ô'Øà�?‰?×:˜eŸo™o×:´€Dà×Ñ×!Ñ!Ó#€EØ	‡L�L�×!Ñ!Ô"à‡|‡|Ø—|‘|Œ�Ø	��Ø—|‘|ŒŒäˆT�eÔç‚vØ�=�=Ü×!Ñ!¤s§z¡zÐ!Ñ2Ü˜Q“-Ðä”f˜aÕ ð r   )*r   Úemail.utilsr9   r   r   r2   Úconfigparserr   Úior   Útwisted.copyrightr   Útwisted.internetr   Útwisted.loggerr   r   Útwisted.mailr	   r¯   rz   Ú
expanduserr°   r±   r¤   r´   Ú_logObserverrt   r   r   r)   r*   rN   rP   rˆ   r�   r�   r‘   r“   r§   rS   r•   r   r   r   Ú<module>rÀ      sÅ   ðñ
ó
 Û Û 	Û 
Ý %Ý å %Ý $ß 6Ý à€
Ø�G‰G×ÑÐ4Ó5€	Ø€	ð€	ñ # 3§:¡:Ó.€Ù�|Ñ$€÷ñ ò !ñ  Ð 5Ó6Ð òw÷t("ñ ("òVBòJð 
€òòò	(ò"ó:!r   