Änderungen von Dokument Mailversand von selbst programmierten Scripten oder selbst installierter Spezialsoftware
Zuletzt geändert von Christoph Bußenius am 2025/02/05 12:20
Von Version 11.1
bearbeitet von Christoph Bußenius
am 2024/12/09 10:54
am 2024/12/09 10:54
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Auf Version 13.1
bearbeitet von Christoph Bußenius
am 2024/12/09 11:28
am 2024/12/09 11:28
Änderungskommentar:
Es gibt keinen Kommentar für diese Version
Zusammenfassung
-
Seiteneigenschaften (1 geändert, 0 hinzugefügt, 0 gelöscht)
Details
- Seiteneigenschaften
-
- Inhalt
-
... ... @@ -39,6 +39,7 @@ 39 39 40 40 * Schicken Sie niemandem Mails gegen ihren Willen. Idealerweise sollten sich alle Empfänger vorher explizit einverstanden erklärt haben, dass Sie Mails von Ihnen erhalten werden, und aus der Mail sollte explizit hervorgehen, warum die Empfänger sie erhalten. 41 41 * Schicken Sie von einer gültigen Absenderadresse. Verwenden Sie keinen Absender wie "noreply@...". Es ist wichtig, dass auch Bounces an diese Adresse geregelt empfangen werden können. Sonst können Double Bounces entstehen, was insbesondere in größerer Anzahl das Mailsystem belasten kann. 42 +** Beachten Sie, dass es zwei Absenderadressen gibt: 1. Die Absenderadresse aus dem "From"-Header und 2. den Envelope Sender (auch bekannt als Bounce-Adresse). Beide müssen gültig sein. Sie können für beides die gleiche Adresse verwenden. 42 42 * Testen Sie, was mit Bounces passiert, falls Ihr Script an eine nichtzustellbare Adresse schickt. 43 43 * Testen Sie, ob Ihre Mails von externen Providern oder von einer Software wie SpamAssassin als Spam eingestuft werden. 44 44 * Wenn Sie HTML-Mails versenden, fügen Sie eine Plain-Text-Version mit ein. ... ... @@ -51,3 +51,42 @@ 51 51 ** Der Header "Date" muss auf ein syntaktisch korrektes Datum gesetzt werden, es soll nicht in der Vergangenheit oder Zukunft liegen. Verwenden Sie Libraries o.ä., um den Header zu erzeugen. 52 52 ** Der Header Message-ID sollte auch von einer Library erzeugt werden. 53 53 * Implementieren Sie Fehlerbehandlung, wenn der SMTP-Server oder das sendmail-Command einen Fehler liefert. 55 + 56 +== Beispiel-Code in Python == 57 + 58 +##from email.mime.text import MIMEText 59 +import email.utils 60 +import email.charset 61 +import smtplib## 62 + 63 + 64 +##body = 'Dies wäre eine Test-Message, sie hätte sogar Umlaute.' 65 +subject = 'Bloß ein Test' 66 +sender_name = 'Vorname Nachname' 67 +sender_addr = 'nobody@cit.tum.de' 68 +recipient = 'busseniu@cit.tum.de'## 69 + 70 + 71 +##charset = email.charset.Charset('utf-8') 72 +# Quoted Printable: So bleibt der Quelltext der E-Mail menschenlesbar. 73 +charset.body_encoding = email.charset.QP## 74 + 75 +##mime = MIMEText(body, _charset=charset) 76 +mime['From'] = email.utils.formataddr((sender_name, sender_addr)) # Ergibt Vorname Nachname <addr> 77 +mime['To'] = recipient 78 +mime['Subject'] = subject 79 +mime['Date'] = email.utils.formatdate(localtime=True) 80 +mime['Message-ID'] = email.utils.make_msgid()## 81 + 82 +##try: 83 + smtp = smtplib.SMTP( 84 + host='localhost', 85 + port=25) 86 + smtp.send_message( 87 + mime, 88 + from_addr=sender_addr, # Envelope Sender 89 + to_addrs=[recipient]) 90 + smtp.quit() 91 +except (smtplib.SMTPException, ConnectionRefusedError): 92 + print('Es gab einen SMTP-Fehler')## 93 +