+
     Bim                        ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt^ RIHt . R5Ot^tRtRtRtRt^t]P,                  ! R]P.                  4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R R	]4      t  ! R R
]4      t! ! R R]4      t" ! R R]4      t#R t$R t%R t&R  t'R! t( ]PR                  ! R"R"R#4       R$t* ^ RI,t,R$t- ! R& R4      t/]-'       d    ! R' R(]/4      t0]Pc                  R(4       R)t2 ! R* R+]/4      t3]4R,8X  d   R- t5]5! R.4      t6]5! R/4      Po                  R04      t8]9! R14       R2t:]Pv                  Py                  4       ;t='       d   ]:]=,           t:K-  ]9! R3]>! ]:4      ,          4       ]/! R44      t?]?P                  ^4       ]?P                  ]6]8]:4       ]?P                  4        R# R#   ]+ d    R%t* ELi ; i  ]. d    R%t- ELi ; i)6    N)body_encodeSMTPExceptionSMTPNotSupportedErrorSMTPServerDisconnectedSMTPResponseExceptionSMTPSenderRefusedSMTPRecipientsRefusedSMTPDataErrorSMTPConnectErrorSMTPHeloErrorSMTPAuthenticationErrorSMTPi  
s   
i    z	auth=(.*)c                       ] tR t^FtRtR# )r    N__name__
__module____qualname____firstlineno____static_attributes__r       /usr/lib/python3.14/smtplib.pyr   r   F       r   c                       ] tR t^ItRtR# )r   r   Nr   r   r   r   r   r   I   r   r   c                       ] tR t^PtRtR# )r   r   Nr   r   r   r   r   r   P   r   r   c                   &   a  ] tR t^Xt o R tRtV tR# )r   c                .    Wn         W n        W3V n        R # N)	smtp_code
smtp_errorargs)selfcodemsgs   &&&r   __init__SMTPResponseException.__init__a   s    K	r   )r"   r    r!   Nr   r   r   r   r&   r   __classdictcell____classdict__s   @r   r   r   X   s        r   c                   &   a  ] tR t^ft o R tRtV tR# )r   c                <    Wn         W n        W0n        WV3V n        R # r   )r    r!   senderr"   )r#   r$   r%   r.   s   &&&&r   r&   SMTPSenderRefused.__init__m   s    '	r   )r"   r.   r    r!   Nr(   r*   s   @r   r   r   f   s     ( (r   c                   &   a  ] tR t^st o R tRtV tR# )r	   c                "    Wn         V3V n        R # r   )
recipientsr"   )r#   r2   s   &&r   r&   SMTPRecipientsRefused.__init__{   s    $M	r   )r"   r2   Nr(   r*   s   @r   r	   r	   s   s     " "r   c                       ] tR t^tRtR# )r
   r   Nr   r   r   r   r
   r
      r   r   c                       ] tR t^tRtR# )r   r   Nr   r   r   r   r   r      r   r   c                       ] tR t^tRtR# )r   r   Nr   r   r   r   r   r      r   r   c                       ] tR t^tRtR# )r   r   Nr   r   r   r   r   r      r   r   c                     \         P                  P                  V 4      w  rW3R8X  d1   V P                  4       P	                  R4      '       d   V # RV ,          # RV,          # ) <z<%s>r9   r9   )emailutils	parseaddrstrip
startswith
addrstringdisplaynameaddrs   &  r   	quoteaddrrE      s[    
 --j9Kh&((--
""D=r   c                 \    \         P                  P                  V 4      w  rW3R8X  d   V # V# )r9   r;   )r<   r=   r>   rA   s   &  r   
_addr_onlyrG      s/    --j9Kh&Kr   c           	      f    \         P                  ! R R\         P                  ! R\        V 4      4      # )z(?m)^\.z..(?:\r\n|\n|\r(?!\n))resubCRLFdatas   &r   	quotedatarP      s*     66*d
&d35 5r   c                 2    \         P                  ! R RV 4      # )s   (?m)^\.s   ..)rK   rL   )bindatas   &r   _quote_periodsrS      s    66+ug..r   c                 :    \         P                  ! R \        V 4      # )rI   rJ   rN   s   &r   	_fix_eolsrU      s    FF*D$77r   r   md5TFc                   ~  a  ] tR t^t o ^ tRtRtRtRtRt	Rt
]tR^ R]P                  R3R ltR tR tR tR	 tR
 tR+R ltR tR,R ltR tR,R ltR,R ltR,R ltR tR,R ltR tR tR t R-R lt!R-R lt"R t#R t$]$t%R t&R t'RR/R lt(R.R  lt)R.R! lt*R.R" lt+RR/R# lt,R$R/R% lt-R/R& lt.R0R' lt/R( t0R) t1R*t2V t3R# )1r   NehloFr9   c                   Wn         W@n        / V n        R V n        WPn        ^ V n        V'       d6   V P                  W4      w  rgV^8w  d   V P                  4        \        Wg4      hVe	   W0n	        R# \        P                  ! 4       pRV9   d	   Wn	        R# Rp	 \        P                  ! \        P                  ! 4       4      p	RV	,          V n	        R#   \        P                   d     L'i ; i)asciiN.z	127.0.0.1z[%s])_hosttimeoutesmtp_featurescommand_encodingsource_address_auth_challenge_countconnectcloser   local_hostnamesocketgetfqdngethostbynamegethostnamegaierror)
r#   hostportrd   r]   r`   r$   r%   fqdnrD   s
   &&&&&&    r   r&   SMTP.__init__   s    $ 
  ',%&",,t2KTs{

&t11%"0
 >>#Dd{&*# #!//0B0B0DED '-tm#  s   )C C)(C)c                    V # r   r   r#   s   &r   	__enter__SMTP.__enter__  s    r   c                     V P                  R 4      w  r#V^8w  d   \        W#4      h V P                  4        R#   \         d     Li ; i  T P                  4        i ; i)QUITN)docmdr   r   rc   )r#   r"   r$   messages   &*  r   __exit__SMTP.__exit__  sY    	 JJv.MDs{+D:: 
 JJL & 		 JJLs&   %: A AA AA Ac                    Wn         R # r   )
debuglevel)r#   ry   s   &&r   set_debuglevelSMTP.set_debuglevel)  s	     %r   c                    V P                   ^8  dJ   \        \        P                  P                  4       P	                  4       .VO5R\
        P                  /  R# \        VR\
        P                  /  R# )   fileN)ry   printdatetimenowtimesysstderrr#   r"   s   &*r   _print_debugSMTP._print_debug2  sM    ??Q(##'')..0I4IcjjI4)cjj)r   c                    Ve   V'       g   \        R4      hV P                  ^ 8  d   V P                  RW3V P                  4       \        P
                  ! W3VV P                  4      # )N0Non-blocking socket (timeout=0) is not supportedzconnect: to)
ValueErrorry   r   r`   re   create_connection)r#   rj   rk   r]   s   &&&&r   _get_socketSMTP._get_socket8  s`     wOPP??Qmd\4;N;NO''g(,(;(;= 	=r   c                <   V'       d   W0n         V'       gY   VP                  R 4      VP                  R 4      8X  d4   VP                  R 4      pV^ 8  d   VRV W^,           R r! \        V4      pV'       g   V P                  p\        P                  ! RWV4       V P                  WV P                  4      V n        RV n        V P                  4       w  rVV P                  ^ 8  d   V P                  R\!        V4      4       WV3#   \         d    \        R4      hi ; i):Nznonnumeric portzsmtplib.connectconnect:)r`   findrfindintr   OSErrordefault_portr   auditr   r]   sockr~   getreplyry   r   repr)r#   rj   rk   r`   ir$   r%   s   &&&&   r   rb   SMTP.connectB  s     "034::c?:

3AAv!"1XtEF|d5t9D $$D		#T6$$T>		mmo??Qj$s)4{ " 5!"3445s   $D Dc                   V P                   ^ 8  d   V P                  R\        V4      4       V P                  '       dg   \	        V\
        4      '       d   VP                  V P                  4      p\        P                  ! RW4        V P                  P                  V4       R# \        R4      h  \         d    T P                  4        \        R4      hi ; i)r   zsend:zsmtplib.sendServer not connectedzplease run connect() firstN)ry   r   r   r   
isinstancestrencoder_   r   r   sendallr   rc   r   )r#   ss   &&r   send	SMTP.sendc  s    ??QgtAw/999!S!! HHT223IInd.E		!!!$
 ))EFF	  E

,-CDDEs   B0 0'Cc                    VR 8X  d   TpMV RV 2pRV9   g   RV9   d1   VP                  RR4      P                  RR4      p\        RV 24      hV P                  V \         24       R# )r9    
z\nz\rz=command and arguments contain prohibited newline characters: N)replacer   r   rM   )r#   cmdr"   r   s   &&& r   putcmdSMTP.putcmdv  su    2:A%qA19			$&..tU;AOPQsS  			QCv,r   c                j   . pV P                   f!   V P                  P                  R4      V n           V P                   P                  \        ^,           4      pT'       g   T P                  4        \        R4      hT P                  ^ 8  d   T P                  R\        T4      4       \        T4      \        8  d   T P                  4        \        RR4      hTP                  TR,          P                  R4      4       TR	,          p \!        T4      pTR
,          R8w  g   K   RP%                  T4      pT P                  ^ 8  d   T P                  RT: RT: 24       YV3#   \
         d1   pT P                  4        \        R\        T4      ,           4      hR p?ii ; i  \"         d    Rp K  i ; i)Nrbz Connection unexpectedly closed: zConnection unexpectedly closedzreply:i  zLine too long.:   NNs    	
:N   N:r   r   N   -   
zreply: retcode (z); Msg: )r~   r   makefilereadline_MAXLINEr   rc   r   r   ry   r   r   lenr   appendr?   r   r   join)r#   resplineer$   errcodeerrmsgs   &      r   r   SMTP.getreply  sk    99		**40DI7yy))(Q,7
 

,-MNN"!!(DJ74y8#

+C1ABBKKRz238Dd)
 CyD D!??QPQ9  7

,-O/21v.6 7 77$  s)   &E# 	F! #F.+FF!F21F2c                D    V P                  W4       V P                  4       # r   r   r   )r#   r   r"   s   &&&r   rt   
SMTP.docmd  s    C}}r   c                    T P                  R T;'       g    V P                  4       V P                  4       w  r#W0n        W#3# )helo)r   rd   r   	helo_resp)r#   namer$   r%   s   &&  r   r   	SMTP.helo  s:    
 	FD77D$7$78mmo{r   c                   / V n         T P                  V P                  T;'       g    V P                  4       V P	                  4       w  r#VR8X  d,   \        V4      ^ 8X  d   V P                  4        \        R4      hW0n        V^8w  d   W#3# RV n	        V P                  P                  R4      P                  R4      pV^  V EF+  p\        P                  V4      pV'       dP   V P                   P                  RR4      R,           VP                  ^ 4      ^ ,          ,           V P                   R&   Kp  \         P                  ! RV4      pV'       g   K  VP#                  R	4      P%                  4       pVP&                  VP)                  R	4      R
 P+                  4       p	VR8X  d;   V P                   P                  VR4      R,           V	,           V P                   V&   EK  WP                   V&   EK.  	  W#3# )r}   r   Tzlatin-1r   authr9   r   z((?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*) ?featureNr   )r^   r   ehlo_msgrd   r   r   rc   r   	ehlo_resp
does_esmtpdecodesplitOLDSTYLE_AUTHmatchgetgroupsrK   grouplowerstringendr?   )
r#   r   r$   r%   r   each
auth_matchmr   paramss
   &&        r   rX   	SMTP.ehlo  s   
 !DMM4#>#>4+>+>?mmo 2:#c(a-JJL()?@@3;; ~~$$Y/55d;GD ',,T2J.2.A.A.E.Efb.Q/ * 1 1! 4Q 7/8##F+ DdKAq''),224!%%	"2"34::<f$373F3F3J3J7TV3W!4"$*4+D''0 4:''05 6 {r   c                <    VP                  4       V P                  9   # r   )r   r^   )r#   opts   &&r   has_extnSMTP.has_extn  s    yy{d1111r   c                T    V P                  R V4       V P                  4       ^,          # )helpr   r   s   &&r   r   	SMTP.help  s#     	FD!}}q!!r   c                2    R V n         V P                  R4      # )rZ   rset)r_   rt   ro   s   &r   r   	SMTP.rset  s     'zz&!!r   c                L     V P                  4        R #   \         d     R # i ; ir   )r   r   ro   s   &r   _rset
SMTP._rset  s"    	IIK% 		s    ##c                $    V P                  R 4      # )noop)rt   ro   s   &r   r   	SMTP.noop  s    zz&!!r   c                   R pV'       d   V P                   '       d}   \        ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      '       d+   V P                  R4      '       d	   RV n        M\	        R4      hRRP                  V4      ,           pV P                  RR	\        V4      : V: 24       V P                  4       # )
r9   c              3   F   "   T F  qP                  4       R 8H  x  K  	  R# 5i)smtputf8N)r   ).0xs   & r   	<genexpr>SMTP.mail.<locals>.<genexpr>!  s     :'Q779j('s   !TFr   zutf-8z SMTPUTF8 not supported by serverr   mailzfrom:)	r   anyr   r_   r   r   r   rE   r   )r#   r.   options
optionlists   &&& r   r   	SMTP.mail  s     
ts:':sss:':::==,,,3D)/:< <sxx00JF9V+<jIJ}}r   c                    R pV'       d+   V P                   '       d   RRP                  V4      ,           pV P                  RR\        V4      : V: 24       V P	                  4       # )r9   r   rcptzto:)r   r   r   rE   r   )r#   recipr   r   s   &&& r   r   	SMTP.rcpt+  sI    
tsxx00JF5)9:FG}}r   c                   V P                  R 4       V P                  4       w  r#V P                  ^ 8  d   V P                  RW#34       VR8w  d   \	        W#4      h\        V\        4      '       d   \        V4      P                  R4      p\        V4      pVRR \        8w  d   V\        ,           pVR,           \        ,           pV P                  V4       V P                  4       w  r!V P                  ^ 8  d   V P                  RW!34       W!3# )rO   zdata:ib  rZ   N   .)r   r   ry   r   r
   r   r   rU   r   rS   bCRLFr   )r#   r%   r$   replqs   &&   r   rO   	SMTP.data3  s     	F}}??Qg|43;++#s##n++G4s#AvID5 AIIaL--/KT"!!'D;7;r   c                X    V P                  R \        V4      4       V P                  4       # )vrfyr   rG   r   r#   addresss   &&r   verifySMTP.verifyP  !    FJw/0}}r   c                X    V P                  R \        V4      4       V P                  4       # )expnr  r  s   &&r   r  	SMTP.expnW  r  r   c                    V P                   fi   V P                  fY   ^V P                  4       ^ ,          u;8:  d   R8:  g3   M V P                  4       w  r^Tu;8:  d   R8:  g   M \	        W4      hR # R # R # R # )Ni+  )r   r   rX   r   r   )r#   r$   r   s   &  r   ehlo_or_helo_if_neededSMTP.ehlo_or_helo_if_needed^  se     >>!dnn&<499;q>0S0#yy{t*s*'33 + 1 '=!r   initial_response_okTc               t   VP                  4       pV'       d   V! 4       MR pVeG   \        VP                  R4      RR7      pV P                  RVR,           V,           4      w  rg^V n        MV P                  RV4      w  rg^ V n        VR8X  d   V ;P                  ^,          un        \
        P                  ! V4      p\        V! V4      P                  R4      RR7      pV P                  V4      w  rgV P                  \        8  g   K  \        R\        Wg34      ,           4      hVR9   d   Wg3# \        Wg4      h)	NrZ   r9   )eolAUTHr   iN  z4Server AUTH mechanism infinite loop. Last response:    i  )upperencode_base64r   rt   ra   base64decodebytes_MAXCHALLENGEr   r   r   )	r#   	mechanism
authobjectr  initial_responseresponser$   r   	challenges	   &&&$     r   r   	SMTP.autho  s   , OO%	,?JLT'$%5%<%<W%E2NH::fi#o.HILT)*D&::fi8LT)*D&ck&&!+&**40I$9%,,W52?H::h/LT))M9#JD<()  :<%d11r   c                    Vf   R # \         '       g   \        R4      hV P                  P                  R4      p\        P
                  ! W!R4      pV P                   RVP                  4        2# )NzCRAM-MD5 is not supportedrZ   rV   r   )_have_cram_md5_supportr   passwordr   hmacHMACuser	hexdigest)r#   r!  r%  authcodes   &&  r   auth_cram_md5SMTP.auth_cram_md5  sb     %% ;<<==''099X%8))Ah002344r   c                >    R V P                   : R V P                  : 2# ) )r(  r%  r#   r!  s   &&r   
auth_plainSMTP.auth_plain  s     "YY66r   c                \    Ve   V P                   ^8  d   V P                  # V P                  # r   )ra   r(  r%  r/  s   &&r   
auth_loginSMTP.auth_login  s+      : :Q >99== r   c               B   V P                  4        V P                  R 4      '       g   \        R4      hV P                  R ,          P	                  4       p\
        '       d   . R
OpMRR.pV Uu. uF  pWd9   g   K  VNK  	  ppV'       g   \        R4      hWuV n        V n        V FV  pRVP                  4       P                  RR4      ,           p	 V P                  V\        W	4      VR7      w  rV
R9   d   W3u # KX  	  Xhu upi   \         d   pTp R	p?Kt  R	p?ii ; i)r   z,SMTP AUTH extension not supported by server.PLAINLOGINz(No suitable authentication method found.auth_-_)r  N)zCRAM-MD5r6  r7  r  )r  r   r   r^   r   r$  r   r(  r%  r   r   r   getattrr   )r#   r(  r%  r  advertised_authlistpreferred_authsr   authlist
authmethodmethod_namer$   r   r   last_exceptions   &&&$          r   login
SMTP.login  s4   8 	##%}}V$$'>@ @ #11&9??A "!<O&0O &5 4_T2 D_ 4 JKK
 $( 	4="J!J$4$4$6$>$>sC$HHK	##yy :(;  )  =
 :% <' & # /4& + #!"#s$   -D:D(DDDDcontextc                  V P                  4        V P                  R 4      '       g   \        R4      hV P                  R4      w  r#V^8X  d   \        '       g   \        R4      hVf   \        P                  ! 4       pVP                  V P                  V P                  R7      V n	        RV n        RV n        RV n        / V n        RV n        W#3# \!        W#4      h)starttlsz+STARTTLS extension not supported by server.STARTTLSz&No SSL support included in this PythonNserver_hostnameF)r  r   r   rt   	_have_sslRuntimeErrorssl_create_stdlib_contextwrap_socketr   r\   r~   r   r   r^   r   r   )r#   rD  r   replys   &$  r   rF  SMTP.starttls  s    " 	##%}}Z(('=? ?

:.3;9"#KLL446++DII<@JJ , HDIDI
 "DN!DN"$D#DO } (44r   c                   V P                  4        . p\        V\        4      '       d   \        V4      P	                  R 4      pV P
                  '       dS   V P                  R4      '       d"   VP                  R\        V4      ,          4       V F  pVP                  V4       K  	  V P                  W4      w  rV^8w  d5   VR8X  d   V P                  4        MV P                  4        \        WV4      h/ p
\        V\        4      '       d   V.pV FK  pV P                  W4      w  rV^8w  d   V^8w  d   W3W&   VR8X  g   K2  V P                  4        \        V
4      h	  \        V
4      \        V4      8X  d   V P                  4        \        V
4      hV P                  V4      w  rV^8w  d4   VR8X  d   V P                  4        MV P                  4        \!        W4      hV
# )rZ   sizezsize=%di  )r  r   r   rU   r   r   r   r   r   r   rc   r   r   r   r	   rO   r
   )r#   	from_addrto_addrsr%   mail_optionsrcpt_options
esmtp_optsoptionr$   r   senderrsr   s   &&&&&&      r   sendmailSMTP.sendmail)  s   @ 	##%
c3C.''0C???}}V$$!!)c#h"67&!!&) 'yy73;s{



#D	::h$$ zHD99T8LT$#+"&s{

+H55  x=CM)JJL'11yy~3;s{



++r   c           	        V P                  4        VP                  R 4      pVf   RpM\        V4      ^8X  d   RpM\        R4      hVf[   VR,           V9   d   WR,           ,          MWR,           ,          p\        P
                  P                  V.4      ^ ,          ^,          pVfv   WR,           ,          WR,           ,          WR	,           ,          3 Uu. uF  pVf   K	  VNK  	  p	p\        P
                  P                  V	4       U
u. uF  q^,          NK  	  pp
\        P                  ! V4      pVR VR
 Rp RP                  V.VO4      P                  R4       \        P                  ! 4       ;_uu_ 4       pV'       dE   \        P                  P!                  WP"                  P%                  RR7      R7      p. VORNRN5pM\        P                  P!                  V4      pVP'                  VRR7       VP)                  4       pRRR4       V P+                  W#XVV4      # u upi u up
i   \         d)    T P                  R4      '       g   \        R4      hRp ELi ; i  + '       g   i     Ld; i)zResent-DateNr9   zResent-z0message has more than one 'Resent-' header blockSenderFromToBccCcz
Resent-BccFrZ   r   zOne or more source or delivery addresses require internationalized email support, but the server does not advertise the required SMTPUTF8 capabilityT)utf8)policySMTPUTF8zBODY=8BITMIMEr   )linesep)r  get_allr   r   r<   r=   getaddressescopyr   r   UnicodeEncodeErrorr   r   ioBytesIO	generatorBytesGeneratorrc  cloneflattengetvaluerZ  )r#   r%   rS  rT  rU  rV  resentheader_prefixfaddr_fieldsamsg_copyinternationalbytesmsggflatmsgs   &&&&&&          r   send_messageSMTP.send_message  sT   > 	##%]+>M[A%MOPP  -x7C? X56 #F$: ;  00)=a@CI'*4+?'@'*5+@'A'*4+?'@'B - 'B   1 'BK - ',kk&>&>{&KL&K!&KHL99S>UO\"	!GGY**+227; ZZ\\XOO22ZZ%5%54%5%@ 3 BKKzK?KOO228<IIhI/'')G  }}Y'<)+ 	+9- M " 	!==,,+KL L !M	! \s7   H("H(H-=#H2 =BI(2!I%I%$I%(I8	c                    V P                   pR V n         V'       d   VP                  4        V P                  pR V n        V'       d   VP                  4        R # R #   T P                  pR T n        T'       d   TP                  4        i i ; ir   )r~   rc   r   )r#   r~   r   s   &  r   rc   
SMTP.close  si    		99DDI

99DDI

  99DDI

 s   A A .B
c                    V P                  R 4      pR;V n        V n        / V n        RV n        V P                  4        V# )quitNF)rt   r   r   r^   r   rc   )r#   ress   & r   r  	SMTP.quit  s;    jj *.. 


r   )ra   r\   r_   ry   r   r   r^   r~   r   rd   r%  r   r`   r]   r(  	localhostr   N)r9   )r   r   )r   r   )NNr   r   )4r   r   r   r   ry   r   r~   r   r   r   r   	SMTP_PORTr   re   _GLOBAL_DEFAULT_TIMEOUTr&   rp   rv   rz   r   r   rb   r   r   r   rt   r   rX   r   r   r   r   r   r   r   rO   r	  r  r  r  r   r+  r0  r3  rB  rF  rZ  r{  rc   r  r   r)   r*   s   @r   r   r      s    : JDDIHIJLQt77 $.4`%*=BG& /b1f2""

"*:
 D4".2 .2`
57
!B4 BH+$ +ZfPK+Z r   c                   d   a a ] tR tRt o]tR	R]P                  RRRR/R lltV 3R lt	Rt
VtV ;t# )
SMTP_SSLi  Nr]   r`   rD  c               t    Vf   \         P                  ! 4       pW`n        \        P	                  WW#VV4       R # r   )rL  rM  rD  r   r&   )r#   rj   rk   rd   r]   r`   rD  s   &&&&$$$r   r&   SMTP_SSL.__init__  s1     446"LMM$dG(*r   c                   < V P                   ^ 8  d   V P                  RW34       \        SV `  WV4      pV P                  P                  VV P                  R7      pV# )r   r   rH  )ry   r   superr   rD  rN  r\   )r#   rj   rk   r]   
new_socket	__class__s   &&&& r   r   SMTP_SSL._get_socket  s[    "!!*tl;,TAJ11*BF** 2 NJr   )rD  )r9   r   N)r   r   r   r   SMTP_SSL_PORTr   re   r  r&   r   r   r)   __classcell__r  r+   s   @@r   r  r    s9      %	* & > >	*$(	*26	*	 	r   r  i  c                   h   a a ] tR tRt oRtR]RR]P                  3V 3R lltRV 3R llt	Rt
VtV ;t# )	LMTPi  lhlor9   Nc                ,   < \         SV `  WVWER 7       R# ))rd   r`   r]   N)r  r&   )r#   rj   rk   rd   r`   r]   r  s   &&&&&&r   r&   LMTP.__init__,  s     	N(6 	 	Ir   c                  < V^ ,          R8w  d   \         SV `  WVR7      # V P                  e   V P                  '       g   \        R4      h \        P                  ! \        P
                  \        P                  4      V n        V P                  \        P                  Jd&   V P                  P                  V P                  4       RV n
        V P                  P                  V4       T P                  4       w  rET P                  ^ 8  d   T P                  RT4       YE3#   \         dY    T P                  ^ 8  d   T P                  RT4       T P                  '       d   T P                  P                  4        RT n        h i ; i)r   /)r`   Nr   zconnect fail:r   )r  rb   r]   r   re   AF_UNIXSOCK_STREAMr   r  
settimeoutr~   r   ry   r   rc   r   )r#   rj   rk   r`   r$   r%   r  s   &&&&  r   rb   LMTP.connect2  s"   7c>7?4n?MM<<#DLLLOPP	fnnf6H6HIDI||6#A#AA		$$T\\2DIIId# mmo??Qj#.{  	"!!/48yyy		!DI	s   BD" "?F"#F)r~   r   r  )r   r   r   r   r   	LMTP_PORTre   r  r&   rb   r   r)   r  r  s   @@r   r  r    s.      HYt $f.L.LI r   r  __main__c                     \         P                  P                  V R ,           4       \         P                  P                  4        \         P                  P                  4       P                  4       # )z: )r   stdoutwriteflushstdinr   r?   )prompts   &r   r  r  Q  sD    

$'

yy!!#))++r   r^  r_  ,zEnter message, end with ^D:r9   zMessage length is %dr  )r   r   r   r   r   r	   r
   r   r   r   rE   rP   r   )Cre   rj  rK   email.utilsr<   email.messageemail.generatorr  r&  rh  r   r   email.base64mimer   r  __all__r  r  rM   r   r   r  compileIr   r   r   r   r   r   r   r	   r
   r   r   r   rE   rG   rP   rS   rU   digestr$  r   rL  rJ  ImportErrorr   r  r   r  r  r   r  fromaddrr   toaddrsr   r%   r  r   r   r   serverrz   rZ  r  r   r   r   <module>r     s;  T  	 	        
 9-
 	

<.?G ?M ]  M  (- (
"M 
"2) 21, 1-) -3 5/8"KKS%  " In n` 4 < NN:
 	/4 /h z,
 f~HTl  %G	
'(
C))$$&
&$
&Dj	
 3s8
+,+F
!
OOHgs+
KKM# s  #"#  Is$   G+ 5G; +	G87G8;	HH