monitor/mail_fds.py
2025-11-10 14:31:17 +00:00

61 lines
2.1 KiB
Python
Executable file

#!/usr/bin/env python3
import smtplib
import argparse
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
def read_credentials(file_path):
"""Liest SMTP-Serverdetails und Credentials aus einer Textdatei.
Format der Datei (jeweils eine Zeile):
smtp_server:port
username
password
from_address
to_address
"""
with open(file_path, 'r') as f:
lines = [line.strip() for line in f.readlines() if line.strip()]
if len(lines) != 5:
raise ValueError("Die Credential-Datei muss genau 5 Zeilen enthalten.")
smtp_server, smtp_port = lines[0].split(':')
username = lines[1]
password = lines[2]
from_addr = lines[3]
to_addr = lines[4]
return smtp_server, smtp_port, username, password, from_addr, to_addr
def send_email(smtp_server, smtp_port, username, password, from_addr, to_addr, subject, body):
"""Versendet eine E-Mail mit den angegebenen Parametern."""
msg = MIMEMultipart()
msg['From'] = from_addr
msg['To'] = to_addr
msg['Subject'] = subject
msg.attach(MIMEText(body, 'plain'))
try:
with smtplib.SMTP(smtp_server, int(smtp_port)) as server:
server.starttls()
server.login(username, password)
server.send_message(msg)
print("E-Mail erfolgreich versendet.")
except Exception as e:
print(f"Fehler beim Versand der E-Mail: {e}")
def main():
parser = argparse.ArgumentParser(description='Versendet eine E-Mail mit festem Textinhalt und dynamischem Betreff.')
parser.add_argument('--subject', type=str, required=True, help='Betreff der E-Mail')
parser.add_argument('--credentials', type=str, required=True, help='Pfad zur Credential-Datei')
args = parser.parse_args()
smtp_server, smtp_port, username, password, from_addr, to_addr = read_credentials(args.credentials)
body = """Hallo,
dies ist eine automatisch generierte E-Mail.
Mit freundlichen Grüßen,
Dein Skript"""
send_email(smtp_server, smtp_port, username, password, from_addr, to_addr, args.subject, body)
if __name__ == "__main__":
main()