mail o zachecie do logowania
This commit is contained in:
20
app.py
20
app.py
@ -281,7 +281,7 @@ def get_smtp_config():
|
||||
|
||||
return config
|
||||
|
||||
def send_email_batch(users, smtp_config, mails_per_pack=100, time_per_pack=60, dry_run=False):
|
||||
def send_email_batch(users, smtp_config, mails_per_pack=100, time_per_pack=60, dry_run=False, template_path="mail_template.html"):
|
||||
import os
|
||||
|
||||
template_path = "mail_template.html"
|
||||
@ -431,6 +431,10 @@ def main():
|
||||
parser.add_argument('--stats', action='store_true',
|
||||
help='Wyświetl statystyki: aktywność, rok rejestracji, domeny')
|
||||
|
||||
parser.add_argument('--mail-template', type=str,
|
||||
help='Ścieżka do alternatywnego pliku HTML z szablonem maila (domyślnie: mail_template.html)')
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
inactive_range = None
|
||||
@ -449,7 +453,14 @@ def main():
|
||||
'created': int(datetime.now().timestamp()) - (86400 * 365 * 2)
|
||||
}
|
||||
print(f"📬 Wysyłka testowego maila na: {test_user['mail']}")
|
||||
send_email_batch([test_user], smtp_config, mails_per_pack=1, time_per_pack=0, dry_run=False)
|
||||
send_email_batch(
|
||||
[test_user],
|
||||
smtp_config,
|
||||
mails_per_pack=1,
|
||||
time_per_pack=0,
|
||||
dry_run=False,
|
||||
template_path=args.mail_template
|
||||
)
|
||||
return
|
||||
|
||||
if not args.drupal_path:
|
||||
@ -458,7 +469,6 @@ def main():
|
||||
if not args.delete and args.dry_run is None:
|
||||
args.dry_run = True
|
||||
|
||||
|
||||
if args.flush_cache:
|
||||
flush_redis_cache()
|
||||
return
|
||||
@ -598,9 +608,11 @@ def main():
|
||||
smtp_config,
|
||||
args.mails_per_pack,
|
||||
args.time_per_pack,
|
||||
dry_run=args.dry_run
|
||||
dry_run=args.dry_run,
|
||||
template_path=args.mail_template
|
||||
)
|
||||
|
||||
|
||||
print("\n📋 Parametry filtrowania:")
|
||||
if args.days_inactive:
|
||||
print(f"- Nieaktywni: > {args.days_inactive} dni (~{days_to_years(args.days_inactive)} lat)")
|
||||
|
106
mail_template_zacheta.html
Normal file
106
mail_template_zacheta.html
Normal file
@ -0,0 +1,106 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Zapraszamy ponownie do unitraklub.pl</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Segoe UI', Roboto, sans-serif;
|
||||
background-color: #f4f4f4;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #333333;
|
||||
}
|
||||
.container {
|
||||
max-width: 600px;
|
||||
margin: 40px auto;
|
||||
background-color: #ffffff;
|
||||
padding: 30px;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 4px 12px rgba(0,0,0,0.1);
|
||||
}
|
||||
h1 {
|
||||
font-size: 22px;
|
||||
color: #222222;
|
||||
}
|
||||
h2 {
|
||||
font-size: 18px;
|
||||
color: #222222;
|
||||
margin-top: 25px;
|
||||
}
|
||||
p {
|
||||
font-size: 16px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.footer {
|
||||
margin-top: 30px;
|
||||
font-size: 14px;
|
||||
color: #888888;
|
||||
text-align: center;
|
||||
}
|
||||
.details {
|
||||
background-color: #f8f9fa;
|
||||
padding: 12px;
|
||||
border-left: 4px solid #3498db;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.details-item {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
.benefits {
|
||||
background-color: #e8f4fd;
|
||||
padding: 12px;
|
||||
border-left: 4px solid #2980b9;
|
||||
margin: 20px 0;
|
||||
}
|
||||
.benefits ul {
|
||||
padding-left: 20px;
|
||||
margin: 10px 0;
|
||||
}
|
||||
.benefits li {
|
||||
margin-bottom: 8px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<h1>Witaj @user,</h1>
|
||||
|
||||
<p>
|
||||
Cieszymy się, że jesteś częścią naszej społeczności <strong>unitraklub.pl</strong>!
|
||||
</p>
|
||||
|
||||
<div class="details">
|
||||
<div class="details-item"><strong>Data rejestracji:</strong> @rejestracja</div>
|
||||
<div class="details-item"><strong>Ostatnie logowanie:</strong> @ostatnie_logowanie</div>
|
||||
</div>
|
||||
|
||||
<h2>Odwiedź nas ponownie – wiele się zmieniło!</h2>
|
||||
|
||||
<div class="benefits">
|
||||
<p>
|
||||
W unitraklub.pl stale rozwijamy społeczność miłośników sprzętu Unitra i elektroniki retro. Jeśli dawno nas nie odwiedzałeś – to świetny moment, by wrócić i zobaczyć, co nowego!
|
||||
</p>
|
||||
<ul>
|
||||
<li>Nowe materiały w dziale <strong>Download</strong> – instrukcje serwisowe, katalogi, schematy</li>
|
||||
<li>Aktywne dyskusje, porady techniczne i archiwalne zdjęcia sprzętu</li>
|
||||
<li>Możliwość dzielenia się swoimi projektami i doświadczeniem z innymi pasjonatami</li>
|
||||
<li>Społeczność, która docenia jakość i historię polskiej elektroniki</li>
|
||||
</ul>
|
||||
<p>
|
||||
<strong>Nie musisz zakładać nowego konta – Twoje już czeka.</strong> Wystarczy się zalogować i dołączyć do rozmów!
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Do zobaczenia na forum!<br>
|
||||
Zespół administracyjny unitraklub.pl
|
||||
</p>
|
||||
|
||||
<div class="footer">
|
||||
Ten e-mail został wygenerowany automatycznie. Prosimy na niego nie odpowiadać.
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
Reference in New Issue
Block a user