fix: Polish diacritics and header contrast in email templates

- Added proper Polish characters (ą, ę, ó, ł, ś, ć, ż, ź, ń)
- Improved header contrast with darker gradient and text-shadow
- Added meta charset UTF-8 for proper encoding
- Fixed warning box text color for better readability

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Maciej Pienczyn 2026-01-14 11:15:38 +01:00
parent c1874b73e6
commit fdeb9ffd19

View File

@ -336,19 +336,19 @@ def send_password_reset_email(email: str, reset_url: str) -> bool:
Returns: Returns:
True if sent successfully, False otherwise True if sent successfully, False otherwise
""" """
subject = "Reset hasla - Norda Biznes Hub" subject = "Reset hasła - Norda Biznes Hub"
body_text = f"""Otrzymales ten email, poniewaz zazadano resetowania hasla dla Twojego konta Norda Biznes Hub. body_text = f"""Otrzymałeś ten email, ponieważ zażądano resetowania hasła dla Twojego konta Norda Biznes Hub.
Aby zresetowac haslo, kliknij w ponizszy link: Aby zresetować hasło, kliknij w poniższy link:
{reset_url} {reset_url}
Link bedzie wazny przez 1 godzine. Link będzie ważny przez 1 godzinę.
Jesli nie zazadales resetowania hasla, zignoruj ten email. Jeśli nie zażądałeś resetowania hasła, zignoruj ten email.
--- ---
Norda Biznes Hub - Katalog Firm Czlonkowskich Norda Biznes Hub - Katalog Firm Członkowskich
https://nordabiznes.pl https://nordabiznes.pl
""" """
@ -356,45 +356,47 @@ https://nordabiznes.pl
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8">
<style> <style>
body {{ font-family: 'Inter', Arial, sans-serif; line-height: 1.6; color: #1e293b; }} body {{ font-family: 'Inter', Arial, sans-serif; line-height: 1.6; color: #1e293b; }}
.container {{ max-width: 600px; margin: 0 auto; padding: 20px; background: #f8fafc; }} .container {{ max-width: 600px; margin: 0 auto; padding: 20px; background: #f8fafc; }}
.header {{ background: linear-gradient(135deg, #2563eb, #1e40af); color: white; padding: 30px; text-align: center; border-radius: 8px 8px 0 0; }} .header {{ background: linear-gradient(135deg, #1e40af, #1e3a8a); color: white; padding: 30px; text-align: center; border-radius: 8px 8px 0 0; }}
.header h1 {{ margin: 0; font-size: 28px; font-weight: 700; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }}
.content {{ background: white; padding: 30px; border-radius: 0 0 8px 8px; }} .content {{ background: white; padding: 30px; border-radius: 0 0 8px 8px; }}
.button {{ display: inline-block; padding: 14px 32px; background: #2563eb; color: white; text-decoration: none; border-radius: 8px; margin: 20px 0; font-weight: 600; }} .button {{ display: inline-block; padding: 14px 32px; background: #2563eb; color: white; text-decoration: none; border-radius: 8px; margin: 20px 0; font-weight: 600; }}
.button:hover {{ background: #1e40af; }} .button:hover {{ background: #1e40af; }}
.footer {{ text-align: center; padding: 20px; color: #64748b; font-size: 0.9em; }} .footer {{ text-align: center; padding: 20px; color: #64748b; font-size: 0.9em; }}
.warning {{ background: #fef3c7; border-left: 4px solid #f59e0b; padding: 15px; margin: 20px 0; border-radius: 0 8px 8px 0; }} .warning {{ background: #fef3c7; border-left: 4px solid #f59e0b; padding: 15px; margin: 20px 0; border-radius: 0 8px 8px 0; color: #92400e; }}
</style> </style>
</head> </head>
<body> <body>
<div class="container"> <div class="container">
<div class="header"> <div class="header">
<h1>Reset hasla</h1> <h1>Reset hasła</h1>
</div> </div>
<div class="content"> <div class="content">
<p>Otrzymales ten email, poniewaz zazadano resetowania hasla dla Twojego konta Norda Biznes Hub.</p> <p>Otrzymałeś ten email, ponieważ zażądano resetowania hasła dla Twojego konta Norda Biznes Hub.</p>
<p>Aby zresetowac haslo, kliknij w ponizszy przycisk:</p> <p>Aby zresetować hasło, kliknij w poniższy przycisk:</p>
<center> <center>
<a href="{reset_url}" class="button">Zresetuj haslo</a> <a href="{reset_url}" class="button">Zresetuj hasło</a>
</center> </center>
<div class="warning"> <div class="warning">
<strong>Waznosc linku:</strong> 1 godzina <strong>Ważność linku:</strong> 1 godzina
</div> </div>
<p>Jesli przycisk nie dziala, skopiuj i wklej ponizszy link do przegladarki:</p> <p>Jeśli przycisk nie działa, skopiuj i wklej poniższy link do przeglądarki:</p>
<p style="word-break: break-all; color: #2563eb;">{reset_url}</p> <p style="word-break: break-all; color: #2563eb;">{reset_url}</p>
<p style="margin-top: 30px; color: #64748b; font-size: 0.9em;"> <p style="margin-top: 30px; color: #64748b; font-size: 0.9em;">
<strong>Nie zazadales resetowania hasla?</strong><br> <strong>Nie zażądałeś resetowania hasła?</strong><br>
Zignoruj ten email. Twoje haslo pozostanie bez zmian. Zignoruj ten email. Twoje hasło pozostanie bez zmian.
</p> </p>
</div> </div>
<div class="footer"> <div class="footer">
<p><strong>Norda Biznes Hub</strong> - Katalog Firm Czlonkowskich</p> <p><strong>Norda Biznes Hub</strong> - Katalog Firm Członkowskich</p>
<p><a href="https://nordabiznes.pl">nordabiznes.pl</a></p> <p><a href="https://nordabiznes.pl">nordabiznes.pl</a></p>
</div> </div>
</div> </div>
@ -423,27 +425,27 @@ def send_welcome_email(email: str, name: str, verification_url: str) -> bool:
Returns: Returns:
True if sent successfully, False otherwise True if sent successfully, False otherwise
""" """
subject = "Witamy w Norda Biznes Hub - Potwierdz email" subject = "Witamy w Norda Biznes Hub - Potwierdź email"
body_text = f"""Witaj {name}! body_text = f"""Witaj {name}!
Dziekujemy za rejestracje w Norda Biznes Hub - platformie sieciowej dla czlonkow stowarzyszenia Norda Biznes. Dziękujemy za rejestrację w Norda Biznes Hub - platformie sieciowej dla członków stowarzyszenia Norda Biznes.
Aby aktywowac swoje konto, potwierdz adres email klikajac w ponizszy link: Aby aktywować swoje konto, potwierdź adres email klikając w poniższy link:
{verification_url} {verification_url}
Link bedzie wazny przez 24 godziny. Link będzie ważny przez 24 godziny.
Po potwierdzeniu email bedziesz mogl: Po potwierdzeniu email będziesz mógł:
- Przegladac katalog 80 firm czlonkowskich - Przeglądać katalog 80 firm członkowskich
- Korzystac z asystenta AI do wyszukiwania uslug - Korzystać z asystenta AI do wyszukiwania usług
- Nawiazywac kontakty biznesowe - Nawiązywać kontakty biznesowe
Pozdrawiamy, Pozdrawiamy,
Zespol Norda Biznes Hub Zespół Norda Biznes Hub
--- ---
Norda Biznes Hub - Katalog Firm Czlonkowskich Norda Biznes Hub - Katalog Firm Członkowskich
https://nordabiznes.pl https://nordabiznes.pl
""" """
@ -451,14 +453,16 @@ https://nordabiznes.pl
<!DOCTYPE html> <!DOCTYPE html>
<html> <html>
<head> <head>
<meta charset="UTF-8">
<style> <style>
body {{ font-family: 'Inter', Arial, sans-serif; line-height: 1.6; color: #1e293b; }} body {{ font-family: 'Inter', Arial, sans-serif; line-height: 1.6; color: #1e293b; }}
.container {{ max-width: 600px; margin: 0 auto; padding: 20px; background: #f8fafc; }} .container {{ max-width: 600px; margin: 0 auto; padding: 20px; background: #f8fafc; }}
.header {{ background: linear-gradient(135deg, #2563eb, #1e40af); color: white; padding: 30px; text-align: center; border-radius: 8px 8px 0 0; }} .header {{ background: linear-gradient(135deg, #1e40af, #1e3a8a); color: white; padding: 30px; text-align: center; border-radius: 8px 8px 0 0; }}
.header h1 {{ margin: 0; font-size: 28px; font-weight: 700; text-shadow: 0 2px 4px rgba(0,0,0,0.3); }}
.content {{ background: white; padding: 30px; border-radius: 0 0 8px 8px; }} .content {{ background: white; padding: 30px; border-radius: 0 0 8px 8px; }}
.button {{ display: inline-block; padding: 14px 32px; background: #10b981; color: white; text-decoration: none; border-radius: 8px; margin: 20px 0; font-weight: 600; }} .button {{ display: inline-block; padding: 14px 32px; background: #10b981; color: white; text-decoration: none; border-radius: 8px; margin: 20px 0; font-weight: 600; }}
.footer {{ text-align: center; padding: 20px; color: #64748b; font-size: 0.9em; }} .footer {{ text-align: center; padding: 20px; color: #64748b; font-size: 0.9em; }}
.features {{ background: #f0fdf4; padding: 20px; border-radius: 8px; margin: 20px 0; }} .features {{ background: #f0fdf4; padding: 20px; border-radius: 8px; margin: 20px 0; color: #166534; }}
.features ul {{ margin: 10px 0; padding-left: 20px; }} .features ul {{ margin: 10px 0; padding-left: 20px; }}
</style> </style>
</head> </head>
@ -470,29 +474,29 @@ https://nordabiznes.pl
<div class="content"> <div class="content">
<p>Witaj <strong>{name}</strong>!</p> <p>Witaj <strong>{name}</strong>!</p>
<p>Dziekujemy za rejestracje w Norda Biznes Hub - platformie sieciowej dla czlonkow stowarzyszenia Norda Biznes.</p> <p>Dziękujemy za rejestrację w Norda Biznes Hub - platformie sieciowej dla członków stowarzyszenia Norda Biznes.</p>
<p>Aby aktywowac swoje konto, potwierdz adres email:</p> <p>Aby aktywować swoje konto, potwierdź adres email:</p>
<center> <center>
<a href="{verification_url}" class="button">Potwierdz email</a> <a href="{verification_url}" class="button">Potwierdź email</a>
</center> </center>
<div class="features"> <div class="features">
<strong>Po potwierdzeniu email bedziesz mogl:</strong> <strong>Po potwierdzeniu email będziesz mógł:</strong>
<ul> <ul>
<li>Przegladac katalog 80 firm czlonkowskich</li> <li>Przeglądać katalog 80 firm członkowskich</li>
<li>Korzystac z asystenta AI do wyszukiwania uslug</li> <li>Korzystać z asystenta AI do wyszukiwania usług</li>
<li>Nawiazywac kontakty biznesowe</li> <li>Nawiązywać kontakty biznesowe</li>
</ul> </ul>
</div> </div>
<p style="color: #64748b; font-size: 0.9em;"> <p style="color: #64748b; font-size: 0.9em;">
Link bedzie wazny przez 24 godziny. Link będzie ważny przez 24 godziny.
</p> </p>
</div> </div>
<div class="footer"> <div class="footer">
<p><strong>Norda Biznes Hub</strong> - Katalog Firm Czlonkowskich</p> <p><strong>Norda Biznes Hub</strong> - Katalog Firm Członkowskich</p>
<p><a href="https://nordabiznes.pl">nordabiznes.pl</a></p> <p><a href="https://nordabiznes.pl">nordabiznes.pl</a></p>
</div> </div>
</div> </div>