SMTP – Simple Mail Transfer Protocol: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
=== SMTP – Simple Mail Transfer Protocol ===
====Einführung in SMTP====


==== Aufbau einer E-Mail ====  
Das '''Simple Mail Transfer Protocol (SMTP)''' ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden.  


; '''Port 25''' 
: Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS. 
: Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern. 
; '''Port 465''' 
: Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**. 
: Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann. 
; '''Port 587''' 
: Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung). 
: Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann. 
'''Hinweis:''' 
Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. 
Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet.
Das '''Simple Mail Transfer Protocol (SMTP)''' ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden. 
; '''Port 25''' 
: Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS. 
: Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern. 
; '''Port 465''' 
: Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**. 
: Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann. 
; '''Port 587''' 
: Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung). 
: Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann. 
'''Hinweis:''' 
Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. 
Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet.
}}
==== Aufbau einer E-Mail ====
Eine E-Mail besteht aus zwei Hauptbestandteilen:   
Eine E-Mail besteht aus zwei Hauptbestandteilen:   


; **Envelope (Umschlag)**  
; '''Envelope (Umschlag)'''  
: Der Umschlag enthält Informationen zur Zustellung, darunter den Absender und Empfänger. Diese Daten sind nicht direkt im Mail-Header sichtbar, sondern werden nur während der Übertragung verwendet.   
: Enthält die Adressen des Absenders und des Empfängers, die für die SMTP-Zustellung verwendet werden. Diese Informationen sind nicht im Header sichtbar.   


; **Header (Kopfzeilen)**  
; '''Header (Kopfzeilen)'''  
: Enthält Metadaten zur Nachricht. Wichtige Felder sind:   
: Enthält Metadaten zur E-Mail. Wichtige Felder sind:   


* '''From:''' Absenderadresse   
: '''From:''' Absenderadresse   
* '''To:''' Empfängeradresse   
: '''To:''' Empfängeradresse   
* '''Cc:''' Kopieempfänger (Carbon Copy)   
: '''Cc:''' Kopieempfänger (Carbon Copy)   
* '''Bcc:''' Verdeckte Kopieempfänger (Blind Carbon Copy), nicht für andere sichtbar  
: '''Bcc:''' Verdeckte Kopieempfänger (Blind Carbon Copy)   
* '''Subject:''' Betreff der Nachricht   
: '''Subject:''' Betreff der Nachricht   
* '''Date:''' Zeitpunkt des Versands   
: '''Date:''' Zeitpunkt des Versands   
* '''Message-ID:''' Eindeutige Kennung der Nachricht   
: '''Message-ID:''' Eindeutige Kennung der Nachricht   
* '''Reply-To:''' Adresse für Antworten   
: '''Reply-To:''' Adresse für Antworten   
* '''Received:''' Enthält die Routing-Informationen der Nachricht   
: '''Received:''' Routing-Informationen über die Mailserver, die die E-Mail verarbeitet haben 
: '''MIME-Version:''' Gibt an, ob die E-Mail Multipart-Inhalte oder Anhänge enthält 
: '''Content-Type:''' Definiert das Format der Nachricht, z. B. Text oder HTML  


; **Body (Nachrichtentext)**  
; '''Body (Nachrichtentext)'''  
: Der eigentliche Inhalt der E-Mail. Dieser kann reinen Text oder HTML enthalten. Anhänge werden mit MIME (Multipurpose Internet Mail Extensions) codiert.
: Der eigentliche Inhalt der E-Mail. Er kann reinen Text oder HTML enthalten. Anhänge werden über MIME (Multipurpose Internet Mail Extensions) codiert.


==== Beispiel einer E-Mail ====   
==== Beispiel einer E-Mail ====
Ein vollständiges Beispiel einer SMTP-E-Mail mit Header und Body:  


<pre>
<pre>
From: alice@example.com
From: alice@example.com
To: bob@example.com
To: bob@example.com
Cc: charlie@example.com
Cc: charlie@example.com
Bcc: dave@example.com
Bcc: dave@example.com
Subject: Testmail
Subject: Testmail
Date: Tue, 12 Mar 2024 10:00:00 +0100
Date: Tue, 12 Mar 2024 10:00:00 +0100
Message-ID: <123456@example.com>
Message-ID: <123456@example.com>
MIME-Version: 1.0
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"
Content-Type: text/plain; charset="UTF-8"


Hallo Bob,
Hallo Bob,


dies ist eine Testmail mit CC und BCC.
dies ist eine Testmail mit CC und BCC.


Grüße
Grüße
Alice
Alice
</pre>   
</pre>   


==== SMTP-Agenten ====   
==== SMTP-Agenten ====
Bei der Verarbeitung einer E-Mail sind mehrere Komponenten beteiligt:  


; **MTA (Mail Transfer Agent)**  
; '''MTA (Mail Transfer Agent)'''  
: Ein MTA empfängt, speichert und leitet E-Mails weiter. Er kommuniziert mit anderen MTAs über SMTP und entscheidet anhand von DNS-Einträgen, wohin eine E-Mail zugestellt wird.   
: Nimmt E-Mails entgegen, speichert sie und leitet sie weiter.   


; **MDA (Mail Delivery Agent)**  
; '''MDA (Mail Delivery Agent)'''  
: Der MDA nimmt die E-Mail von einem MTA entgegen und speichert sie im Postfach des Empfängers.   
: Zuständig für die Ablage der E-Mail im Postfach des Empfängers.   


; **MUA (Mail User Agent)**  
; '''MUA (Mail User Agent)'''  
: Ein MUA ist das Programm oder die Schnittstelle, mit der der Benutzer E-Mails sendet oder empfängt.   
: Das E-Mail-Programm oder Webmail-Interface des Benutzers zum Senden und Empfangen von E-Mails.   


; **MSA (Mail Submission Agent)**  
; '''MSA (Mail Submission Agent)'''  
: Ein MSA nimmt E-Mails von einem MUA entgegen und leitet sie an einen MTA weiter.   
: Nimmt E-Mails von einem MUA entgegen und übergibt sie an den MTA zur Weiterleitung.   


==== Ablauf einer SMTP-Kommunikation ====   
==== Ablauf einer SMTP-Kommunikation ====
Die SMTP-Kommunikation erfolgt in mehreren Schritten:  


1. **Verbindung aufbauen** 
# Der sendende Server öffnet eine TCP-Verbindung zum empfangenden Server auf Port 25 oder 587.   
  * Der sendende MTA öffnet eine TCP-Verbindung zum empfangenden MTA auf Port 25 oder 587.   
# Der Server begrüßt sich mit `HELO` oder `EHLO`. 
  * Begrüßung über `HELO` oder `EHLO`.   
# Der Absender (`MAIL FROM`) und Empfänger (`RCPT TO`) werden angegeben. 
# Die Nachricht wird mit `DATA` gesendet, gefolgt von einem Punkt (`.`) zur Beendigung. 
# Der Server bestätigt die Annahme mit `250 OK`. 
# Die Verbindung wird mit `QUIT` beendet.   


2. **Absender und Empfänger spezifizieren** 
==== Beispiel einer SMTP-Sitzung ====
  * `MAIL FROM:<alice@example.com>` 
Hier ein Beispiel für eine SMTP-Interaktion zwischen zwei Servern:   
  * `RCPT TO:<bob@example.com>`  


3. **Nachricht senden** 
<pre>
  * `DATA` 
220 mail.example.com ESMTP
  * Header und Nachricht werden übertragen 
EHLO sender.example.com
  * Abschluss mit `.` 
250-mail.example.com
250-SIZE 10485760
250-STARTTLS
250 AUTH PLAIN LOGIN
MAIL FROM:<alice@example.com>
250 OK
RCPT TO:<bob@example.com>
250 OK
DATA
354 End data with <CR><LF>.<CR><LF>
From: alice@example.com
To: bob@example.com
Subject: Test


4. **Bestätigung und Beenden** 
Dies ist eine SMTP-Testnachricht.
  * Server antwortet mit `250 OK` 
  * Verbindung wird mit `QUIT` beendet 


==== Beispiel einer SMTP-Sitzung ====  
.
250 OK: queued as 12345
QUIT
221 Bye
</pre>  


<pre> 
==== Erweiterungen von SMTP ====
220 mail.example.com ESMTP 
SMTP kann durch verschiedene Erweiterungen ergänzt werden:   
EHLO sender.example.com 
250-mail.example.com 
250-SIZE 10485760 
250-STARTTLS 
250 AUTH PLAIN LOGIN 
MAIL FROM:<alice@example.com> 
250 OK 
RCPT TO:<bob@example.com> 
250 OK 
DATA 
354 End data with <CR><LF>.<CR><LF> 
From: alice@example.com 
To: bob@example.com 
Subject: Test  


Dies ist eine SMTP-Testnachricht.   
; '''STARTTLS''' 
: Ermöglicht die Verschlüsselung der Verbindung mit TLS.   


.  
; '''SMTP AUTH'''  
250 OK: queued as 12345 
: Authentifiziert den Absender mit Benutzername und Passwort.  
QUIT 
221 Bye 
</pre>  


==== Erweiterungen von SMTP ====  
; '''DSN (Delivery Status Notification)''' 
: Ermöglicht die Rückmeldung über den Zustellstatus der E-Mail.  


* **STARTTLS** – Verschlüsselte Verbindung mit TLS 
; '''PIPELINING'''  
* **SMTP AUTH** – Authentifizierung des Absenders 
: Erlaubt das Senden mehrerer Befehle in einer Übertragung, um die Effizienz zu steigern.  
* **DSN (Delivery Status Notification)** – Rückmeldung über Zustellstatus  
* **PIPELINING** – Mehrere Befehle in einer Übertragung   


==== Fazit ====
==== Fazit ====
SMTP regelt den Versand und Empfang von E-Mails zwischen Servern. Dabei arbeiten verschiedene Agenten wie MTA, MDA und MSA zusammen. Eine E-Mail enthält Header, Body und Routing-Informationen. Durch Erweiterungen wie STARTTLS und SMTP AUTH kann die Sicherheit verbessert werden.
SMTP ist das zentrale Protokoll für den E-Mail-Versand. Es definiert, wie E-Mails weitergeleitet werden und welche Komponenten an der Verarbeitung beteiligt sind. Durch Erweiterungen wie STARTTLS und SMTP AUTH kann die Sicherheit erhöht werden.
}}

Aktuelle Version vom 11. März 2025, 21:33 Uhr

Einführung in SMTP

Das Simple Mail Transfer Protocol (SMTP) ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden.

Port 25
Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS.
Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern.
Port 465
Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**.
Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann.
Port 587
Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung).
Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann.

Hinweis: Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet.


Das Simple Mail Transfer Protocol (SMTP) ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es regelt, wie E-Mails zwischen Mailservern übertragen werden und welche Ports für die Kommunikation genutzt werden.

Port 25
Wird für die Server-zu-Server-Kommunikation (MTA-zu-MTA) genutzt, meist mit optionalem STARTTLS.
Achtung: Viele Provider blockieren ausgehenden Traffic auf Port 25, um Spam zu verhindern.
Port 465
Wird für Mail-Submission genutzt, **mit erzwungener TLS-Verschlüsselung (Implicit TLS)**.
Diese Methode wird vom BSI empfohlen, da sie nicht durch Downgrade-Angriffe manipuliert werden kann.
Port 587
Wird für Mail-Submission genutzt, aber mit **STARTTLS** (opportunistische Verschlüsselung).
Das BSI rät von STARTTLS ab, da es durch Man-in-the-Middle-Angriffe entfernt werden kann.

Hinweis: Das **BSI empfiehlt ausdrücklich Port 465 für Mail-Submission**, da hier eine direkte TLS-Verbindung erzwungen wird. Port 25 bleibt für den Transport zwischen Mailservern (MTA-zu-MTA), ist aber für Clients ungeeignet. }}

Aufbau einer E-Mail

Eine E-Mail besteht aus zwei Hauptbestandteilen:

Envelope (Umschlag)
Enthält die Adressen des Absenders und des Empfängers, die für die SMTP-Zustellung verwendet werden. Diese Informationen sind nicht im Header sichtbar.
Header (Kopfzeilen)
Enthält Metadaten zur E-Mail. Wichtige Felder sind:
From: Absenderadresse
To: Empfängeradresse
Cc: Kopieempfänger (Carbon Copy)
Bcc: Verdeckte Kopieempfänger (Blind Carbon Copy)
Subject: Betreff der Nachricht
Date: Zeitpunkt des Versands
Message-ID: Eindeutige Kennung der Nachricht
Reply-To: Adresse für Antworten
Received: Routing-Informationen über die Mailserver, die die E-Mail verarbeitet haben
MIME-Version: Gibt an, ob die E-Mail Multipart-Inhalte oder Anhänge enthält
Content-Type: Definiert das Format der Nachricht, z. B. Text oder HTML
Body (Nachrichtentext)
Der eigentliche Inhalt der E-Mail. Er kann reinen Text oder HTML enthalten. Anhänge werden über MIME (Multipurpose Internet Mail Extensions) codiert.

Beispiel einer E-Mail

Ein vollständiges Beispiel einer SMTP-E-Mail mit Header und Body:

From: alice@example.com
To: bob@example.com
Cc: charlie@example.com
Bcc: dave@example.com
Subject: Testmail
Date: Tue, 12 Mar 2024 10:00:00 +0100
Message-ID: <123456@example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="UTF-8"

Hallo Bob,

dies ist eine Testmail mit CC und BCC.

Grüße
Alice

SMTP-Agenten

Bei der Verarbeitung einer E-Mail sind mehrere Komponenten beteiligt:

MTA (Mail Transfer Agent)
Nimmt E-Mails entgegen, speichert sie und leitet sie weiter.
MDA (Mail Delivery Agent)
Zuständig für die Ablage der E-Mail im Postfach des Empfängers.
MUA (Mail User Agent)
Das E-Mail-Programm oder Webmail-Interface des Benutzers zum Senden und Empfangen von E-Mails.
MSA (Mail Submission Agent)
Nimmt E-Mails von einem MUA entgegen und übergibt sie an den MTA zur Weiterleitung.

Ablauf einer SMTP-Kommunikation

Die SMTP-Kommunikation erfolgt in mehreren Schritten:

  1. Der sendende Server öffnet eine TCP-Verbindung zum empfangenden Server auf Port 25 oder 587.
  2. Der Server begrüßt sich mit `HELO` oder `EHLO`.
  3. Der Absender (`MAIL FROM`) und Empfänger (`RCPT TO`) werden angegeben.
  4. Die Nachricht wird mit `DATA` gesendet, gefolgt von einem Punkt (`.`) zur Beendigung.
  5. Der Server bestätigt die Annahme mit `250 OK`.
  6. Die Verbindung wird mit `QUIT` beendet.

Beispiel einer SMTP-Sitzung

Hier ein Beispiel für eine SMTP-Interaktion zwischen zwei Servern:

220 mail.example.com ESMTP
EHLO sender.example.com
250-mail.example.com
250-SIZE 10485760
250-STARTTLS
250 AUTH PLAIN LOGIN
MAIL FROM:<alice@example.com>
250 OK
RCPT TO:<bob@example.com>
250 OK
DATA
354 End data with <CR><LF>.<CR><LF>
From: alice@example.com
To: bob@example.com
Subject: Test

Dies ist eine SMTP-Testnachricht.

.
250 OK: queued as 12345
QUIT
221 Bye

Erweiterungen von SMTP

SMTP kann durch verschiedene Erweiterungen ergänzt werden:

STARTTLS
Ermöglicht die Verschlüsselung der Verbindung mit TLS.
SMTP AUTH
Authentifiziert den Absender mit Benutzername und Passwort.
DSN (Delivery Status Notification)
Ermöglicht die Rückmeldung über den Zustellstatus der E-Mail.
PIPELINING
Erlaubt das Senden mehrerer Befehle in einer Übertragung, um die Effizienz zu steigern.

Fazit

SMTP ist das zentrale Protokoll für den E-Mail-Versand. Es definiert, wie E-Mails weitergeleitet werden und welche Komponenten an der Verarbeitung beteiligt sind. Durch Erweiterungen wie STARTTLS und SMTP AUTH kann die Sicherheit erhöht werden. }}