ich benötige eure Hilfe:
Ich habe mich jetzt das erste Mal mit TOML und Email beschäftigt und mir ein Skript zusammengebastelt. Jetzt frage ich mich, ob es nicht übersichtlicher und funktionaler wäre, den Code in Klassen zu trennen. Eine Klasse fürs Importieren der Zugangsdaten (TOML-Import) und eine weitere zum Bestücken + Senden der Email.
In einer dritten Datei könnte dann ein simpler Versand der Email angestoßen werden, indem lediglich Betreff und Inhalt der Email definiert werden müsste.
data.toml:
Code: Alles auswählen
# This is a TOML document
[email]
smtp = "smtp.1und1.de"
port_SSL = "465"
absender = "abender@mail.de"
user = "user@mail.de"
pawo = "Passwort"
send_email.py:
Code: Alles auswählen
#! /usr/bin/python3
import smtplib, ssl, os, toml
from email.message import EmailMessage
def config_laden():
configfile = os.path.join(SKRIPTPFAD, "data.toml")
with open(configfile) as file:
return toml.loads(file.read())
SKRIPTPFAD = os.path.abspath(os.path.dirname(__file__))
CONFIG = config_laden()
smtp = CONFIG["email"]["smtp"]
port = CONFIG["email"]["port_SSL"]
absender = CONFIG["email"]["absender"]
user = CONFIG["email"]["user"]
pawo = CONFIG["email"]["pawo"]
msg = EmailMessage()
msg["From"] = absender
msg["To"] = "an_mich@mail.de"
msg["Subject"] = "Betreffzeile"
msg.set_content("""\
Inhalt der Nachricht:
2. Zeile
3. Zeile
""")
try:
server = smtplib.SMTP_SSL(smtp, port)
server.login(user, pawo)
server.send_message(msg)
print("Email wurde erfolgreich versendet")
except Exception as e:
print(e)