SMTP Simple Mail Transfer Protocol von Christoph Weitkamp Michael Johannfunke cweitkam@techfak.uni-bielefeld.de mjohannf@techfak.uni-bielefeld.de
Gliederung Beispiel: E-Mail Geschichte Aufbau Header Brief Vergleich User Agent Message Transfer Agent (MTA) Weg der E-Mail SMTP E-Mail Versand mit telnet Quellen
Geschichte der E-Mail Erstmals 1971 von Ray Tomlinson entwickelt Vorläufer SNDMSG und CYPNet RFC 822 von 1982
Aufbau einer E-Mail Adresse: localpart @ domain-name E-Mail maximal 64 Zeichen lang Envelope Header Body
Wichtige Header-Elemente To: Cc: Bcc: From: Subject: Received: Message-Id: E-Mail Adressen der primären Empfänger E-Mail Adressen der sekundären Empfänger E-Mail Adressen für blinde Kopien an Dritte Absender der Nachricht Kurzer einzeiliger Betreff der Nachricht Zeile, die von jedem MTA auf der Route eingefügt wird Eindeutige Identifizierung der Nachricht
Weitere Header-Elemente Date: Reply-To: Sender: In-Reply-To: References: Return-Path: Datum und Uhrzeit, wann die Nachricht gesendet wurde E-Mail Adresse an die Anwtworten gesendet werden sollen technischer Absender Kennung der Nachricht der diese Antwort gilt Andere relevante Nachrichtenkennungen Kann benutzt werden, um einen beliebigen Pfad zurück zum Sender zu bezeichnen
Beispiel für einen Header Received: by xyz.de. id AA00502; Mon, 19 Nov 2001 12:47:32 +0100 Received: from adam1 (715684625313-0001@[192.168.80.201]) by fwd00.xyz.de with smtp id 166Cyz-1KXYRsC; Tue, 20 Nov 2001 16:38:45 +0100 From: adam@xyz.de (Adam) To: eva@test.de (Eva) Subject: Beispiel-Mail Date: Mon, 19 Nov 2001 12:47:31 +0100 Reply-To: adam@xyz.de Message-ID: <9307191947AA00502.Adam@xyz.de> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-Mailer: Microsoft Outlook IMO, Build 9.0.2416 (9.0.2910.0)
Briefvergleich Mr. Daniel Dummkopf 18 Willow Lane White Plains, NY 10604 Umschlag Name: Mr. Daniel Dummkopf Street: 18 Willow Lane State: NY Zip code: 10604 Priority Urgent Encryption: None Subject: Invoice 1081 Dear Mr. Dummkopf, Our computer records show that you still have not paid the above invoice of $0,00. Please send us a check for $0,00 promptly. United Gizmo 180 Main St Boston, MA 02120 Yours truely United Gizmo Header Body From: United Gizmo Address: 180 Main St Location: Boston, MA 02120 Date: Jan. 30, 2004 Subject: Invoice 1081 Dear Mr. Dummkopf, Our computer records show that you still have not paid the above invoice of $0,00. Please send us a check for $0,00 promptly. Yours truely United Gizmo
User Agent Programm Schnittstelle E-Mail Versand und Empfang E-Mails editieren und verwalten Outlook, Eudora, Pegasus Mail, KMail, Mozilla
Message Transfer Agent Sendmail Unsichtbar Ausführung von SMTP-Befehlen Versenden und Zustellung von E-Mails
Weg der E-Mail user at a terminal sender user agent queue of mail to be sent message transfer agent TCP connection TCP Port 25 user at a terminal receiver user agent user mailboxes message transfer agent
Gliederung Beispiel: E-Mail SMTP Geschichte des SMTP Eigenschaften Funktionsweise Befehle Rückmeldecodes ESMTP E-Mail Versand mit telnet Quellen
Geschichte des SMTP Simple Mail Transfer Protocol RFC 821 veröffentlicht im August 1982 Network Working Group um Jonathan B. Postel Erweiterungen: RFC's 1123, 1651, 1869 RFC 1435(ESMTP) Codename Klensin: Editor war J. Klensin Aktuelle Version: RFC 2821 erschienen im April 2001
Eigenschaften Unterliegt dem Standard for the format of ARPA Internet text messages Versendet NVT ASCII Code - 7-bit Code in 8-bit verpackt, 8te bit = 0 Benutzt TCP über den bekannten Port 25 Punkt-zu-Punkt Auslieferung User File System Client SMTP Commands/Replies and Mail Server File System
Funktionsweise Client Server Punkt-zu-Punkt Auslieferung Store-And-Forward Beginn Anfrage Antwort Kommando Antwort Kommando => Reply Reply := 3-stellige Nummer + String Mail Antwort QUIT Antwort Ende t t
Befehle HELO <sending-host> Identifikation des Senders MAIL From:<from-adress> Adresse des Absenders RCTP To:<to-adress> Adresse des Empfängers DATA Beginn der Nachricht QUIT SMTP Session beenden HELP <topic> VRFY <string> Hilfe anfordern Benutzernamen prüfen RSET Zurücksetzen aller Infos EXPN Maillingliste erweitern NOOP Fordert nur ein O.K. An TURN Server und Client vertauschen
Rückmeldecodes Code Bedeutung 200 O.K. Rückmeldung 211 System Status oder Hilferückmeldung 214 Hilfe 220 <domain> Service bereit 221 <domain> Service schließt Kommunikationskanal 250 Kommando zulässig, Eingabe akzeptiert 251 User nicht lokal, Weiterleitung aktiviert 252 User nicht zu ermitteln 354 Email Eingabe beginnen 421 <domain> Service nicht erreichbar 450 Mailboxname nicht erreichbar 500 Syntaxfehler, Befehl nicht akzeptiert 501 Syntaxfehler in den Parametern oder Argumenten 502 Befehl nicht implementiert 503 Reihenfolge der Eingabe ist unbekannt 504 Befehlsparameter nicht akzeptabel 550 Mailbox nicht vorhanden 551 User nicht lokal 553 Mailboxname nicht erlaubt 554 Transaktion gescheitert
ESMTP Extended SMTP RFC 1435 veröffentlicht im Februar 1993 von J. Klensin Erweiterung auf 8bit ASCII Code Neuer Anmeldebefehl: EHLO
telnet Beispiel (1) S: weiti@linux: > telnet mailin.techfak.uni-bielefeld.de 25 E: Trying 129.70.136.237... Connected to mailin.techfak.uni-bielefeld.de. Escape character is ^]. 220 momotombo.techfak.uni-bielefeld.de ESMTP Sendmail 8.11.7p1+Sun/8.11.6/TechFak/ Mon, 29 Dec 2003 19:25:13 +0100 (MET) S: help E: 214-2.0.0 This is sendmail version 8.11.7p1+Sun 214-2.0.0 Topics: 214-2.0.0 HELO EHLO MAIL RCPT DATA 214-2.0.0 RSET NOOP QUIT HELP VRFY 214-2.0.0 EXPN VERB ETRN DSN AUTH 214-2.0.0 STARTTLS 214-2.0.0 For more info use "HELP <topic>". 214-2.0.0 To report bugs in the implementation send email to 214-2.0.0 sendmail-bugs@sendmail.org. 214-2.0.0 For local information send email to Postmaster at your site. 214 2.0.0 End of HELP info
telnet Beispiel (2) S: helo teleos-web.de E: 250 momotombo.techfak.uni-bielefeld.de Hello 212-62-72-212.teleos-web.de [212.62.72.212], pleased to meet you S: mail from:<weiti@teleos-web.de> E: 250 2.1.0 <weiti@teleos-web.de>... Sender ok S: rcpt to:<cweitkam@techfak.uni-bielefeld.de> E: 250 2.1.5 <cweitkam@techfak.uni-bielefeld.de>... Recipient ok S: data E: 354 Enter mail, end with "." on a line by itself S: This is a test mail! It arrived! Bye!. E: 250 2.0.0 hbtiqiv01712 Message accepted for delivery S: quit E: 221 2.0.0 momotombo.techfak.uni-bielefeld.de closing connection Connection closed by foreign host.
Quellen TCP/IP Illustrated The Protocolls, W. Stevens Computer Networks, A. S. Tannenbaum www.tecchannel.de RFC's 821, 822, 1435, 2821, 2822, 1521
MIME Multipurpose Internet Mail Extensions RFC 1521 von 1993 RFC 822 bleibt erhalten Header-Ergänzung um max 5 Felder erweiterte Strukturen für Nachrichtentexte Kodierregeln für ASCII-fremde Nachrichten für Dateianhänge aller Art Anpassung von User Agents
Header-Ergänzung MIME-Version Versionsnummer von MIME Content-Description Summary, für Benutzer sichtbar Content-Id Eindeutiger Bezeichner Content-Transfer-Encoding Kodierung der Nachricht Content-Type Bezeichnet die Art der Nachricht
MIME - Kodierungen Markierungen: ASCII-Text (7-bit) ASCII-Text (8-bit) binary Kodierungen: quoted-printable base64 Encoding
Typen & Subtypen für Content-Type Content-Type Subtype Beschreibung Text plain Unformatierter ASCII-Text richtext ASCII-Text mit einfachen Formatierungen Multipart mixed Unabhängige Teile in der angegeben Reihenfolge alternative Gleiche Nachricht in verschiedenen Formaten parallel Teile müssen gleichzeitig ausgegeben werden digest Jeder Teil ist eine vollständige Nachricht nach RFC 822 Message RFC 822 MIME-Nachricht nach RFC 822 partial Nachricht wurde zur Übertragung zerlegt External-Body Nachricht muss selbst vom Netz geholt werden Application octet-stream Nicht interpretierte Bytefolge postscript Druckbares Dokument im PostScript-Format Image gif Standbild im Gif-Format jpeg Standbild im Jpeg-Format Audio basic Klangdaten Video mpeg Laufbilder im Mpeg-Format