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

From version 17.1
edited by Christoph Bußenius
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
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 ä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"**-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 mit Smarthost in 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 +*