only_active_users
This commit is contained in:
32
app.py
32
app.py
@@ -527,11 +527,17 @@ def main():
|
||||
parser.add_argument('--mailing-all-users', action='store_true',
|
||||
help='Wyślij mailing do wszystkich użytkowników z poprawnym adresem e-mail')
|
||||
|
||||
parser.add_argument('--active-within-days', type=int,
|
||||
help='Wyślij mailing do użytkowników aktywnych w ciągu ostatnich X dni')
|
||||
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
inactive_range = None
|
||||
|
||||
|
||||
|
||||
|
||||
if args.inactive_since:
|
||||
try:
|
||||
min_days, max_days = map(int, args.inactive_since.split('-'))
|
||||
@@ -664,6 +670,32 @@ def main():
|
||||
)
|
||||
return
|
||||
|
||||
if args.active_within_days:
|
||||
users = get_users(db_config)
|
||||
temp_domains_cache = load_temp_domains()
|
||||
now_ts = int(datetime.now().timestamp())
|
||||
threshold = now_ts - args.active_within_days * 86400
|
||||
|
||||
candidates = [
|
||||
u for u in users
|
||||
if u.get('access') and u['access'] >= threshold
|
||||
and (not is_fake_email(u['mail']))
|
||||
and (not is_temp_email(u['mail'], temp_domains_cache))
|
||||
]
|
||||
|
||||
print(f"📨 Wysyłanie mailingu do {len(candidates)} aktywnych użytkowników z ostatnich {args.active_within_days} dni...")
|
||||
|
||||
send_email_batch(
|
||||
candidates,
|
||||
smtp_config,
|
||||
args.mails_per_pack,
|
||||
args.time_per_pack,
|
||||
dry_run=args.dry_run,
|
||||
template_path=args.mail_template
|
||||
)
|
||||
return
|
||||
|
||||
|
||||
if args.stats:
|
||||
from collections import Counter
|
||||
|
||||
|
||||
113
mail_template_firewall.html
Normal file
113
mail_template_firewall.html
Normal file
@@ -0,0 +1,113 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>Dziękujemy za Twoją aktywność w Unitra-Klubie</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background-color: #f9f9f9;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
color: #111;
|
||||
}
|
||||
.container {
|
||||
max-width: 640px;
|
||||
margin: 30px auto;
|
||||
background-color: #fff;
|
||||
border: 1px solid #ccc;
|
||||
padding: 30px;
|
||||
box-shadow: 0 0 1px rgba(0,0,0,0.2);
|
||||
}
|
||||
.logo {
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
.logo img {
|
||||
max-width: 220px;
|
||||
height: auto;
|
||||
}
|
||||
h1 {
|
||||
font-size: 22px;
|
||||
text-align: center;
|
||||
color: #111;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.highlight {
|
||||
background-color: #fdfdfd;
|
||||
border-left: 3px solid #444;
|
||||
padding: 16px;
|
||||
margin: 25px 0;
|
||||
}
|
||||
.highlight ul {
|
||||
margin: 10px 0 0 20px;
|
||||
padding: 0;
|
||||
}
|
||||
.highlight li {
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
p {
|
||||
font-size: 15px;
|
||||
line-height: 1.6;
|
||||
}
|
||||
.footer {
|
||||
margin-top: 40px;
|
||||
font-size: 13px;
|
||||
color: #777;
|
||||
text-align: center;
|
||||
border-top: 1px solid #ddd;
|
||||
padding-top: 20px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="container">
|
||||
<div class="logo">
|
||||
<img src="https://unitraklub.pl/unitraklub_logo_czyste.png" alt="Unitra Klub logo">
|
||||
</div>
|
||||
<h1>Witaj @user,</h1>
|
||||
|
||||
<p>
|
||||
Dziękujemy, że jesteś aktywnym użytkownikiem Unitra-Klubu i regularnie zaglądasz na <strong>unitraklub.pl</strong>.
|
||||
</p>
|
||||
|
||||
<div class="highlight">
|
||||
<p><strong>Dziękujemy za Twoją aktywność!</strong></p>
|
||||
<ul>
|
||||
<li>za udział w dyskusjach na forum i stronie unitraklub.pl,</li>
|
||||
<li>za dzielenie się wiedzą, doświadczeniem i materiałami,</li>
|
||||
<li>za dotychczasowe wsparcie i pomoc przy zbiórkach na rozwój klubu.</li>
|
||||
</ul>
|
||||
<p>
|
||||
To właśnie dzięki takim osobom jak Ty nasza społeczność żyje, rośnie
|
||||
i może dalej rozwijać pasję do sprzętu Unitra.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<p>
|
||||
Obecnie prowadzimy nową zbiórkę na <strong>firewall/router do zmodernizowanej sieci Unitra-Klub</strong>.
|
||||
Jeśli chcesz i możesz nas wesprzeć, znajdziesz wszystkie informacje pod adresem:
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<strong>
|
||||
<a href="https://z.unitraklub.pl/zbiorka/14">
|
||||
https://z.unitraklub.pl/zbiorka/14
|
||||
</a>
|
||||
</strong>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Każda, nawet drobna wpłata, realnie pomaga w utrzymaniu i rozwoju infrastruktury klubu.
|
||||
</p>
|
||||
|
||||
<p>Pozdrawiamy serdecznie,<br>Zespół administracyjny Unitra-Klub</p>
|
||||
|
||||
<div class="footer">
|
||||
<i><b>Pomoc jest dobrowolna, opis zbiórki i sposoby wsparcia znajdziesz pod linkiem powyżej.</b></i><br>
|
||||
Ten e-mail został wygenerowany automatycznie. Prosimy na niego nie odpowiadać.
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user