Einleitung
Simple Mail Transfer Protocol (SMTP)
Nachrichtenformat
Multipurpose Internet Mail Extension (MIME)
Mail-Server Software
Übertragungsprotokoll spezifiziert in RFC 821 vom August 1982
Nachrichtenformat spezifiziert in RFC 822 vom August 1982
Übertragung von e-Mail zuverlässig und effizient
Nutzung von verschiedenen Transport Protokollen:
TCP/IP, NCP, NITS, X-25
Transport über Zwischenstationen (Relays)
Store und Forward Konzept
Nachrichtenformat nur ASCII Text
andere Formate mit MIME:
Multipurpose Internet Mail Extensions
OSI Konkurenzprotokoll: X.400
Erweitertes Übertragungsprotokoll ESMTP (SMTP Service Extensions) spezifiziert in RFC 1869 vom November 1995
Die Architektur der SMTP Email Software zeigt folgendes Bild.
Ablaufbeispiel
Kommandos
Antworten
Neuere Versionen des Protokolls sind ESMTP oder SMTP over TLS.
SMTP definiert die heute überall bekannten Email-Adressen:
empfaenger@mail.domain.de
Der Ablauf einer SMTP Übertragung ist in folgender Tabelle gezeigt.
Client Aktion | Server Aktion |
---|---|
TCP/IP Verbindung zu Port 25 | |
220 server.domain.de ESMTP | |
HELO client.dom.de | |
250 server.domain.de | |
MAIL FROM: <u@client.dom.de> | |
250 Ok | |
RCPT TO: <e@mail.domain.de> | |
250 Ok | |
DATA | |
354 End data with <CR><LF>.<CR><LF> | |
Text der Email | |
. | |
250 Ok | |
QUIT | |
221 Bye | |
Abbau der TCP/IP Verbindung |
Beispiel einer SMTP Kommunikation mit der 'rumms'.
telnet rumms 25 Trying 134.155.50.52... Connected to rumms. Escape character is '^]'. HELO krabel-wh.isdn.uni-mannheim.de 220 SMTPSERVER ESMTP der UNIVERSITAET MANNHEIM; Sun, 11 May 2004 20:16:35 +0200 (MEST) 250 rumms.uni-mannheim.de Hello p3ppp226.rz.uni-mannheim.de [134.155.17.226], pleased to meet you MAIL FROM: krabel@p3ppp226.rz.uni-mannheim.de 250 2.1.0 krabel@p3ppp226.rz.uni-mannheim.de... Sender ok RCPT TO: krabel@rz.uni-mannheim.de 250 2.1.5 krabel@rz.uni-mannheim.de... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Hallo Heinz, dies ist eine Test mit telnet smtp. Gruesse, heinz . 250 2.0.0 h4BIGZs9017920 Message accepted for delivery QUIT 221 2.0.0 rumms.uni-mannheim.de closing connection Connection closed by foreign host.
Ergebnis der Mailzustellung durch die 'rumms'.
From krabel@p3ppp226.rz.uni-mannheim.de Sun May 11 20:18:20 2004 Return-Path: <krabel@p3ppp226.rz.uni-mannheim.de> Received: from rumms.uni-mannheim.de (rumms.uni-mannheim.de [134.155.50.52]) by krabum2.rz.uni-mannheim.de (8.12.7/8.12.7/SuSE Linux 0.6) with ESMTP id h4BIIKMs013655 for <krabel@krabum2.rz.uni-mannheim.de>; Sun, 11 May 2004 20:18:20 +0200 Received: from krabel-wh.isdn.uni-mannheim.de (p3ppp226.rz.uni-mannheim.de [134.155.17.226]) by rumms.uni-mannheim.de (8.12.9/8.12.9) with SMTP id h4BIGZs9017920 for krabel@rz.uni-mannheim.de; Sun, 11 May 2004 20:17:36 +0200 (MEST) Message-Id: <200405111817.h4BIGZs9017920@rumms.uni-mannheim.de> X-Virus-Scanned: by amavisd-new X-Spamblock-maybe: undisclosed recipients From: krabel@p3ppp226.rz.uni-mannheim.de To: undisclosed-recipients:; Date: Sun, 11 May 2004 20:16:35 +0200 (MEST) Hallo Heinz, dies ist eine Test mit telnet smtp. Gruesse, heinz
<CRLF>.<CRLF>
.
Kommt diese Zeichenfolge in dem Text vor, wird sie als
<CRLF>..<CRLF>
gesendet.
Der Empfänger muss den zusätzlichen Punkt wieder entfernen.
Der Text darf nur 7-bit ASCII Zeichen enthalten.
Kommandos von ESMTP, die von rumms unterstützt werden:
EHLO localhost 250-rumms.uni-mannheim.de Hello x.uni-mannheim.de [134.155.x.x], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 50000000 250-DSN 250-AUTH DIGEST-MD5 CRAM-MD5 PLAIN LOGIN 250-DELIVERBY 250 HELP HELP 214-2.0.0 This is sendmail version 8.12.11 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 HELP AUTH 214-2.0.0 AUTH mechanism [initial-response] 214-2.0.0 Start authentication. 214 2.0.0 End of HELP info HELP STARTTLS 214-2.0.0 STARTTLS 214-2.0.0 Start TLS negotiation. 214 2.0.0 End of HELP info
Auf jedes Kommando folgt genau eine Antwort. Die Antwort besteht aus einer 3-ziffrigen Statusnummer (für Programme) und einer erklärenden Zeichenkette (für Menschen). Eine Auswahl der Antworten aus RFC 821 ist im folgenden zu sehen.
211 System status, or system help reply 220 <domain> Service ready 221 <domain> Service closing transmission channel 250 Requested mail action okay, completed 251 User not local; will forward to <forward-path> 354 Start mail input; end with <CRLF>.<CRLF> 421 <domain> Service not available, closing transmission channel 450 Requested mail action not taken: mailbox unavailable [E.g., mailbox busy] 451 Requested action aborted: local error in processing 452 Requested action not taken: insufficient system storage 500 Syntax error, command unrecognized [This may include errors such as command line too long] 501 Syntax error in parameters or arguments 502 Command not implemented 503 Bad sequence of commands 504 Command parameter not implemented 550 Requested action not taken: mailbox unavailable [E.g., mailbox not found, no access] 551 User not local; please try <forward-path> 552 Requested mail action aborted: exceeded storage allocation 553 Requested action not taken: mailbox name not allowed [E.g., mailbox syntax incorrect] 554 Transaction failed
Die Fehlernummern für die erste und zweite Ziffer sind nach folgendem System klassifiziert.
1xx: positive vorläufige Antwort. Wird nicht verwendet.
2xx: Antwort über den positiven Abschluss einer Aktion.
3xx: positive Zwischenantwort, d.h. bis jetzt ist alles OK aber es fehlen weitere Kommandos.
4xx: negative Zwischenantwort, d.h. bis jetzt ist die Anfrage nicht OK oder kann nicht bearbeitet werden.
5xx: Antwort über den negativen Ausgang einer Aktion oder die Ablehnung des Kommandos.
x0x: bezieht sich auf die Syntax
x1x: zur allgemeinen Information
x2x: bezieht sich auf die (TCP/IP) Verbindung
x5x: bezieht sich auf die SMTP Verarbeitung
Der Text der Email besteht aus verschiedenen Header-Teilen, die u.A. den Empfänger und den Absender bezeichnen, und dem eigentlichen ASCII-Text der Nachricht. Die Header können in beliebiger Reihenfolge erscheinen und werden durch eine Leerzeile (CRLF) vom Text der Nachricht getrennt.
Beispiel einer Emaildatei mit z.Z. üblichen Headerzeilen.
From owner-webmaster@listserv.uni-mannheim.de Sun May 11 14:43:45 2004 Return-Path: <owner-webmaster@listserv.uni-mannheim.de> Received: from rumms.uni-mannheim.de (rumms.uni-mannheim.de [134.155.50.52]) by krabum2.rz.uni-mannheim.de (8.12.7/8.12.7/SuSE Linux 0.6) with ESMTP id h4BChjMs012633 for <xxxx@kyyy.rz.uni-mannheim.de>; Sun, 11 May 2004 14:43:45 +0200 Received: from warum.uni-mannheim.de (warum.uni-mannheim.de [134.155.50.51]) by rumms.uni-mannheim.de (8.12.9/8.12.9) with ESMTP id h4BChis9000673; Sun, 11 May 2004 14:43:44 +0200 (MEST) Received: (from major@localhost) by warum.uni-mannheim.de (8.11.2/8.11.2) id h4BChie22219 for webmaster-outnew; Sun, 11 May 2004 14:43:44 +0200 (MEST) X-Authentication-Warning: warum.uni-mannheim.de: major set sender to owner-webmaster@listserv.uni-mannheim.de using -f Received: from rumms.uni-mannheim.de (rumms.uni-mannheim.de [134.155.50.52]) by warum.uni-mannheim.de (8.11.2/8.11.2) with ESMTP id h4BChh122214 for <webmaster@warum.uni-mannheim.de>; Sun, 11 May 2004 14:43:43 +0200 (MEST) Received: from mail.gmx.net (mail.gmx.de [213.165.64.20]) by rumms.uni-mannheim.de (8.12.9/8.12.9) with SMTP id h4BChgs9000627 for <webmaster@bwl.uni-mannheim.de>; Sun, 11 May 2004 14:43:43 +0200 (MEST) Received: (qmail 28399 invoked by uid 65534); 11 May 2004 12:43:35 -0000 Received: from pD9ED592C.dip.t-dialin.net (EHLO pacomp) (217.237.89.44) by mail.gmx.net (mp016-rz3) with SMTP; 11 May 2004 14:43:35 +0200 Message-ID: <000601c317ba$d005c1e0$0100000a@pacomp> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0003_01C317CB.8AB00FE0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 X-Virus-Scanned: by amavisd-new Precedence: bulk X-Spamblock-maybe: Content-Type multipart/html From: "xxxxxx xxxxx" <marxmax@gmx.ch> Sender: owner-webmaster@listserv.uni-mannheim.de To: <webmaster@bwl.uni-mannheim.de> Subject: Wirtschaftsinformatik nicht gefunden! Date: Sun, 11 May 2004 14:42:26 +0200
Da SMTP als Emailinhalt nur 7-bit ASCII erlaubt ist einzusätzliches Protokoll notwendig, das den unerlaubten Inhalt geeignet codiert.
MIME ist kompatibel zu SMTP, d.h. MIME Inhalte können normal in einer SMTP Email transportiert werden. MIME wird auch im HTTP Protokoll verwendet.
MIME ist in RFC 1521 spezifiziert. MIME definiert u.A. folgende neue Header.
=hh
codiert, wobei 'hh' für die zwei hexadezimal Ziffern des Zeichens
steht.
multipart
wird z.B. zum Anfügen
von Attachements oder HTML-Inhalt verwendet.
Beispiel einer Emaildatei mit Attachements.
MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------070909050200090407080406" ... This is a multi-part message in MIME format. --------------070909050200090407080406 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: quoted-printable Hallo Herr ..., F=FCr Detailfragen stehe ich Ihnen nat=FCrlich jederzeit gerne pers=F6nlich zur Verf=FCgung. Viele Gr=FC=DFe=20 ... --------------070909050200090407080406 Content-Type: application/pdf; name="xxx_2_neu.pdf" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="xxx_2_neu.pdf" JVBERi0xLjMNJeLjz9MNCjMyIDAgb2JqDTw8IA0vTGluZWFyaXplZCAxIA0vTyAzNCANL0gg WyAyMjczIDQzNCBdIA0vTCA4NTgwMzEgDS9FIDgzNDU0NiANL04gMiANL1QgODU3MjczIA0+ ... XQ0+Pg1zdGFydHhyZWYNMTczDSUlRU9GDQ== --------------070909050200090407080406--
Erweiterung des Domain Name Systems (DNS)
durch MX-Records: Mail-Exchange Records
SMTP Client fragt DNS nach MX Record
und baut dann eine TCP/IP Verbindung zu einem der gelisteten Server auf
falls dieser SMTP Server nicht erreichbar ist wird der nächste aus der Liste versucht
Beispiel einer Anfrage nach gmail.com
mit dem
host
Kommando. Alternativ können die Programme
nslookup set query=mx
(veraltet) oder
dig -t mx
(für DNS Admins) verwendet werden.
$ host gmail.com gmail.com has address 64.233.161.83 gmail.com has address 64.233.171.83 gmail.com has address 72.14.253.83 gmail.com mail is handled by 50 gsmtp183.google.com. gmail.com mail is handled by 5 gmail-smtp-in.l.google.com. gmail.com mail is handled by 10 alt1.gmail-smtp-in.l.google.com. gmail.com mail is handled by 10 alt2.gmail-smtp-in.l.google.com. gmail.com mail is handled by 50 gsmtp147.google.com.
Die ersten 3 Zeilen der Antwort liefern drei alternative IP-Adressen
für gmail.com
. Die letzten 5 Zeilen listen fünf
alternative SMTP-Server. Die Zahlen vor dem Server geben eine
Priorität an. Keinere Zahlen bedueten eine höhere Priorität.
durch Email Reader oder GUI
Post Office Protocol (POP3), RFC 1225
Interactive Mail Access Protocol (IMAP), RFC 1064
Web-Interface, u.U. mit HTTPS
Weiterleitungen, automatische Antworten
Die Architektur der IMAP und POP3 Email Software zeigt folgendes Bild.
folgende Folien zeigen die Struktur des Mailaufkommens in 2005 an der Uni Heidelberg
aktuelle Statistiken aus der Universität Mannheim (nur innerhalb des Uni-Netzes)
SMTP relay to mailboxes from world wide
Postfix mailer software
early Spam detection and blocking
load balancing using MX records and packet filter
separate relay for own external users via SASL and SSL/TLS
based on amavisd-new framework
SpamAssassin spam filter
ClamAV virus checker or others
etc.
Cyrus IMAP software
SASL authentication and OpenSSL security
Sieve filters, user configurable
Horde Webmail with SSL/TLS
POP3 in Cyrus integrated
mailbox server for different user groups
OpenLDAP software
based on inetOrgPerson schema
additional attributes for mail system
user information from ADMD and Benutzer DB
Horde bietet diverse Anwendungen in Form von Modulen:
E-Mail:
Groupware:
Entwicklungstools:
flexible assignment of hardware to mail software components
uses cluster filesystems in Hitachi FC storage system
flexible, dynamic configurable, grouping of related pipeline steps
komplizierter als ein einziges System wie rumms
Routing der Mails ist schwieriger
aber flexibler
und skalierbar
Kosten können besser mit dem Bedarf skalieren
LDAP muss entworfen, aufgebaut und angebunden werden
Zuordnung zu Mailbox Rechner muss definiert werden
verschiedene Software lernen
Anbindung an Storage-System
alt: Annahme fast aller Mails
neu: Ablehnen von Allem was definitiv Spam ist
neu: Spam-filter ist eingeschaltet per Default
Nachjustierung der Parameter entsprechend dem Spam Aufkommen
© Universität Mannheim, Rechenzentrum, 2002-2007.
Heinz KredelLast modified: Mon May 5 23:02:52 CEST 2008