SMTP – Simple Mail Transfer Protocol: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
=== SMTP – Simple Mail Transfer Protocol ===   
+
{{Box|title=SMTP – Simple Mail Transfer Protocol
 +
|content=
 +
==== Einführung in SMTP ====
 +
Das '''Simple Mail Transfer Protocol (SMTP)''' ist das Standardprotokoll für den Versand und die Weiterleitung von E-Mails. Es definiert, wie E-Mails zwischen Mailservern übertragen werden. SMTP basiert auf einer Client-Server-Architektur und nutzt standardmäßig:  
  
==== Aufbau einer E-Mail ====  
+
* Port 25 für die Server-zu-Server-Kommunikation 
 +
* Port 587 für authentifizierte Clients 
 +
* Port 465 für verschlüsselte SMTP-Verbindungen (veraltet, aber noch in Gebrauch)  
  
 +
==== 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.
 +
}}

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