+
    iu  c                   s   ^ 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                   s    ] tR t^FtRtR# )r    N__name__
__module____qualname____firstlineno____static_attributes__r        /usr/lib64/python3.14/smtplib.pyr   r   F       r   c                   s    ] tR t^ItRtR# )r   r   Nr   r   r   r   r   r   I   r   r   c                   s    ] tR t^PtRtR# )r   r   Nr   r   r   r   r   r   P   r   r   c                   s&   a  ] tR t^Xt o R tRtV tR# )r   c                s.    Wn         W n        W3V n        R # N)	smtp_code
smtp_errorargs)selfcodemsg   &&&r   __init__ZSMTPResponseException.__init__a   s    K	r   )r   r   r   Nr   r   r   r   r    r   __classdictcell____classdict__   @r   r   r   X   s        r   c                   s&   a  ] tR t^ft o R tRtV tR# )r   c                s<    Wn         W n        W0n        WV3V n        R # r   )r   r   senderr   )r   r   r   r&      &&&&r   r    ZSMTPSenderRefused.__init__m   s    '	r   )r   r&   r   r   Nr!   r#   r%   r   r   r   f   s     ( (r   c                   s&   a  ] tR t^st o R tRtV tR# )r   c                s"    Wn         V3V n        R # r   )
recipientsr   )r   r(      &&r   r    ZSMTPRecipientsRefused.__init__{   s    $M	r   )r   r(   Nr!   r#   r%   r   r   r   s   s     " "r   c                   s    ] tR t^tRtR# )r   r   Nr   r   r   r   r   r      r   r   c                   s    ] tR t^tRtR# )r	   r   Nr   r   r   r   r	   r	      r   r   c                   s    ] tR t^tRtR# )r
   r   Nr   r   r   r   r
   r
      r   r   c                   s    ] tR t^tRtR# )r   r   Nr   r   r   r   r   r      r   r   c                 s    \         P                  P                  V 4      w  rW3R8X  d1   V P                  4       P	                  R4      '       d   V # RV ,          # RV,          # ) Z<z<%s>r*   r*   )emailutils	parseaddrstripZ
startswithZ
addrstringZdisplaynameaddr   &  r   	quoteaddrr3      s[    
 --j9Kh&((--
""D=r   c                 s\    \         P                  P                  V 4      w  rW3R8X  d   V # V# )r*   r+   )r,   r-   r.   r0   r2   r   
_addr_onlyr4      s/    --j9Kh&Kr   c           	      sf    \         P                  ! R R\         P                  ! R\        V 4      4      # )z(?m)^\.z..(?:\r\n|\n|\r(?!\n))resubCRLFdata   &r   	quotedatar=      s*     66*d
&d35 5r   c                 s2    \         P                  ! R RV 4      # )s   (?m)^\.s   ..)r7   r8   )Zbindatar<   r   _quote_periodsr>      s    66+ug..r   c                 s:    \         P                  ! R \        V 4      # )r5   r6   r:   r<   r   	_fix_eolsr?      s    FF*D$77r   r   md5TFc                   s~  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ehloFr*   c                s   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)asciiNZ.z	127.0.0.1z[%s])_hosttimeoutesmtp_featurescommand_encodingsource_address_auth_challenge_countconnectcloser	   local_hostnamesocketZgetfqdnZgethostbynameZgethostnameZgaierror)
r   hostportrK   rD   rG   r   r   Zfqdnr1   s
   &&&&&&    r   r    ZSMTP.__init__   s    $ 
  ',%&",,t2KTs{

&t11%"0
 >>#Dd{&*# #!//0B0B0DED '-tm#  s   )C C)(C)c                s    V # r   r   r   r<   r   	__enter__ZSMTP.__enter__  s    r   c                s     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)ZQUITN)docmdr   r   rJ   )r   r   r   Zmessages   &*  r   __exit__ZSMTP.__exit__  sY    	 JJv.MDs{+D:: 
 JJL & 		 JJLs&   %: A AA AA Ac                s    Wn         R # r   )
debuglevel)r   rS   r)   r   set_debuglevelZSMTP.set_debuglevel)  s	     %r   c                s    V P                   ^8  dJ   \        \        P                  P                  4       P	                  4       .VO5R\
        P                  /  R# \        VR\
        P                  /  R# )   fileN)rS   printdatetimeZnowZtimesysZstderrr   r   s   &*r   _print_debugZSMTP._print_debug2  sM    ??Q(##'')..0I4IcjjI4)cjj)r   c                s    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)
ValueErrorrS   r[   rG   rL   Zcreate_connection)r   rM   rN   rD   r'   r   _get_socketZSMTP._get_socket8  s`     wOPP??Qmd\4;N;NO''g(,(;(;= 	=r   c                s<   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)Z:Nznonnumeric portzsmtplib.connectconnect:)rG   ZfindZrfindintr]   OSErrordefault_portrY   auditr^   rD   sockrV   getreplyrS   r[   repr)r   rM   rN   rG   Zir   r   s   &&&&   r   rI   Z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                s   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)rS   r[   rf   rd   
isinstancestrencoderF   rY   rc   Zsendallra   rJ   r   )r   sr)   r   sendZ	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                s    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# )r*    Z
z\nz\rz=command and arguments contain prohibited newline characters: N)replacer]   rl   r9   )r   cmdr   rk      &&& r   putcmdZSMTP.putcmdv  su    2:A%qA19			$&..tU;AOPQsS  			QCv,r   c                sj   . 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)NZrbz Connection unexpectedly closed: zConnection unexpectedly closedzreply:i  zLine too long.:   NNs    	
:N   N:rt   rs   Ns   -s   
zreply: retcode (z); Msg: )rV   rd   Zmakefilereadline_MAXLINEra   rJ   r   ri   rS   r[   rf   lenr   appendr/   r`   r]   join)r   resplineer   ZerrcodeZerrmsgs   &      r   re   Z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                sD    V P                  W4       V P                  4       # r   rr   re   )r   rp   r   r   r   rQ   Z
SMTP.docmd  s    C}}r   c                s    T P                  R T;'       g    V P                  4       V P                  4       w  r#W0n        W#3# )helo)rr   rK   re   	helo_resp)r   namer   r      &&  r   r   Z	SMTP.helo  s:    
 	FD77D$7$78mmo{r   c                s   / 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# )rU   rg   Tzlatin-1rn   authr*   rm   z((?P<feature>[A-Za-z0-9][A-Za-z0-9\-]*) ?featureNru   )rE   rr   ehlo_msgrK   re   rx   rJ   r   	ehlo_resp
does_esmtpZdecodesplitOLDSTYLE_AUTHZmatchZgetZgroupsr7   ZgrouplowerZstringZendr/   )
r   r   r   r   r{   eachZ
auth_matchZmr   Zparamss
   &&        r   rA   Z	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                s<    VP                  4       V P                  9   # r   )r   rE   )r   Zoptr)   r   has_extnZSMTP.has_extn  s    yy{d1111r   c                sT    V P                  R V4       V P                  4       ^,          # )helpr~   rZ   r)   r   r   Z	SMTP.help  s#     	FD!}}q!!r   c                s2    R V n         V P                  R4      # )rB   rset)rF   rQ   rO   r<   r   r   Z	SMTP.rset  s     'zz&!!r   c                sL     V P                  4        R #   \         d     R # i ; ir   )r   r   rO   r<   r   _rsetZ
SMTP._rset  s"    	IIK% 		s    ##c                s$    V P                  R 4      # )noop)rQ   rO   r<   r   r   Z	SMTP.noop  s    zz&!!r   c                s   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       # )
r*   c              3   sF   "   T F  qP                  4       R 8H  x  K  	  R# 5i)smtputf8N)r   )Z.0Zx   & r   Z	<genexpr>ZSMTP.mail.<locals>.<genexpr>!  s     :'Q779j('s   !TFr   zutf-8z SMTPUTF8 not supported by serverrm   mailzfrom:)	r   Zanyr   rF   r   rz   rr   r3   re   )r   r&   options
optionlistrq   r   r   Z	SMTP.mail  s     
ts:':sss:':::==,,,3D)/:< <sxx00JF9V+<jIJ}}r   c                s    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       # )r*   rm   rcptzto:)r   rz   rr   r3   re   )r   Zrecipr   r   rq   r   r   Z	SMTP.rcpt+  sI    
tsxx00JF5)9:FG}}r   c                s   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# )r;   zdata:ib  rB   Ns   .i)rr   re   rS   r[   r   rh   ri   r?   rj   r>   bCRLFrl   )r   r   r   ZreplZqs   &&   r   r;   Z	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rr   r4   re   r   Zaddressr)   r   verifyZSMTP.verifyP  !    FJw/0}}r   c                r   )expnr   r   r)   r   r   Z	SMTP.expnW  r   r   c                s    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   rA   r   r
   )r   r   r{   r2   r   ehlo_or_helo_if_neededZSMTP.ehlo_or_helo_if_needed^  se     >>!dnn&<499;q>0S0#yy{t*s*'33 + 1 '=!r   initial_response_okTc               st   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)	NrB   r*   )ZeolZAUTHrm   iN  z4Server AUTH mechanism infinite loop. Last response: i   i  )Zupperencode_base64rj   rQ   rH   base64Zdecodebytes_MAXCHALLENGEr   rf   r   )	r   Z	mechanismZ
authobjectr   Zinitial_responseZresponser   r{   	challenges	   &&&$     r   r   Z	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                s    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 supportedrB   r@   rm   )_have_cram_md5_supportr   passwordrj   hmacZHMACuserZ	hexdigest)r   r   r   Zauthcoder   r   auth_cram_md5ZSMTP.auth_cram_md5  sb     %% ;<<==''099X%8))Ah002344r   c                s>    R V P                   : R V P                  : 2# )Z )r   r   r   r   r)   r   
auth_plainZSMTP.auth_plain  s     "YY66r   c                s\    Ve   V P                   ^8  d   V P                  # V P                  # r   )rH   r   r   r   r)   r   
auth_loginZSMTP.auth_login  s+      : :Q >99== r   c               sB   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.Zauth_Z-Z_)r   N)zCRAM-MD5r   r   r   )r   r   r   rE   r   r   r   r   r   r   ro   r   Zgetattrr   )r   r   r   r   Zadvertised_authlistZpreferred_authsr   ZauthlistZ
authmethodZmethod_namer   r{   r}   Zlast_exceptions   &&&$          r   loginZ
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               s   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.ZSTARTTLSz&No SSL support included in this PythonNZserver_hostnameF)r   r   r   rQ   	_have_sslZRuntimeErrorssl_create_stdlib_contextwrap_socketrd   rC   rV   r   r   rE   r   r   )r   r   r{   Zreplys   &$  r   r   ZSMTP.starttls  s    " 	##%}}Z(('=? ?

:.3;9"#KLL446++DII<@JJ , HDIDI
 "DN!DN"$D#DO } (44r   c                s   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
# )rB   Zsizezsize=%di  )r   rh   ri   r?   rj   r   r   ry   rx   r   rJ   r   r   r   r   r;   r   )r   	from_addrto_addrsr   mail_optionsrcpt_optionsZ
esmtp_optsZoptionr   r{   Zsenderrsr   s   &&&&&&      r   sendmailZ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           	     s   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-DateNr*   zResent-z0message has more than one 'Resent-' header blockZSenderFromToZBccZCcz
Resent-BccFrB   r   zOne or more source or delivery addresses require internationalized email support, but the server does not advertise the required SMTPUTF8 capabilityT)Zutf8)policyZSMTPUTF8zBODY=8BITMIMEr   )Zlinesep)r   Zget_allrx   r]   r,   r-   Zgetaddressescopyrz   rj   ZUnicodeEncodeErrorr   r   ioZBytesIOZ	generatorZBytesGeneratorr   ZcloneZflattenZgetvaluer   )r   r   r   r   r   r   ZresentZheader_prefixZfZaddr_fieldsZaZmsg_copyZinternationalZbytesmsgZgZflatmsgs   &&&&&&          r   send_messageZ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                s    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   )rV   rJ   rd   )r   rV   rd   r2   r   rJ   Z
SMTP.close  si    		99DDI

99DDI

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

 s   A A .B
c                s    V P                  R 4      pR;V n        V n        / V n        RV n        V P                  4        V# )quitNF)rQ   r   r   rE   r   rJ   )r   Zresr   r   r   Z	SMTP.quit  s;    jj *.. 


r   )rH   rC   rF   rS   r   r   rE   rV   r   rK   r   rd   rG   rD   r   	localhostr    N)r*   )r   r   )r   r   )NNr   r   )4r   r   r   r   rS   rd   rV   r   r   r   r   	SMTP_PORTrb   rL   _GLOBAL_DEFAULT_TIMEOUTr    rP   rR   rT   r[   r^   rI   rl   rr   re   rQ   r   rA   r   r   r   r   r   r   r   r;   r   r   r   r   r   r   r   r   r   r   r   r   rJ   r   r   r"   r#   r%   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                   sd   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  NrD   rG   r   c               st    Vf   \         P                  ! 4       pW`n        \        P	                  WW#VV4       R # r   )r   r   r   r   r    )r   rM   rN   rK   rD   rG   r   s   &&&&$$$r   r    ZSMTP_SSL.__init__  s1     446"LMM$dG(*r   c                s   < 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_   r   )rS   r[   superr^   r   r   rC   )r   rM   rN   rD   Z
new_socket	__class__s   &&&& r   r^   ZSMTP_SSL._get_socket  s[    "!!*tl;,TAJ11*BF** 2 NJr   )r   )r*   r    N)r   r   r   r   SMTP_SSL_PORTrb   rL   r   r    r^   r   r"   __classcell__r   r$      @@r   r   r     s9      %	* & > >	*$(	*26	*	 	r   r   i  c                   sh   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  Zlhlor*   Nc                s,   < \         SV `  WVWER 7       R# ))rK   rG   rD   N)r   r    )r   rM   rN   rK   rG   rD   r   s   &&&&&&r   r    ZLMTP.__init__,  s     	N(6 	 	Ir   c                s  < 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    Z/)rG   Nr\   zconnect fail:r_   )r   rI   rD   r]   rL   ZAF_UNIXZSOCK_STREAMrd   r   Z
settimeoutrV   ra   rS   r[   rJ   re   )r   rM   rN   rG   r   r   r   s   &&&&  r   rI   Z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)rV   rd   r   )r   r   r   r   r   	LMTP_PORTrL   r   r    rI   r   r"   r   r   r   r   r   r     s.      HYt $f.L.LI r   r   Z__main__c                 s    \         P                  P                  V R ,           4       \         P                  P                  4        \         P                  P                  4       P                  4       # )z: )rY   ZstdoutZwriteZflushstdinrv   r/   )promptr<   r   r   r   Q  sD    

$'

yy!!#))++r   r   r   Z,zEnter message, end with ^D:r*   zMessage length is %dr   )r   r   r   r   r   r   r   r	   r
   r   r3   r=   r   )CrL   r   r7   Zemail.utilsr,   Zemail.messageZemail.generatorr   r   r   rX   rY   Zemail.base64mimer   r   Z__all__r   r   r9   r   rw   r   ZcompileZIr   ra   r   r   r   r   r   r   r   r	   r
   r   r3   r4   r=   r>   r?   Zdigestr   r]   r   r   ZImportErrorr   r   ry   r   r   r   r   Zfromaddrr   ZtoaddrsrW   r   r   rv   r|   rx   ZserverrT   r   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