import smtplib import ssl from email.mime.text import MIMEText from email.mime.multipart import MIMEMultipart from collections import namedtuple MailConfig = namedtuple('MailConfig', 'server port secure username password email') mail_cfg = MailConfig(**{ 'server': 'smtp.ionos.de', 'port': '465', 'secure': 'ssl', 'username': 'versand@global-cube.de', 'password': 'gc01smtp??', 'email': 'versand@global-cube.de' }) mail_cfg = MailConfig(**{ 'server': 'mail.psmanaged.com', 'port': '465', 'secure': 'ssl', 'username': 'gc@scharf-automobile.de', 'password': '+Js10TnD*km4E6', 'email': 'gc@scharf-automobile.de' }) # receiver_email = 'bedner@global-cube.de' receiver_email = 'robert.bedner@gmail.com' context = ssl.create_default_context() message = MIMEMultipart('alternative') message['Subject'] = 'GAPS Mailversand' message['From'] = f'Global Cube <{mail_cfg.email}>' message['To'] = receiver_email text = 'Das ist der alternative Text. Auch okay, oder?!' html = '

Coole Überschrift

Und so geht es weiter. Gut lesbar?

' message.attach(MIMEText(text, 'plain')) message.attach(MIMEText(html, 'html')) try: with smtplib.SMTP_SSL(mail_cfg.server, mail_cfg.port, context=context) as mailserver: mailserver.login(mail_cfg.username, mail_cfg.password) result = mailserver.sendmail(mail_cfg.email, receiver_email, message.as_string()) print(result) except smtplib.SMTPException as e: print(e)