Changes for page Mailversand von selbst programmierten Scripten oder selbst installierter Spezialsoftware
Last modified by Christoph Bußenius on 2025/02/05 12:20
From version 19.1
edited by Christoph Bußenius
on 2024/12/09 15:46
on 2024/12/09 15:46
Change comment:
There is no comment for this version
To version 1.1
edited by Christoph Bußenius
on 2024/12/09 10:15
on 2024/12/09 10:15
Change comment:
There is no comment for this version
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,26 +1,26 @@ 1 1 == Wen betrifft dieser Artikel? == 2 2 3 -Dies sind **nicht**die Maileinstellungen für Endanwender.3 +Dies sind nicht die Maileinstellungen für Endanwender. 4 4 5 -Diese Maileinstellungen empfehlen wir zum Beispiel für **automatisch verschickte**Bestätigungsmails von Webformularen o.ä.5 +Diese Maileinstellungen empfehlen wir zum Beispiel für automatisch verschickte Bestätigungsmails von Webformularen o.ä. 6 6 7 7 == Verbindungsdaten == 8 8 9 -Wenn es in einer **Ubuntu-VM**im ESX der ITO ist oder einer ähnlichen Linux-Installation:9 +Wenn es in einer Ubuntu-VM im ESX der ITO ist oder einer ähnlich installierten Linux-Installation: 10 10 11 -* SMTP-Server: **localhost**11 +* SMTP-Server: localhost 12 12 * Port: 25 13 13 * Kein Login, kein Passwort 14 14 * Kein TLS/SSL 15 -* Alternativ **"sendmail"**-Command15 +* Alternativ "sendmail"-Command 16 16 17 -Von anderen Rechnern in den **internen Netzen**der ITO:17 +Von anderen Rechnern in den internen Netzen der ITO: 18 18 19 19 * SMTP-Server: mail.cit.tum.de 20 20 * Port: 587 (oder 25) mit StartTLS oder Port 465 mit smtps 21 21 * Kein Login, kein Passwort (evtl. in Zukunft geplant) 22 22 23 -Konfiguration mitSmarthostin den internen Netzen der ITO:23 +Konfiguration als Smarthost: 24 24 25 25 * SMTP-Server: mailrelay.rbg.tum.de 26 26 * Port: 25 ... ... @@ -29,65 +29,7 @@ 29 29 30 30 Es ist wichtig, dass Sie diese Hinweise beachten. Was passiert, wenn Sie es nicht beachten? 31 31 32 -* Wenn Ihre Mails von Benutzern externer Provider (z.B. Outlook.com) als Spam markiert werden oder dort automatisch als Spam erkannt werden, kann es sein, dass dieser Provider unseren Mailserver auf eine **Sperrliste** setzt. Im schlimmsten Fall kann dann **niemand an der CIT mehr E-Mails versenden**. 33 -* Bei falscher Konfiguration kann es auch leicht passieren, dass Mails in großer Anzahl entstehen, die unser Mailsystem **überlasten**. 34 -* Sie laufen Gefahr, dass wir Ihren Host **sperren**. 35 -* Sie laufen Gefahr, dass Ihr Host automatisch **gesperrt** wird von uns oder vom LRZ. 36 -* Ihre Benutzer können Ihre Services im wichtigsten Moment nicht benutzen oder Ihre Mails nicht empfangen. Ihr Projekt scheitert. 37 - 38 -Deswegen folgende Hinweise: 39 - 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 -* Schicken Sie von einer **gültigen Absenderadresse**. Verwenden Sie keinen Absender wie "noreply@...". Es auch 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. 43 -* Testen Sie, was mit **Bounces** passiert, falls Ihr Script an eine nichtzustellbare Adresse schickt. 44 -* Testen Sie, ob Ihre Mails von externen Providern oder von einer Software wie SpamAssassin **als Spam eingestuft** werden. 45 -* Wenn Sie HTML-Mails versenden, fügen Sie eine **Plain-Text**-Version mit ein. 46 -* Überlegen Sie, wie viele Mails in Ausnahmesituationen entstehen können, und implementieren Sie ggf. ein **Ratelimit**. [[Hinweise zu Massenmails>>https://wiki.ito.cit.tum.de/bin/view/Informatik/Benutzerwiki/MassenMails/]] 47 -* Statt **große Attachments** (inbesondere an viele Empfänger gleichzeitig) zu verschicken, suchen Sie nach einer anderen Lösung, z.B. schicken Sie Links auf Dateien in der Nextcloud. 48 - 49 -Hinweise hauptsächlich für selbstprogrammierte Scripte / Anwendungen: 50 - 51 -* Setzen Sie alle **Header auf korrekte Werte**. 52 -** 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. 53 -** Der Header **Message-ID** sollte auch von einer Library erzeugt werden. 54 -* 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 = '........@cit.tum.de' 68 -recipient = '......@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) as e: 92 - print('Es gab einen SMTP-Fehler:', e)## 93 - 32 +* 33 +* Sie laufen Gefahr, dass wir Ihren Host sperren 34 +* Sie laufen Gefahr, dass Ihr Host automatisch gesperrt wird von uns oder vom LRZ 35 +*