0 gˆÂÝ 0ÜÃÚ iˆÂÝ 0ÜÃÚ$kˆÕÝ „�‰¯Üa–ß=¿JJj"Tâ€vãoܪbÑ¿Û?÷ka ´iˆã@sRdZddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl m Z ddl m Z mZgd¢ZejdZdZGdd„dƒZeƒad Zd Zd Zd&d d„ZGdd„dejƒZGdd„dejƒZGdd„deƒZGdd„deƒZGdd„deƒZGdd„dƒZ dd„Z!e"dk�rNe!ƒZ#e#j$Z$de$v�rje$ %d¡Z&e'e$de&…e(ƒe)ƒd gƒZ*e$e&dd…Z$nddl+Z*e,e*e$ƒZ-e-e#j.e#j/fe#j0e#j1fe#j2e#j3d �Z4e#j5�r,z ddl6Z6Wn,e7�yàe8d!ej9d"�e :d¡Yn0e6 ;d#¡d$Z¡Wne?�yLYn0dS)'a­An RFC 5321 smtp proxy with optional RFC 1870 and RFC 6531 extensions. Usage: %(program)s [options] [localhost:localport [remotehost:remoteport]] Options: --nosetuid -n This program generally tries to setuid `nobody', unless this flag is set. The setuid call will fail if this program is not run as root (in which case, use this flag). --version -V Print the version number and exit. --class classname -c classname Use `classname' as the concrete SMTP proxy class. Uses `PureProxy' by default. --size limit -s limit Restrict the total size of the incoming message to "limit" number of bytes via the RFC 1870 SIZE extension. Defaults to 33554432 bytes. --smtputf8 -u Enable the SMTPUTF8 extension and behave as an RFC 6531 smtp proxy. --debug -d Turn on debugging prints. --help -h Print this message and exit. Version: %(__version__)s If localhost is not given then `localhost' is used, and if localport is not given then 8025 is used. If remotehost is not given then `localhost' is used, and if remoteport is not given, then 25 is used. éN)Úwarn)Ú get_addr_specÚget_angle_addr)Ú SMTPChannelÚ SMTPServerÚDebuggingServerÚ PureProxyÚ MailmanProxyzPython SMTP proxy version 0.3c@seZdZdd„Zdd„ZdS)ÚDevnullcCsdS©N©©ÚselfÚmsgr r ú/usr/lib64/python3.9/smtpd.pyÚwritefóz Devnull.writecCsdSr r ©rr r rÚflushgrz Devnull.flushN)Ú__name__Ú __module__Ú __qualname__rrr r r rr esr Ú z, iÚcCs4tttƒtjd�|r&t|tjd�t |¡dS)N©Úfile)ÚprintÚ__doc__ÚglobalsÚsysÚstderrÚexit)Úcoderr r rÚusagepsr#c@sþeZdZdZdZdZe efdd„¡Ze dd„ƒZ e dd d fd 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)SrréicCs|Sr r )Úxr r rÚ|rzSMTPChannel.cCs.zt|j ¡ƒWSty(|jYS0dSr )ÚmaxÚcommand_size_limitsÚvaluesÚ ValueErrorÚcommand_size_limitrr r rÚmax_command_size_limit~s z"SMTPChannel.max_command_size_limitNFc Cs&tjj|||d�||_||_||_||_||_||_|rF|rFt dƒ‚|rdd|_ d|_ d|_ t |_nd|_ d|_ tdƒ|_ d |_| ¡d|_d |_|j ¡t ¡|_z| ¡|_WnBt�yø}z(| ¡|jd tjkrâ‚WYd}~dSd}~00td t |jƒt!d �| "d|jt#f¡dS)N©ÚmapúFdecode_data and enable_SMTPUTF8 cannot be set to True at the same timerú Ú.ró ó.ó FrzPeer:rz 220 %s %s)$ÚasynchatÚ async_chatÚ__init_