Zum Inhalt springen

„Local Mail Transfer Protocol“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][ungesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
K Vorlagen-fix (RFC)
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
Das '''Local Mail Transfer Protocol''' ('''LMTP''') ist eine Ableitung des [[SMTP]]-[[Netzwerkprotokoll|Protokolls]].
Das '''Local Mail Transfer Protocol''' (LMTP) ist ein [[Kommunikationsprotokoll]], das vom [[Simple Mail Transfer Protocol]] (SMTP) abgeleitet ist und verbesserter Zustellung von [[E-Mail]]s in Postfächer dient.


== Anlass ==
Während SMTP für die weltweite [[E-Mail|Mail]]-Zustellung zwischen beliebigen [[Mail Transfer Agent]]s entwickelt wurde, ist LMTP für die Auslieferung der Mails innerhalb einer lokalen Organisation, d. h. für den Transport zwischen verschiedenen lokalen Serverkomponenten wie etwa Mail Transfer Agent und [[Mail Delivery Agent]] gedacht. Die Auslieferung an die einzelnen Benutzerpostfächer erfolgt dagegen durch den Mail Delivery Agent.
Eine an zwei Adressaten addressierte E-Mail kann an den einen zustellbar sein und an den anderen nicht, beispielsweise weil der eine existiert und der andere nicht. Traditionell per [[Kommandozeile]] gespeiste [[Mail Delivery Agent]]s lassen nur einen [[Rückgabewert]] für alle Adressaten zusammen zu, sodass Teilerfolge unklare Problemlagen hinterlassen. [[Delivery Status Notification]]s gestalten sich schwierig.


== Lösungsansatz ==
== Die Unterschiede zu SMTP ==
Im LMTP ist auch im Unterschied zum SMTP für jeden einzelnen Adressaten eine eigene Rückmeldung über Erfolg oder Misserfolg vorgesehen.<ref name=RFC/> Dabei muss die Reihenfolge des [[Client]]s eingehalten werden. Die erweiterten [[Fehlercode]]s vom erweiterten SMTP (ESMTP) sind obligatorisch. Dem sendenden [[Mail Transfer Agent]] wird so möglich, differenziert und gezielt auf Fehlschläge zu reagieren.


== Weitere wesentliche Unterschiede zum SMTP ==
* Im Gegensatz zu SMTP ist LMTP so konzipiert, dass es zur sicheren Kommunikation mit Servern verwendet werden kann, die keine eigene [[Warteschlange (Datenstruktur)|Warteschlange]] haben. Falls die Zustellung nicht direkt erfolgen kann, weist der Server die Mail temporär ab. Nur wenn die Mail sofort vollständig zugestellt werden kann, findet die Übertragung per LMTP statt.
* [[Wide Area Network]]s nicht empfohlen<ref name=RFC/>
* Um zu vermeiden, dass ein Nur-SMTP-Client mit einem Nur-LMTP-Server kommuniziert, wird statt des SMTP-typischen HELO- bzw. EHLO-Handshake LHLO benutzt.
* [[Server (Software)|Server]] ohne [[Warteschlange (Datenstruktur)|Warteschlange]]<ref name=RFC/>
* Wenn es in der aktuellen Session kein erfolgreiches RCPT-Kommando gab, muss der Server als Antwort auf DATA den Fehlercode 503 zurückliefern.
* [[Port (Netzwerkadresse)|Port]] 25 ausgeschlossen<ref name=RFC/>
* Nach dem abschließenden "." des DATA Kommandos muss der Server eine Statusmeldung pro angenommenem RCPT-Kommando senden. Dabei muss die Reihenfolge des Clients eingehalten werden.
* [[Sitzung (Informatik)|Sitzung]]sbeginn mit LHLO statt EHLO oder HELO<ref name=RFC/>

== Beispiel aus Sicht des Clients ==
Zur besseren Verständlichkeit ist das folgende Beispiel mit Kommentaren erweitert, die nicht zum Protokoll gehören.
Diese beginnen mit # und erstrecken sich bis zum Ende der Zeile.


== Beispiel ==
Zur besseren Verständlichkeit ist das folgende Beispiel mit Kommentaren erweitert, die nicht zum Protokoll gehören, mit # beginnen und sich bis zum Ende der Zeile erstrecken.
< 220 server.tld LMTP server ready
< 220 server.tld LMTP server ready
> LHLO client.tld # LHLO Handshake statt HELO/EHLO
> LHLO client.tld # Client sendet LHLO statt HELO/EHLO
< 250-server.tld
< 250-server.tld
< 250-PIPELINING
< 250-PIPELINING
Zeile 21: Zeile 22:
> MAIL FROM:<user@example.tld>
> MAIL FROM:<user@example.tld>
< 250 OK
< 250 OK
> RCPT TO:<wiki@wikipedia.org> # 1. erfolgreiches RCPT
> RCPT TO:<wiki@wikipedia.org> # 1. akzeptiertes RCPT
< 250 OK
< 250 OK
> RCPT TO:<sales@wikipedia.org> # nicht erfolgreiches RCPT
> RCPT TO:<sales@wikipedia.org> # nicht akzeptiertes RCPT
< 550 No such user here
< 550 No such user here
> RCPT TO:<admin@wikipedia.org> # 2. erfolgreiches RCPT
> RCPT TO:<admin@wikipedia.org> # 2. akzeptiertes RCPT
< 250 OK
< 250 OK
> DATA
> DATA
< 354 Start mail input; end with <CRLF>.<CRLF>
< 354 Start mail input; end with <CRLF>.<CRLF>
> # Client sendet Mail
> Client sends message
> .
> .
# SMTP erlaubt hier nur eine Antwort,
# LMTP dagegen eine Antwort pro erfolgreichem
# RCPT in entsprechender Reihenfolge.
< 250 <wiki@wikipedia.org> OK # Zustellung an wiki@wikipedia.org erfolgreich
< 250 <wiki@wikipedia.org> OK # Zustellung an wiki@wikipedia.org erfolgreich
< 452 <admin@wikipedia.org> is temporarily over quota # Zustellung an admin@wikipedia.org temporär
< 452 <admin@wikipedia.org> is temporarily over quota # Zustellung an admin@wikipedia.org temporär nicht möglich,
# nicht möglich
# der Client kann es später erneut versuchen
# der Client wird es also später erneut
# versuchen
> QUIT
> QUIT
< 221 server.tld closing connection
< 221 server.tld closing connection


== Software ==
== Software ==

LMTP wird in mehreren Softwarepaketen unterstützt, darunter
LMTP wird in mehreren Softwarepaketen unterstützt, darunter
* [[Exim]]
* [[Postfix (Mail Transfer Agent)|Postfix]]
* [[Sendmail]]
* [[Cyrus (Server)|Cyrus]]
* [[Cyrus (Server)|Cyrus]]
* [[Dovecot]]<ref>{{Internetquelle|url=https://doc.dovecot.org/2.3/configuration_manual/protocols/lmtp_server/|titel=LMTP Server &#8212; Dovecot documentation|abruf=2025-01-15}}</ref>
* [[Dovecot]]
* [[Exim]]<ref>{{Internetquelle|url=https://www.exim.org/exim-html-current/doc/html/spec_html/ch-the_lmtp_transport.html|titel=28. The lmtp transport|werk=Specification of the Exim Mail Transfer Agent|abruf=2025-01-15}}</ref>
* [[Postfix (Mail Transfer Agent)|Postfix]]<ref>{{Internetquelle|url=http://www.postfix.org/lmtp.8.html|titel=Postfix manual - smtp(8)|abruf=2025-01-15}}</ref>
* [[Sendmail]]


== Weblinks ==
== Einzelnachweise ==
<references>
* {{RFC-Internet |Autor=J. Myers |RFC=2033 |Titel=Local Mail Transfer Protocol |Datum=1996-10}}
<ref name=RFC>{{RFC-Internet |Autor=J. Myers |RFC=2033 |Titel=Local Mail Transfer Protocol |Datum=1996-10}}</ref>
</references>


[[Kategorie:Internet-E-Mail-Protokoll]]
[[Kategorie:Internet-E-Mail-Protokoll]]

Version vom 15. Januar 2025, 16:03 Uhr

Das Local Mail Transfer Protocol (LMTP) ist ein Kommunikationsprotokoll, das vom Simple Mail Transfer Protocol (SMTP) abgeleitet ist und verbesserter Zustellung von E-Mails in Postfächer dient.

Anlass

Eine an zwei Adressaten addressierte E-Mail kann an den einen zustellbar sein und an den anderen nicht, beispielsweise weil der eine existiert und der andere nicht. Traditionell per Kommandozeile gespeiste Mail Delivery Agents lassen nur einen Rückgabewert für alle Adressaten zusammen zu, sodass Teilerfolge unklare Problemlagen hinterlassen. Delivery Status Notifications gestalten sich schwierig.

Lösungsansatz

Im LMTP ist auch im Unterschied zum SMTP für jeden einzelnen Adressaten eine eigene Rückmeldung über Erfolg oder Misserfolg vorgesehen.[1] Dabei muss die Reihenfolge des Clients eingehalten werden. Die erweiterten Fehlercodes vom erweiterten SMTP (ESMTP) sind obligatorisch. Dem sendenden Mail Transfer Agent wird so möglich, differenziert und gezielt auf Fehlschläge zu reagieren.

Weitere wesentliche Unterschiede zum SMTP

Beispiel

Zur besseren Verständlichkeit ist das folgende Beispiel mit Kommentaren erweitert, die nicht zum Protokoll gehören, mit # beginnen und sich bis zum Ende der Zeile erstrecken.

< 220 server.tld LMTP server ready
> LHLO client.tld                                       # Client sendet LHLO statt HELO/EHLO
< 250-server.tld
< 250-PIPELINING
< 250 SIZE
> MAIL FROM:<user@example.tld>
< 250 OK
> RCPT TO:<wiki@wikipedia.org>                          # 1. akzeptiertes RCPT
< 250 OK
> RCPT TO:<sales@wikipedia.org>                         # nicht akzeptiertes RCPT
< 550 No such user here
> RCPT TO:<admin@wikipedia.org>                         # 2. akzeptiertes RCPT
< 250 OK
> DATA
< 354 Start mail input; end with <CRLF>.<CRLF>
>                                                       # Client sendet Mail
> .
< 250 <wiki@wikipedia.org> OK                           # Zustellung an wiki@wikipedia.org erfolgreich
< 452 <admin@wikipedia.org> is temporarily over quota   # Zustellung an admin@wikipedia.org temporär nicht möglich,
                                                        # der Client kann es später erneut versuchen
> QUIT
< 221 server.tld closing connection

Software

LMTP wird in mehreren Softwarepaketen unterstützt, darunter

Einzelnachweise

  1. a b c d e J. Myers: RFC: 2033 – Local Mail Transfer Protocol. Oktober 1996 (englisch).
  2. LMTP Server — Dovecot documentation. Abgerufen am 15. Januar 2025.
  3. 28. The lmtp transport. In: Specification of the Exim Mail Transfer Agent. Abgerufen am 15. Januar 2025.
  4. Postfix manual - smtp(8). Abgerufen am 15. Januar 2025.