Balzer-WaagenDaten/mail.py

55 lines
1.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import datetime
import os
from dotenv import load_dotenv
load_dotenv()
# SMTP-Parameter aus .env lesen
SMTP_SERVER = os.getenv("E_MAIL_SMTP_SERVER")
SMTP_PORT = int(os.getenv("E_MAIL_SMTP_SERVER_PORT"))
SMTP_USER = os.getenv("E_MAIL_ADDRESS")
SMTP_PASS = os.getenv("E_MAIL_ADDRESS_PASSWORD")
MAIL_FROM = os.getenv("E_MAIL_SEND_TO", SMTP_USER)
MAIL_TO = os.getenv("E_MAIL_SEND_TO")
if not all([SMTP_SERVER, SMTP_USER, SMTP_PASS, MAIL_TO]):
print("⚠️ SMTP-Konfiguration unvollständig bitte .env prüfen.")
def send_email(subject: str, body: str):
"""Allgemeine Mail-Funktion"""
msg = MIMEMultipart()
msg["From"] = MAIL_FROM
msg["To"] = MAIL_TO
msg["Subject"] = subject
msg.attach(MIMEText(body, "plain", "utf-8"))
try:
with smtplib.SMTP_SSL(SMTP_SERVER, SMTP_PORT) as server:
print("Inside smtplib")
server.login(SMTP_USER, SMTP_PASS)
server.sendmail(MAIL_FROM, MAIL_TO.split(","), msg.as_string())
print(f"✅ E-Mail gesendet: {subject}")
except Exception as e:
print(f"❌ Fehler beim Senden der E-Mail ({subject}): {e}")
def send_error_email(msg: str, process: str):
"""Fehlermeldung senden"""
subject = f"❌ Fehler im Prozess {process}"
body = f"Prozess: {process}\nZeit: {datetime.datetime.now()}\n\nFehlermeldung:\n{msg}"
send_email(subject, body)
def send_report_email(msg: str, process: str):
"""Erfolgreichen Abschlussbericht senden"""
subject = f"✅ Prozess abgeschlossen: {process}"
body = f"Prozess: {process}\nZeit: {datetime.datetime.now()}\n\nErgebnisbericht:\n{msg}"
send_email(subject, body)
def send_success_email(msg: str, process: str):
"""Sendet Erfolgs-Mail"""
subject = f"✅ Erfolg: {process}"
body = "Alles OK!"
send_email(subject, body)