61 lines
2.1 KiB
Python
Executable file
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()
|