🚀 Automatisierte Kommunikation für Ihr Business?
Vereinbaren Sie ein unverbindliches Strategiegespräch
📊 Business Value
Zwei pragmatische Python-Tools zur Prozessunterstützung: Ein flexibler Countdown-Timer mit individuell konfigurierbaren Zeilen und ein SMTP-Mailer für massenhaften, personalisierten E-Mail-Versand.
Countdown-Timer
Fullscreen-Timer mit konfigurierbaren Zeiteinheiten pro Zeile. Ideal für Events, Deadlines oder Präsentationen.
E-Mail-Versand
SMTP-Versand via Microsoft 365 mit CSV-Empfängerliste und personalisierten EML-Templates mit Platzhalter-Ersetzung.
JSON-Konfiguration
Alle Einstellungen (Datum, Farben, Zeilen-Layout, Versand-Rate) persistent in config.json speicherbar.
💻 Countdown-Timer – Detailansicht
Der Timer zerlegt die verbleibende Zeit in individuell konfigurierbare Zeilen mit flexiblen Einheiten-Kombinationen.
Mehrzeilig
Mehrere Zeilen mit unterschiedlichen Einheiten-Kombinationen – z.B. Zeile 1: Monate/Wochen/Tage, Zeile 2: Stunden/Minuten/Sekunden.
Visuell anpassbar
Hintergrundfarbe, Schriftfarbe und Font (Ubuntu) frei wählbar via ColorPicker.
DatePicker
Integrierter Kalender (tkcalendar) zur einfachen Auswahl des Zieldatums mit Uhrzeiteingabe.
📝 Echte Code-Snippets
Der Countdown-Timer mit flexiblem Einheiten-System:
remaining_time = target_time - now
total_seconds = remaining_time.total_seconds()
def format_unit(value, singular, plural):
return f"{int(value)} {singular if value == 1 else plural}"
for line_units in config["lines"]:
remaining_seconds = total_seconds
if "Monate" in line_units:
months = remaining_seconds // (30 * 24 * 3600)
line_content.append(format_unit(months, "Monat", "Monate"))
if "Tage" in line_units:
days = remaining_seconds // (24 * 3600)
line_content.append(format_unit(days, "Tag", "Tage"))
if "Stunden" in line_units:
hours = remaining_seconds // 3600
line_content.append(format_unit(hours, "Stunde", "Stunden"))
SMTP-E-Mail-Versand mit personalisierten Templates:
with smtplib.SMTP('smtp.office365.com', 587) as server:
server.starttls()
server.login(email, password)
for index, row in self.csv_data.iterrows():
body = self.create_email_body(row)
msg = MIMEMultipart()
msg['From'] = email
msg['To'] = row['Email']
msg.attach(MIMEText(body, 'plain'))
server.send_message(msg)
time.sleep(60 / rate) # Rate-Limiting
Platzhalter-Ersetzung in EML-Vorlagen:
def create_email_body(self, row):
email_template = self.eml_template
for key, value in row.items():
email_template = email_template.replace(f'{{{{ {key} }}}}', str(value))
return email_template
🔧 Technologie-Stack
Python 3
Tkinter
tkcalendar
smtplib
pandas
email.mime
JSON
datetime
🚀 Kernfunktionen
- Countdown-Timer: Mehrzeilige Zeiteinheiten (Monate/Wochen/Tage/Stunden/Minuten/Sekunden)
- Einstellungen: Datum+Uhrzeit via DatePicker, Farben via ColorChooser, Zeilen-Layout via Checkboxen
- Persistenz: Alle Einstellungen werden in config.json gespeichert und beim Start geladen
- E-Mail-Versand: SMTP via Microsoft 365 mit TLS-Verschlüsselung auf Port 587
- CSV-Integration: Empfängerliste aus CSV, personalisierte EML-Templates mit {{ Platzhaltern }}
- Rate-Limiting: Konfigurierbare E-Mails-pro-Minute mit Fortschrittsanzeige und Zeitschätzung