python (3.11.7)

(root)/
lib/
python3.11/
__pycache__/
smtpd.cpython-311.opt-2.pyc

eyD	ddlZddlZddlZddlZddlZddlZddlZddlmZm	Z	ddl
mZmZgdZ
dZeeedddlZddlZejdZdZGd	d
ZeadZdZd
Zd$dZGddejZGddejZGddeZGddeZ GddZ!dZ"edkrMe"Z#e#j$Z$de$vrJe$%dZ&e'e$de&e(e)dgZ*e$e&dzdZ$nddl+Z*e,e*e$Z-e-e#j.e#j/fe#j0e#j1fe#j2e#j3Z4e#j5r	ddl6Z6n-#e7$r%e8dej9 ej:dYnwxYwe6j;d!d"Z<	ej5e<n-#e=$r%e8d#ej9 ej:dYnwxYw	ej>dS#e?$rYdSwxYwdS)%N)_deprecatedwarn)
get_addr_specget_angle_addr)SMTPChannel
SMTPServerDebuggingServer	PureProxyzThe {name} module is deprecated and unmaintained and will be removed in Python {remove}.  Please see aiosmtpd (https://aiosmtpd.readthedocs.io/) for the recommended replacement.))removezPython SMTP proxy version 0.3ceZdZdZdZdS)DevnullcdSNselfmsgs  9/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/smtpd.pywritez
Devnull.writeicdSrrrs rflushz
Devnull.flushjrrN)__name__
__module____qualname__rrrrrrrhs"rr
z, ictttztj|rt|tjtj|dS)Nfile)print__doc__globalssysstderrexit)coders  rusager,ssN	'GII
CJ////
$
c
####HTNNNNNrc*eZdZdZdZdZejefdZe	dZ
edddfdZd	Z
d
Ze	dZejdZe	d
ZejdZe	dZejdZe	dZejdZe	dZejdZe	dZejdZe	dZejdZe	dZejdZe	dZejdZe	dZejdZe	dZejd Zd!Zd"Zd#Zd$Zd%Zd&Z d'Z!d(Z"d)Z#d*Z$d+Z%d,Z&d-Z'd.Z(d/Z)d0Z*d1Z+dS)2rric|Srr)xs r<lambda>zSMTPChannel.<lambda>sqrc~	t|jS#t$r
|jcYSwxYwr)maxcommand_size_limitsvalues
ValueErrorcommand_size_limitrs rmax_command_size_limitz"SMTPChannel.max_command_size_limitsN	+t/6688999	+	+	+****	+s%(<<NFcZtj|||||_||_||_||_||_||_|r|rtd|r"d|_
d|_d|_t|_n)d|_
d|_td|_d	|_|d|_d
|_|jt+j|_	||_nB#t4$r5}||jt8jkrYd}~dSd}~wwxYwt=dt?|jt@|!d
|jdtDdS)NmapFdecode_data and enable_SMTPUTF8 cannot be set to True at the same timer!
.r
.
FzPeer:r#z220  )#asynchat
async_chat__init__smtp_serverconnaddrdata_size_limitenable_SMTPUTF8_decode_datar6_emptystring_linesep_dotsepNEWLINE_newlineord_set_rset_state
seen_greeting
extended_smtpr4clearsocketgetfqdnfqdngetpeernamepeerOSErrorcloseerrnoENOTCONNr%reprDEBUGSTREAMpush__version__)	rserverrGrHrIr;rJdecode_dataerrs	         rrEzSMTPChannel.__init__s$$T4S$999!		..'	A{	A@AA
A		" "D"DMDL#DMM #D#DMt99DL!DM" &&(((N$$		((**DII			
JJLLLyEN**FFFFF
		gtDI[9999			KK899999sD
E%*EEc	|j|_d|_g|_d|_d|_|ddS)NFrr?)COMMAND
smtp_statemailfromrcpttosrequire_SMTPUTF8	num_bytesset_terminatorrs r_set_post_data_statez SMTPChannel._set_post_data_statesE=,
 %G$$$$$rcL	|d|_g|_dSNr!)rn
received_datareceived_linesrs rrRzSMTPChannel._set_rset_states-<!!### rc<tdtd|jS)NzTAccess to __server attribute on SMTPChannel is deprecated, use 'smtp_server' insteadrDeprecationWarningrFrs r__serverzSMTPChannel.__servers*();Q	@	@	@rc@tdtd||_dS)NzRSetting __server attribute on SMTPChannel is deprecated, set 'smtp_server' insteadrtrurvalues  rrwzSMTPChannel.__servers/();Q	@	@	@ rc<tdtd|jS)NzUAccess to __line attribute on SMTPChannel is deprecated, use 'received_lines' insteadrtrrvrrrs r__linezSMTPChannel.__lines*+,>	C	C	C""rc@tdtd||_dS)NzSSetting __line attribute on SMTPChannel is deprecated, set 'received_lines' insteadrtr|rys  rr}zSMTPChannel.__lines/+,>	C	C	C#rc<tdtd|jS)NzRAccess to __state attribute on SMTPChannel is deprecated, use 'smtp_state' insteadrtrrvrhrs r__statezSMTPChannel.__states&'(:A	?	?	?rc@tdtd||_dS)NzPSetting __state attribute on SMTPChannel is deprecated, set 'smtp_state' insteadrtrrys  rrzSMTPChannel.__states)'(:A	?	?	?rc<tdtd|jS)NzXAccess to __greeting attribute on SMTPChannel is deprecated, use 'seen_greeting' insteadrtrrvrSrs r
__greetingzSMTPChannel.__greeting**+=q	B	B	B!!rc@tdtd||_dS)NzVSetting __greeting attribute on SMTPChannel is deprecated, set 'seen_greeting' insteadrtrrys  rrzSMTPChannel.__greeting/*+=q	B	B	B"rc<tdtd|jS)NzSAccess to __mailfrom attribute on SMTPChannel is deprecated, use 'mailfrom' insteadrtrrvrirs r
__mailfromzSMTPChannel.__mailfroms&%&8!	=	=	=}rc@tdtd||_dS)NzQSetting __mailfrom attribute on SMTPChannel is deprecated, set 'mailfrom' insteadrtrrys  rrzSMTPChannel.__mailfroms)%&8!	=	=	=


rc<tdtd|jS)NzQAccess to __rcpttos attribute on SMTPChannel is deprecated, use 'rcpttos' insteadrtrrvrjrs r	__rcpttoszSMTPChannel.__rcpttoss&$%7	<	<	<|rc@tdtd||_dS)NzOSetting __rcpttos attribute on SMTPChannel is deprecated, set 'rcpttos' insteadrtrrys  rrzSMTPChannel.__rcpttoss)$%7	<	<	<rc<tdtd|jS)NzTAccess to __data attribute on SMTPChannel is deprecated, use 'received_data' insteadrtrrvrqrs r__datazSMTPChannel.__datarrc@tdtd||_dS)NzRSetting __data attribute on SMTPChannel is deprecated, set 'received_data' insteadrtrrys  rrzSMTPChannel.__datarrc<tdtd|jS)NzKAccess to __fqdn attribute on SMTPChannel is deprecated, use 'fqdn' insteadrtrrvrXrs r__fqdnzSMTPChannel.__fqdn
&!"4a	9	9	9yrc@tdtd||_dS)NzISetting __fqdn attribute on SMTPChannel is deprecated, set 'fqdn' insteadrtrrys  rrzSMTPChannel.__fqdn)!"4a	9	9	9			rc<tdtd|jS)NzKAccess to __peer attribute on SMTPChannel is deprecated, use 'peer' insteadrtrrvrZrs r__peerzSMTPChannel.__peerrrc@tdtd||_dS)NzISetting __peer attribute on SMTPChannel is deprecated, set 'peer' insteadrtrrys  rrzSMTPChannel.__peerrrc<tdtd|jS)NzKAccess to __conn attribute on SMTPChannel is deprecated, use 'conn' insteadrtrrvrGrs r__connzSMTPChannel.__conn#rrc@tdtd||_dS)NzISetting __conn attribute on SMTPChannel is deprecated, set 'conn' insteadrtrrys  rrzSMTPChannel.__conn(rrc<tdtd|jS)NzKAccess to __addr attribute on SMTPChannel is deprecated, use 'addr' insteadrtrrvrHrs r__addrzSMTPChannel.__addr.rrc@tdtd||_dS)NzISetting __addr attribute on SMTPChannel is deprecated, set 'addr' insteadrtrrys  rrzSMTPChannel.__addr3rrcztj|t|dz|jrdnddS)Nr=utf-8ascii)rCrDrabytesrkrs  rrazSMTPChannel.push:sQ  u&LT%:G''(I(I	J	J	J	J	JrcZd}|j|jkr|j}n|j|jkr|j}|r
|j|krdS|r|xjt
|z
c_|jr*|j	t|ddS|j	|dS)Nr)rhrgr8DATArIrllenrKrrappendstr)rdatalimits   rcollect_incoming_dataz!SMTPChannel.collect_incoming_data?s?dl**/EE
_	
)
)(E	(T^e++F
	(NNc$ii'NN	-&&s4'9'9:::::&&t,,,,,rc|j|j}tdt	|t
g|_|j|jkr!|jdc}|_|s|	ddS|j
st|d}|d}|dkr|
}d}n;|d|
}||dzd}|jr
|j|n|j}||kr|	ddSt%|d	|zd}|s|	d
|zdS||dS|j|jkr|	dd|_dS|jr.|j|jkr|	dd|_dSg}||jD]H}	|	r/|	d|jkr||	dd3||	I|j||_|j|j|j|jf}
i}|j
s|j|jd
}|j j!|
i|}|"|s|	ddS|	|dS)NzData:r#rz500 Error: bad syntaxrrBr.z500 Error: line too longsmtp_z&500 Error: command "%s" not recognizedz451 Internal confusionz552 Error: Too much mail data)mail_optionsrcpt_options250 OK)#rLjoinrrr%r_r`rhrgrlrarKrfindupperstriprTr4r7getattrrrIsplitrMrNrrPrqrZrirjrrrFprocess_messagern)
rlineszicommandargmax_szmethodrtextargskwargsstatuss
             rfound_terminatorzSMTPChannel.found_terminatorOs %%d&9::
gtDzz4444 ?dl**!%B
		1222$
*4))		#A1uu**,,rr(..**1Q344j&&((-Kd.w77373J
F{{		4555T7W#4d;;F
		BWLMMMF3KKKF$)++		2333!"#
9M(M(M		9:::!"D

4=11
&
&&DGt|33KKQRR))))KK%%%%!%!3!3D!9!9DIt}dlD<NODF$
$($5$($56T%5tFvFFF%%'''
"		(#####		&!!!!!rc|s|ddS|jr|ddS|||_|d|jzdS)Nz501 Syntax: HELO hostname503 Duplicate HELO/EHLOz250 %s)rarSrRrXrrs  r	smtp_HELOzSMTPChannel.smtp_HELOs~	II1222F	II/000F 		(TY&'''''rc(|s|ddS|jr|ddS|||_d|_|d|jz|jr2|d|jz|jdxxdz
cc<|js|d|jr*|d	|jdxxd
z
cc<|ddS)Nz501 Syntax: EHLO hostnamerTz250-%sz250-SIZE %sMAILz250-8BITMIMEz250-SMTPUTF8
z250 HELP)	rarSrRrTrXrIr4rKrJrs  r	smtp_EHLOzSMTPChannel.smtp_EHLOs5	II1222F	II/000F !		(TY&'''	3IImd&::;;;$V,,,2,,, 	&IIn%%%	3IIn%%%$V,,,2,,,		*rcb|r|ddS|ddS)Nz501 Syntax: NOOPrrars  r	smtp_NOOPzSMTPChannel.smtp_NOOPs;	 II()))))IIhrcX|d|dS)Nz221 Bye)raclose_when_doners  r	smtp_QUITzSMTPChannel.smtp_QUITs,		)rct|}|d||kr||dSdSrp)rrr)rkeywordrkeylens    r_strip_command_keywordz"SMTPChannel._strip_command_keywordsKWww<7**vww<%%'''rrc|sdS|drt|\}}nt|\}}|s||fS|j|fS)N)r!r!<)lstrip
startswithrr	addr_spec)rraddressrests    r_getaddrzSMTPChannel._getaddrsq	6::<<""3''	/*3//MGTT)#..MGT	!D=  $&&rci}|D]?}|d\}}}|r|r|sdS|r|nd||<@|S)N=T)	partitionisalnum)rparamsresultparameqrzs      r
_getparamszSMTPChannel._getparamssn	2	2E$s33E2u==??
b

tt%'1EETF5MM
rc|rNd}|}|dkr|ddS|dkr|ddS|dkr%d}|jr||z
}||dS|dkr%d	}|jr||z
}||dS|d
kr|ddS|dkr|d
dS|dkr|ddS|dkr|ddS|dkr|ddS|ddS|ddS)N [SP <mail-parameters>]EHLOz250 Syntax: EHLO hostnameHELOz250 Syntax: HELO hostnamerz 250 Syntax: MAIL FROM: <address>RCPTz250 Syntax: RCPT TO: <address>rz250 Syntax: DATARSETz250 Syntax: RSETNOOPz250 Syntax: NOOPQUITz250 Syntax: QUITVRFYz250 Syntax: VRFY <address>zD501 Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFYzD250 Supported commands: EHLO HELO MAIL RCPT DATA RSET NOOP QUIT VRFY)rrarT)rrextendedlc_argrs     r	smtp_HELPzSMTPChannel.smtp_HELPs 	-0HYY[[F		5666666!!		5666666!!8%$8OC		#6!!6%$8OC		#6!!		,-----6!!		,-----6!!		,-----6!!		,-----6!!		677777		566666
II,
-
-
-
-
-rc|rK||\}}|r|ddS|d|zdS|ddS)NzB252 Cannot VRFY user, but will accept message and attempt deliveryz502 Could not VRFY %sz501 Syntax: VRFY <address>)rra)rrrrs    r	smtp_VRFYzSMTPChannel.smtp_VRFYs	4"mmC00OGV
9		122222		1C788888II233333rcV|js|ddStd|td}|jr|dz
}|||dS|d|}||\}}|s||dS|js|r||dS|jr|ddS|	|_
||j
}|||dS|js1|
dd	}|d
vr|ddS|jr=|
dd
}|durd|_n|d
ur|ddS|
dd}|ra|s||dS|jr/t%||jkr|ddSt'|dkr|ddS||_td|jt|ddS)N503 Error: send HELO firstz	===> MAILr#z 501 Syntax: MAIL FROM: <address>rzFROM:z503 Error: nested MAIL commandBODY7BIT)r8BITMIMEz1501 Error: BODY can only be one of 7BIT, 8BITMIMESMTPUTF8FTz&501 Error: SMTPUTF8 takes no argumentsSIZEz:552 Error: message size exceeds fixed maximum message sizerz:555 MAIL FROM parameters not recognized or not implementedzsender:r)rSrar%r`rTrrrirrrrrKpoprJrkisdigitrIintrkeys)rr	syntaxerrrrbodysmtputf8sizes        r	smtp_MAILzSMTPChannel.smtp_MAILs!	II2333F
k3[11116		322I;IIi   F))'377--,,	IIi   F!	f	IIi   F=	II6777F"LLNN0022!233>IIi   F 	::ff--D///		MNNN	zz*e44H4(,%%&&		BCCCzz&$''	<<>>
		)$$$%
#d))d6J*J*J		VWWWv{{}}!!IIRSSSF

i[9999		(rc|js|ddStd|t|js|ddSd}|jr|dz
}|||dS|d|}||\}}|s||dS|js|r||dS|	|_
||j
}|||dSt|
dkr|d	dS|j|td
|jt|ddS)Nrz	===> RCPTr#z503 Error: need MAIL commandz501 Syntax: RCPT TO: <address>rzTO:rz8555 RCPT TO parameters not recognized or not implementedzrecips:r)rSrar%r`rirTrrrrrrrrrjr)rrrrrs     r	smtp_RCPTzSMTPChannel.smtp_RCPT:s!	II2333F
k3[1111}	II4555F4		322I;IIi   F))%55--,,	IIi   F!	f	IIi   F"LLNN0022!233>IIi   Fv{{}}!!IIPQQQFG$$$
iK8888		(rc|r|ddS||ddS)Nz501 Syntax: RSETr)rarRrs  r	smtp_RSETzSMTPChannel.smtp_RSET]sL	II()))F		(rc|js|ddS|js|ddS|r|ddS|j|_|d|ddS)Nrz503 Error: need RCPT commandz501 Syntax: DATAs
.
z#354 End data with <CR><LF>.<CR><LF>)rSrarjrrhrmrs  r	smtp_DATAzSMTPChannel.smtp_DATAds!	II2333F|	II4555F	II()))F)L)))		788888rc0|ddS)Nz502 EXPN not implementedrrs  r	smtp_EXPNzSMTPChannel.smtp_EXPNss		,-----r),rrrrgrr7collectionsdefaultdictr4propertyr8DATA_SIZE_DEFAULTrErnrR_SMTPChannel__serversetter_SMTPChannel__line_SMTPChannel__state_SMTPChannel__greeting_SMTPChannel__mailfrom_SMTPChannel__rcpttos_SMTPChannel__data_SMTPChannel__fqdn_SMTPChannel__peer_SMTPChannel__conn_SMTPChannel__addrrarrrrrrrrrrrrrrrrrrrrrzsGD1+1;M2P2P2PQQ
++X+<M5e%:%:%:%:N%%%!!!  X _!!_!
##X#]$$]$
X
^  ^ 
""X"###
X
X
""X"]##]#
X]]
X]]
X]]
X]]JJJ

-
-
- ;";";"|
(
(
(,   
	'	'	'			!-!-!-F	4	4	4444l!!!F999.....rrc.eZdZeZedddfdZdZdZdS)rNFc	||_||_||_||_||_|r|rtdtj||	tj
|dtji}||dd|dd|
|||dt!|jjdt'jt'jd|d	|t*
dS#|xYw)Nr<r:typerr.z started at z
	Local addr: z
	Remote addr:r#)
_localaddr_remoteaddrrIrJrKr6asyncore
dispatcherrErVgetaddrinfoSOCK_STREAM
create_socketset_reuse_addrbindlistenr%	__class__rtimectimer`r\)r	localaddr
remoteaddrrIr;rJrdgai_resultss        rrEzSMTPServer.__init__{sj$%..'	A{	A@AA
A$$Ts$333	: ,iF282DFFK{1~a0+a.2CDDD!!!IIi   KKNNN

'''DIKK)@)@)@)@		::'-8
:
:
:
:
:
:		JJLLLs
BD00Ec	tdt|zt|||||j|j|j|j}dS)NzIncoming connection from %sr#)r%r_r`
channel_classrI_maprJrK)rrGrHchannels    rhandle_acceptedzSMTPServer.handle_acceptedsY
+d4jj8{KKKK$$T%)%)%)%9%)Y%)%9%)%6
88rc	tr)NotImplementedErrorrrZrirjrrs      rrzSMTPServer.process_messages	<"!r)	rrrrr:rrEr=rrrrrrwsWM"3!&E::::8888"""""rrceZdZdZdZdS)r	cPd}|}|D]}|rU|sSd|dz}t|ts"t|d}t|d}t|tst|}t|dS)Nr.zX-Peer: rr)
splitlines
isinstancerr_encoder%)rrZr	inheaderslinesr
peerheaders       r_print_message_contentz&DebuggingServer._print_message_contents	!!		D

'$q'1
!$,,B!%j&7&7&@&@!A!AJj!!!	dC((
"Dzz$KKKK		rc&td|rZ|drtd|dz|drtd|dz|||tddS)Nz%---------- MESSAGE FOLLOWS ----------rzmail options: %srzrcpt options: %s
z%------------ END MESSAGE ------------)r%getrIr@s      rrzDebuggingServer.process_messages
5666	Ezz.))
C(6.+AABBBzz.))
E*VN-CCDDD##D$///
566666rN)rrrrIrrrrr	r	s2"77777rr	c*eZdZfdZdZdZxZS)r
c~d|vr|drtdtt|j|i|dS)NrJz$PureProxy does not support SMTPUTF8.)r6superr
rE)rrrr3s   rrEzPureProxy.__init__sP&&62C+D&CDDD'i'888888rc|d}d}|D]}|sn|dz
}||d|dzt|}||||}td|tdS)Nr rr.z
X-Peer: %szwe got some refusals:r#)rinsertrOr_deliverr%r`)	rrZrirjrrGrrrefuseds	         rrzPureProxy.process_messages

4  
		D

FAA
QtAw.///||E""--'488
%w[AAAAAArcPddl}i}	|}||jd|jd	||||}|n#|wxYwn#|j$r'}tdt|j	}Yd}~nkd}~wt|jf$rT}td|jtt|dd}t|dd	}	|D]	}
||	f||
<
Yd}~nd}~wwxYw|S)
Nrr.zgot SMTPRecipientsRefusedr#got	smtp_code
smtp_errorignore)smtplibSMTPconnectr*sendmailquitSMTPRecipientsRefusedr%r`
recipientsr[
SMTPExceptionr3r)rrirjrrYrRseerrcodeerrmsgrs           rrQzPureProxy._deliversb	/A
IId&q)4+;A+>???
**Xw==,	#	#	#-K@@@@lGGGGGG./	/	/	/%;7777ab11GQh77F
/
/%v.


/
/
/
/
/	/s=AB	A5 B5BB
D#B;;D#A
DD#)rrrrErrQ
__classcell__)r3s@rr
r
sY99999
BBBrr
ceZdZdZdZdZdZdS)OptionsTr
NF)rrrsetuid	classname
size_limitrJrrrrhrhs"
FIJOOOrrhc	tjtjdddgd\}}n,#tj$r}t	d|Yd}~nd}~wwxYwt}|D]\}}|dvrt	d|dvr)t
ttjdF|dvrd|_	R|d	vr||_
^|d
vr
tjao|dvrd|_
{|d
vrQ	t|}||_#t
d|ztjtjdYxYwt!|dkrd}d}nmt!|dkr|d}d}nOt!|dkr|d}|d}n+t	ddt"|z|d}	|	dkrt	dd|z|d|	|_	t||	dzd|_n##t,$rt	dd|zYnwxYw|d}	|	dkrt	dd|z|d|	|_	t||	dzd|_n##t,$rt	dd|zYnwxYw|S)Nr.z	nVhc:s:du)zclass=nosetuidversionhelpzsize=debugr
)z-hz--helpr)z-Vz	--version)z-nz
--nosetuidF)z-cz--class)z-dz--debug)z-uz
--smtputf8T)z-sz--sizezInvalid size: r#zlocalhost:8025zlocalhost:25rtrzInvalid arguments: %s:zBad local spec: %szBad local port: %szBad remote spec: %szBad remote port: %s)getoptr(argverrorr,rhr%rbr*rirjr)r`rJrrkr
COMMASPACErr	localhost	localportr6
remotehost
remoteport)
optsrrboptionsoptrint_size	localspec
remotespecrs
          r	parseargsrsN]HQRRL+



dd<
aiiGS"""!HHHH
'
'
'+HQKKKK
(
(
("GNN
%
%
% #G
%
%
%*KK
(
(
(&*G##
$
$
$
s88%-""
&,3:>>>>
%4yy1}}$	#

	TQG	#

	TQG	!W


a(:??4+@+@@AAA	sA1uu
a%	1222!"1"
G3	!A#$$00333
a%	1222223A1uu
a&3444#BQBG5 AaCDD!122555
a&3444445NsD-0AAA,D4D9H  I?IJ!!KK__main__r>r.)rJz7Cannot import module "pwd"; try running with -n option.r#nobodyrtz3Cannot setuid "nobody"; try running with -n option.)r!)@r(osr]rrr4rVrwarningsrremail._header_value_parserrr__all___DEPRECATION_MSGrr+rCrsprogramrbrr`rOrurr,rDrr,rr	r
rhrr{rjrfindlastdot
__import__r'localsmodrrclass_rvrwrxryrkrJproxyripwdImportErrorr%r)r*getpwnamrPermissionErrorloopKeyboardInterruptrrr<module>rs+N


				







&&&&&&&&DDDDDDDD#H&w7777
(1+-
gii


z.z.z.z.z.(%z.z.z.zJ"J"J"J"J"$J"J"J"Z77777j777<*****
***Z???DzikkG!I
i//#&&j8G8,ggiiB4HHgaijj)		
WS)
$
$FFG%w'89&(:;%w7N
P
P
PE~	JJJJ			EKRUR\]]]]CHQKKKKK	h''*	BIf			EGcjYYYYCHQKKKKK	





9s6;F'F*)F*G'G?>G?HHH