SMTP – Simple Mail Transfer Protocol

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

SMTP – Simple Mail Transfer Protocol

Aufbau einer E-Mail

Eine E-Mail besteht aus zwei Hauptbestandteilen:

**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.
**Header (Kopfzeilen)**
Enthält Metadaten zur Nachricht. Wichtige Felder sind:
  • From: Absenderadresse
  • To: Empfängeradresse
  • Cc: Kopieempfänger (Carbon Copy)
  • Bcc: Verdeckte Kopieempfänger (Blind Carbon Copy), nicht für andere sichtbar
  • Subject: Betreff der Nachricht
  • Date: Zeitpunkt des Versands
  • Message-ID: Eindeutige Kennung der Nachricht
  • Reply-To: Adresse für Antworten
  • Received: Enthält die Routing-Informationen der Nachricht
**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.

Beispiel einer E-Mail

  
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

**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.
**MDA (Mail Delivery Agent)**
Der MDA nimmt die E-Mail von einem MTA entgegen und speichert sie im Postfach des Empfängers.
**MUA (Mail User Agent)**
Ein MUA ist das Programm oder die Schnittstelle, mit der der Benutzer E-Mails sendet oder empfängt.
**MSA (Mail Submission Agent)**
Ein MSA nimmt E-Mails von einem MUA entgegen und leitet sie an einen MTA weiter.

Ablauf einer SMTP-Kommunikation

1. **Verbindung aufbauen**

  * Der sendende MTA öffnet eine TCP-Verbindung zum empfangenden MTA auf Port 25 oder 587.  
  * Begrüßung über `HELO` oder `EHLO`.  

2. **Absender und Empfänger spezifizieren**

  * `MAIL FROM:<alice@example.com>`  
  * `RCPT TO:<bob@example.com>`  

3. **Nachricht senden**

  * `DATA`  
  * Header und Nachricht werden übertragen  
  * Abschluss mit `.`  

4. **Bestätigung und Beenden**

  * Server antwortet mit `250 OK`  
  * Verbindung wird mit `QUIT` beendet  

Beispiel einer SMTP-Sitzung

  
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

  • **STARTTLS** – Verschlüsselte Verbindung mit TLS
  • **SMTP AUTH** – Authentifizierung des Absenders
  • **DSN (Delivery Status Notification)** – Rückmeldung über Zustellstatus
  • **PIPELINING** – Mehrere Befehle in einer Übertragung

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.