Files
hms-licht-ton/backend/app/services/__pycache__/email_service.cpython-313.pyc
T

122 lines
9.3 KiB
Plaintext
Raw Normal View History

ó
)PjÉãó¶SrSSKrSSKJr SSKJr SSKJr SSKJ r J
r
SSK J r SSK
r
SSKJr SS KJr \R$"\5r\"5r"S
S 5rg) zêEmail service using aiosmtplib for contact and rental confirmation emails.
Includes a failed-email queue: when SMTP fails and a db session is provided,
the email is persisted to the email_queue table for later retry via APScheduler.
éN)ÚMIMEText)Ú
MIMEMultipart)ÚAny)ÚselectÚupdate)Ú AsyncSession)Ú get_settings)Ú
EmailQueuecóâ\rSrSrSrSS\S\S\S\S\S-S \S-S
\4S jjrSS \ \\
4S \S-S
\4S
jjr SS\S\S\S\ \ \\
4S \S-S
\4 Sjjr
\SS \S\S
\4Sjj5rSrg)Ú EmailServiceézCSend transactional emails via SMTP with failed-email queue support.NÚto_addrÚsubjectÚ html_bodyÚ text_bodyÚreply_toÚdbÚreturnc ƒó# [S5n[RUS'XS'X'S'U(aXWS'UR[ U=(d US55 UR[ US55 [
R "U[R[R[R[RSS 9IS
hvN gN![n[RS X5 Ub~[UUUUUS S
S9n URU 5 UR!5IS
hvN [R#SU5 O-![a n
[RSU
5 S
n
A
OS
n
A
ff=fS
nAgS
nAff=f7f)z¡Send an email via aiosmtplib. Returns True on success.
If SMTP fails and a db session is provided, the email is saved to
the email_queue table for later retry.
Ú alternativeÚFromÚToÚSubjectúReply-ToÚplainÚhtmlT©ÚhostnameÚportÚusernameÚpasswordÚ start_tlsNzEmail send failed to %s: %sÚpendingr)rrrrrÚstatusÚattemptszEmail queued for retry: %szFailed to queue email: %sF)rÚsettingsÚ smtp_fromÚattachrÚ
aiosmtplibÚsendÚ smtp_hostÚ smtp_portÚ smtp_userÚ
smtp_passwordÚ ExceptionÚloggerÚerrorr
ÚaddÚcommitÚinfo) ÚselfrrrrrrÚmsgÚexcÚqueuedÚ queue_excs ÚG/a0/usr/workdir/hms-licht-ton-t04/backend/app/services/email_service.pyÚ
send_emailÚEmailService.send_emailsNéô˜MÓÜ׈F‰ ؈D‰ Ø ˆI‰Þ Ø&
‰OØ
”8˜I×°GÓ
”8˜I vÓ Ü—/’/ØÜ!××!×!×ñ
÷
ð
ðñ
øôó Ü L‰LÐÔ ‰~ðIÜ'Ø 'Ø 'Ø"+Ø"+Ø!)Ø(Ø!"ñ—FF˜6”NØŸ)™)›+×—K‘KÐ <¸gÕFøÜ óIÜ—L‘LÐ!<¸i×HûðIúäûð% üsyA1E>Á4ACÃCÃ CÃ
E>ÃCÃ
E;ÃE6Ã43EÄ'D*Ä(EÅE6Å
E.ÅE)Å$E6Å)E.Å.E6Å1E>Å6E;Å;E>Ú contact_datac ƒó¼# SURSS5SURSS5SURSS5SURS S5S
3 nS URSS5S URSS5S
URSS5SURS S5S3 nUR[RSUUURS5US9IShvN $N7f)z0Send contact form data to info@hms-licht-ton.de.zH
<h2>Neue Kontaktanfrage</h2>
<p><strong>Name:</strong> ÚnameÚz(</p>
<p><strong>Email:</strong> Úemailz*</p>
<p><strong>Telefon:</strong> Úphonez;</p>
<p><strong>Nachricht:</strong></p>
<p>Úmessagez
</p>
zNeue Kontaktanfrage
Name: z
Email: z
Telefon: z
Nachricht: Ú
z*Neue Kontaktanfrage ueber hms-licht-ton.de)rrrrrrN)Úgetr;r&r')r5r=rrÚtexts r:Úsend_contact_emailÚEmailService.send_contact_emailLs%éð#à#/×#3Ñ#3°F¸BÓ#?Ð"@ðA$Ø$0×$4Ñ$4°W¸bÓ$AÐ#BðC&Ø&2×&6Ñ&6°wÀÓ&CÐ%DðE à × Ñ ˜Y¨Ó - ð
 ˆðØ% f¨bÓ3Ø"×& Ó5Ø$×°"Ó7Ø&×*¨9°bÓ:¸

ð—_רØ!×% gÓð

÷
ð
ñ
ùs‚CCÃCÃCÚreference_numberÚ
event_nameÚitemsc ƒóâ# SRSU55nSUSUSUSUS3 nSUS US
US 3S RS
U55-nURUSU3UUUS9IShvN $N7f)z-Send rental request confirmation to customer.r@c3ót# UH.nSURSS5SURSS5S3v M0 g7f)z<li>Úequipment_nameÚ Unbekanntz
- Menge: Úquantityéz</li>N©rE©Ú.0Úitems r:Ú <genexpr>Ú8EmailService.send_rental_confirmation.<locals>.<genexpr>qsAéð
âð4—8‘8Ð,¨kÓ;¸:ÀdÇhÁhÈzÐ[\ÓF]ÐE^Ð^cÕ ùs68u(
<h2>Mietanfrage bestätigt – u{</h2>
<p>Vielen Dank für Ihre Mietanfrage bei HMS Licht &amp; Ton.</p>
<p><strong>Veranstaltung:</strong> z1</p>
<p><strong>Referenznummer:</strong> z+</p>
<h3>Artikel:</h3>
<ul>um</ul>
<p>Wir melden uns in Kürze bei Ihnen.</p>
<p>Ihr HMS Licht &amp; Ton Team</p>
zMietanfrage bestaetigt - z
Veranstaltung: z
Referenznummer: z
Artikel:
rDc3ór# UH-nSURSS5SURSS53v M/ g7f)z- rNrOz: rPrQNrRrSs r:rVrWs>éðâ!T—X Ó=¸ÇÁÈÐUVÓ@WÐ?XÕ!ùs57uMietanfrage bestaetigt – )rrrrrN)Újoinr;) r5rrIrJrKrÚ
items_htmlrrFs r:Úsend_rental_confirmationÚ%EmailService.send_rental_confirmationhéð—W‘Wñ
áó
ó
ˆ
ð(Ø(8Ð'9ð:,à,6¨<ð8-Ø-=Ð,>ð?
à
ˆ ð
 ˆð(Ð(8Ð'9ð:Ø(˜*Ø1ð
ði‰iñáóñ 
ð
ð—_‘_ØØ1Ð2BÐ1CÐØØð 
÷
ð
ñ
ùsA&A/Á(A-Á)A/Ú max_attemptsc
ƒóª# UR[[5R[RS:H[R
U:55IShvN nUR
5R5nSnUGHXnU=R
S-
sl[S5n[RUS'URUS'URUS'UR(aURUS 'UR[UR =(d UR"S
55 UR[UR"S 55 [$R&"U[R([R*[R,[R.S S
9IShvN SUlUS-
n[0R3SUR5 GM[ UR95IShvN U$GNR![4aKn[0R7SURU5 UR
UaSUlSnAGSnAGSnAff=fNc7f)zQRetry all pending emails in the queue. Returns count of successfully sent emails.r#NrrQrrrrrrrTrÚsentzRetry succeeded for email to %sz Retry failed for email to %s: %sÚfailed)Úexecuterr