Last modified by Christoph Bußenius on 2025/02/05 12:20

From version 1.1
edited by Christoph Bußenius
on 2024/12/09 10:15
Change comment: There is no comment for this version
To version 17.1
edited by Christoph Bußenius
on 2024/12/09 15:46
Change comment: There is no comment for this version

Summary

Details

Page properties
Content
... ... @@ -1,18 +1,18 @@
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 ähnlich installierten Linux-Installation:
9 +Wenn es in einer Ubuntu-VM im ESX der ITO ist oder einer ähnlichen 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"-Command
15 +* Alternativ **"sendmail"**-Command
16 16  
17 17  Von anderen Rechnern in den internen Netzen der ITO:
18 18  
... ... @@ -20,7 +20,7 @@
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 als Smarthost:
23 +Konfiguration mit Smarthost in den internen Netzen der ITO:
24 24  
25 25  * SMTP-Server: mailrelay.rbg.tum.de
26 26  * Port: 25
... ... @@ -29,7 +29,65 @@
29 29  
30 30  Es ist wichtig, dass Sie diese Hinweise beachten. Was passiert, wenn Sie es nicht beachten?
31 31  
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 -*
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 +