§ WèÄjãó¤—ddlZddlZddlZddlZddlmZmZddlmZddl m Z ddl m Z ddl mZddlmZmZdd lmZhd £ZGd „d ¦«ZdS) éN)Ú ConfigParserÚ SectionProxy)Ú EmailMessage)Ú gethostname)ÚOptional)Úgettexté)Úmail_template_locationÚmail_scripts_location)ÚXRayMailerError>ÚPleskÚcPanelÚ DirectAdmincóö—eZdZdZd„Zedefd„¦«Zedefd„¦«Z defd„Z de efd„Z de efd„Z edd edefd „¦«Zd edd fd„Zd edd fd„Zdedd fd„Z ddededd fd„Zd S)ÚMailerz0 Class contains X-Ray e-mail send logic cóF—tjd¦«|_d|_dS)NÚmailer)ÚloggingÚ getLoggerÚloggerÚ_sender©Úselfs úM/opt/cloudlinux/venv/lib64/python3.11/site-packages/xray/continuous/mailer.pyÚ__init__zMailer.__init__s€ÝÔ'¨Ñ1Ô1ˆŒ ؈Œ ˆ ˆ óÚreturncó—dS)z+ Local mail server address )Ú localhost©rs rÚ mail_serverzMailer.mail_server!s €ð ˆrcóP—|j€| ¦«|_|jS)zG Retrieve 'From' mail address if it is not already set )rÚretrieve_mail_senderrs rÚsenderz Mailer.sender(s'€ð Œ<Ð Ø×4Ò4Ñ6Ô6ˆDŒLØŒ|ÐrcóX—dt¦«›�}| ¦«}|�|n|S)zC 'From' address (control panel admin or dummy one) zxray.continuous@)rÚ admin_email)rÚ dummy_mailÚ admin_mails rr#zMailer.retrieve_mail_sender1s5€ð8­ © ¬ Ð7Ð7ˆ Ø×%Ò%Ñ'Ô'ˆ Ø'Ð3ˆzˆz¸ÐCrcóÚ—| ¦«}|�Ôt›d|›d�} tj|gddd¬¦«}|j ¦«S#tj$r4}|j d|t|¦«¦«Yd}~dSd}~wtttj f$r4}|j d|t|¦«¦«Yd}~dSd}~wwxYwdS)z< Try to retrieve control panel admin e-mail Nú/Ú_emailT)Úcapture_outputÚtextÚcheckz% script failed with: %sz Failed to run script %s with: %s) Úget_control_panelr Ú subprocessÚrunÚstdoutÚstripÚCalledProcessErrorrÚerrorÚstrÚOSErrorÚ ValueErrorÚSubprocessError)rÚpanelÚget_email_scriptÚpÚes rr&zMailer.admin_email9sE€ð×&Ò&Ñ(Ô(ˆØ Ð Ý"7ÐGÐG¸%ÐGÐGÐGÐ ð <Ý”NÐ$4Ð#5Ø26¸TÈðOñOôO�à”x—~’~Ñ'Ô'Ð'øÝÔ0ð <ð <ð <Ø” ×!Ò!Ð"<Ø"2µC¸±F´Fñ<ô<ð<ð<ð<ð<ð<ð<ð<øøøøå�Z­Ô)CÐDð <ð <ð <Ø” ×!Ò!Ð"DØ"2µC¸±F´Fñ<ô<ð<ð<ð<ð<ð<ð<ð<øøøøð <øøøð Ð s#¥1AÁC(Á&)BÂC(Â4)C#Ã#C(cóè— tjddgddd¬¦«j ¦«}|tvr|j d|¦«dS|S#tjtf$r3}|j dt|¦«¦«Yd}~dSd}~wtttj f$r3}|j dt|¦«¦«Yd}~dSd}~wwxYw) z( Get control panel name Úcldetectz--detect-cp-nameT)r.r-r,zUnknown control panel name: %sNzcldetect utility failed with %sz&Failed to run cldetect utility with %s) r0r1r2r3Ú KNOWN_PANELSrr5r4ÚAttributeErrorr6r7r8r9)rr:r=s rr/zMailer.get_control_panelKs=€ð &Ý”NØÐ/Ð0Ø Ø#ð%ñ%ô%ô&,¯EªE©G¬Gð ð�LÐ(Ð(Ø” ×!Ò!Ð"BÀEÑJÔJÐJØ�t؈LøÝÔ-­~Ð>ð &ð &ð &Ø ŒK× Ò Ð?Ý! !™fœfñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøøå�¥ZÔ%?Ð@ð &ð &ð &Ø ŒK× Ò ÐFÝ! !™fœfñ &ô &ð &ð &ð &ð &ð &ð &ð &øøøøð &øøøs*‚AAÁAÁC1Á1(BÂC1Â>(C,Ã,C1ÚgreetingÚnamecó—t›d|›d�}tj |¦«r-t d¬¦«}| |¦«|dSt td |t¦«¦«¦«‚)zF Get preformatted data for e-mail by name of template r*z.iniN)Ú interpolationÚdataz Failed to find template {} in {}) r ÚosÚpathÚexistsrÚreadr Ú_Úformat)rCÚtmplÚconfigs rÚ read_templatezMailer.read_template_s„€õ )Ð5Ð5¨4Ð5Ð5Ð5ˆÝ Œ7�>Š>˜$Ñ Ô ð "Ý!°Ð5Ñ5Ô5ˆFØ �KŠK˜Ñ Ô Ð Ø˜&”>Ð !Ý�aÐ B× IÒ IÈ$ÕPfÑ gÔ gÑhÔhÑiÔiÐirÚmessageNcóà—|j d¦« tj|jŽ5}| |¦«}|j d|¦«ddd¦«dS#1swxYwYdS#tj$r$}tdt|¦«›�¦«‚d}~wttf$r1}ttd¦«t|¦«z¦«‚d}~wwxYw)z= Send preformatted e-mail via localhost SMTP zTry to send via smtpzSend result: %sNzsmtp mailing failed: zsmtp connection failed: %s) rÚinfoÚsmtplibÚSMTPr!Ú send_messageÚ SMTPExceptionr r6ÚConnectionErrorr7rK)rrPÚserverÚresultr=s rÚ _smtp_sendzMailer._smtp_sendksC€ð Œ ×ÒÐ/Ñ0Ô0Ð0ð LÝ”˜tÔ/Ð0ð <°FØ×,Ò,¨WÑ5Ô5�Ø” × Ò Ð!2°FÑ;Ô;Ð;ð <ð <ð <ñ <ô <ð <ð <ð <ð <ð <ð <ð <øøøð <ð <ð <ð <ð <ð <øõÔ$ð Dð Dð DÝ!Ð"B½#¸a¹&¼&Ð"BÐ"BÑCÔCÐ CøøøøÝ¥Ð)ð Lð Lð LÝ!¥!Ð$@Ñ"AÔ"AÅCÈÁFÄFÑ"JÑKÔKÐ Køøøøð LøøøsFœA:¯1A-Á A:Á-A1Á1A:Á4A1Á5A:Á:C- B(Â(C-Â<,C(Ã(C-có.—|j d¦«gd¢} tj|| ¦«ddd¬¦«dS#t tjf$r1}ttd¦«t|¦«z¦«‚d}~wwxYw)z? Send preformatted e-mail via sendmail utility z Try to send via sendmail utility)z/usr/sbin/sendmailz-tz-oiT)Úinputr,r-r.zsendmail utility failed with %sN) rrRr0r1Ú as_stringr7r4r rKr6)rrPÚcmdr=s rÚ _console_sendzMailer._console_sendys·€ð Œ ×ÒÐ;Ñ<Ô<Ð<Ø1Ð1Ð1ˆð QÝ ŒN˜3Ø!(×!2Ò!2Ñ!4Ô!4Ø*.Ø $¨Dð 2ñ 2ô 2ð 2ð 2ð 2øõ�Ô6Ð7ð Qð Qð QÝ!¥!Ð$EÑ"FÔ"FÍÈQÉÌÑ"OÑPÔPÐ Pøøøøð Qøøøs +A Á BÁ#,BÂBÚmailcó¨— | |¦«dS#t$r®}|j t |¦«¦« | |¦«n_#t$rR}|j t |¦«¦«|j d|d¦«Yd}~nd}~wwxYwYd}~dSYd}~dSd}~wwxYw)zm Try to send mail via localhost smtp server, if fails -- try to use sendmail utility z3Both smtp and sendmail failed to send message to %sÚToN)rZr rr5r6r_Úcritical)rr`r=s rÚ_sendz Mailer._send‡s €ð Ø �OŠO˜DÑ !Ô !Ð !Ð !Ð !øÝð ð ð Ø ŒK× Ò �c !™fœfÑ %Ô %Ð %ð Ø×"Ò" 4Ñ(Ô(Ð(Ð(øÝ"ð ð ð Ø” ×!Ò!¥# a¡&¤&Ñ)Ô)Ð)Ø” ×$Ò$ØIؘ”Jñ ô ð ð ð ð ð ð øøøøð øøøð)Ð(Ð(Ð(Ð(Ð(ð ð ð ð ð ð øøøøð  øøøs?‚™ C£'C Á A!Á C Á! B=Á+AB8Â3C Â8B=Â=C à CÚ recipientÚtemplatec ó€—| |¦«}t¦«}|d|d<|j|d<||d<| |d|z¦«| |d|zd¬¦«|j d| ¦«¦«| |¦«dS) NÚsubjectÚSubjectÚFromrbr-Úhtml)ÚsubtypezGenerated mail --> %s) rOrr$Ú set_contentÚadd_alternativerrRr]rd)rrerfÚkwargsrFÚmsgs rÚ send_mailzMailer.send_mail˜s²€ð×!Ò! (Ñ+Ô+ˆå‰nŒnˆØ˜iœˆˆI‰Ø”kˆˆF‰ ؈ˆD‰ Ø �Š˜˜Vœ  vÑ-Ñ.Ô.Ð.Ø ×Ò˜D œL¨6Ñ1¸6ÐÑBÔBÐBà Œ ×ÒÐ0°#·-²-±/´/ÑBÔBÐBà � Š �3‰Œˆˆˆr)rB)Ú__name__Ú __module__Ú __qualname__Ú__doc__rÚpropertyÚtupler!r6r$r#rr&r/Ú staticmethodrrOrrZr_rdrqr rrrrs½€€€€€ððððððð˜Uðððñ„Xðð ð˜ðððñ„XððD cðDðDðDðDð<˜X cœ]ð<ð<ð<ð<ð$& 8¨C¤=ð&ð&ð&ð&ð(ð jð j˜Cð j°ð jð jð jñ„\ð jð L ,ð L°4ð Lð Lð Lð Lð Q \ð Q°dð Qð Qð Qð Qð ˜,ð ¨4ð ð ð ð ð&#-ððØ ðàðð $ððððððrr)rrGrSr0Ú configparserrrÚ email.messagerÚsocketrÚtypingrÚxrayrrKÚinternal.constantsr r Úinternal.exceptionsr r@rr rrúr€sðð€€€Ø € € € Ø€€€ØÐÐÐØ3Ð3Ð3Ð3Ð3Ð3Ð3Ð3Ø&Ð&Ð&Ð&Ð&Ð&ØÐÐÐÐÐØÐÐÐÐÐàÐÐÐÐÐØNÐNÐNÐNÐNÐNÐNÐNØ1Ð1Ð1Ð1Ð1Ð1ð2Ð1Ð1€ ðNðNðNðNðNñNôNðNðNðNr