from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
import smtplib
import time
def _build_smtp_client():
smtp = smtplib.SMTP(
"mail.invario-software.de",
587,
timeout=10,
)
smtp.ehlo()
if True: # Always use TLS for security
smtp.starttls()
smtp.ehlo()
smtp.login("no-reply@invario-software.de", "#,EATwIn,68")
return smtp
def send(email: list | str, subject: str, text_body: str, html_body: str = None) -> bool:
"""Sends the email with both Plain Text and HTML support."""
if isinstance(email, str):
email = [email]
TEXT_SIGNATURE = (
"\n\n--\n"
"Mit freundlichen Grüßen\n"
"Ihr Invario Team\n\n"
"Invario UG\n"
"Am Sportplatz 10\n"
"83052 Bruckmühl"
)
HTML_SIGNATURE = """
|
Mit freundlichen Grüßen, Ihr Invario Team
Invario UG |
{html_safe_text}
{HTML_SIGNATURE}" mails_per_second = 10 interval = 1.0 / mails_per_second smtp = None try: smtp = _build_smtp_client() for i, recipient in enumerate(email): start_time = time.time() msg = MIMEMultipart("alternative") msg["Subject"] = subject msg["From"] = "Invario TeamVielen Dank für Ihre Registrierung. Um die Einrichtung Ihres Kontos abzuschließen und Ihre E-Mail-Adresse zu verifizieren, verwenden Sie bitte den folgenden Bestätigungscode:
Dieser Code ist aus Sicherheitsgründen nur für eine begrenzte Zeit gültig.
Falls Sie kein Konto bei uns erstellt haben, können Sie diese E-Mail sicher ignorieren.
Sie haben eine Anfrage zum Zurücksetzen Ihres Passworts gestellt. Um fortzufahren, verwenden Sie bitte den folgenden Bestätigungscode:
Dieser Code ist aus Sicherheitsgründen nur für eine begrenzte Zeit gültig.
Falls Sie kein Zurücksetzen des Passworts angefordert haben, können Sie diese E-Mail sicher ignorieren.