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
|
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
|
import os
|
||||||
|
|
||||||
template_path = "mail_template.html"
|
template_path = "mail_template.html"
|
||||||
@ -431,6 +431,10 @@ def main():
|
|||||||
parser.add_argument('--stats', action='store_true',
|
parser.add_argument('--stats', action='store_true',
|
||||||
help='Wyświetl statystyki: aktywność, rok rejestracji, domeny')
|
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()
|
args = parser.parse_args()
|
||||||
|
|
||||||
inactive_range = None
|
inactive_range = None
|
||||||
@ -449,7 +453,14 @@ def main():
|
|||||||
'created': int(datetime.now().timestamp()) - (86400 * 365 * 2)
|
'created': int(datetime.now().timestamp()) - (86400 * 365 * 2)
|
||||||
}
|
}
|
||||||
print(f"📬 Wysyłka testowego maila na: {test_user['mail']}")
|
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
|
return
|
||||||
|
|
||||||
if not args.drupal_path:
|
if not args.drupal_path:
|
||||||
@ -458,7 +469,6 @@ def main():
|
|||||||
if not args.delete and args.dry_run is None:
|
if not args.delete and args.dry_run is None:
|
||||||
args.dry_run = True
|
args.dry_run = True
|
||||||
|
|
||||||
|
|
||||||
if args.flush_cache:
|
if args.flush_cache:
|
||||||
flush_redis_cache()
|
flush_redis_cache()
|
||||||
return
|
return
|
||||||
@ -598,9 +608,11 @@ def main():
|
|||||||
smtp_config,
|
smtp_config,
|
||||||
args.mails_per_pack,
|
args.mails_per_pack,
|
||||||
args.time_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:")
|
print("\n📋 Parametry filtrowania:")
|
||||||
if args.days_inactive:
|
if args.days_inactive:
|
||||||
print(f"- Nieaktywni: > {args.days_inactive} dni (~{days_to_years(args.days_inactive)} lat)")
|
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