SMTP Grundlagen

Weitere Seiten zum Thema:

Was ist eine Mail

E-Mails sind nichts anderes als Dateien mit Informationen. für den Computer besteht eine Mail in der Regel aus einem Kopf (Header) und der Information selbst (Body). Anlagen unterscheidet der Computer erst mal nicht, wenn auch eine Anlage wird einfach mit in dem Body eingebaut. Eine Mail ist daher auch erst mal unteilbar und wird immer komplett übertragen. Den Computern sind die Inhalte der Mail völlig egal, solange er sie lesen und senden kann. Ihn interessieren nur die Informationen im Kopf, die ihm sagen, wohin die Mail muss. Das ist wie bei der gelben Post: Der Briefbote schaut auch einfach nur auf den Empfänger.

Das Internet und TCP/IP

Das Internet kann man sich erst mal vorstellen als ganz großes Netzwerk, in dem alle Systeme miteinander verbunden sind. Der Austausch von Daten erfolgt über die IP-Adressen. Das ist vergleichbar mit der Postleitzahl auf einem Brief. Jedes System hat eine "Nummer" und ist erst mal permanent zu erreichen.

Wenn ein Rechner an einen anderen etwas senden will, dann baut er eine Verbindung zur Gegenstelle auf und sendet die Daten. Wir sehen schon, dass es hierbei gleich mehrere Probleme gibt:

  • 8bit oder 7bit, UUEncode, Mime, Zeichensätze
  • Wie findet ein System die passende Gegenstelle
  • Was passiert, wenn die Gegenstelle nicht erreichbar ist
  • Die Geschwindigkeit ist immer nur so schnell wir das schwächste Stück in der Leitung

MIME, UUencode und warum es das alles gibt

In den Anfängen des Internets war es bei weitem noch nicht so selbstverständlich wie heute, dass wir schnelle Leitungen und viele Zeichen und Grafiken haben. Früher (und auch noch Heute) gibt es Systeme im Internet, die keineswegs ein PC mit Windows sind. Die Tatsache, dass der Buchstaben "A" auf einem PC im ASCII-Zeichensatz mit der Zahl "65 dezimal" dargestellt wird, ist keineswegs gottgegeben. Andere Systeme haben andere Zeichensätze (EBCDIC, UNICODE etc.) Auch all die schönen Sonderzeichen der verschiedenen Sprachen waren früher nicht verfügbar. Früher waren Kabel und Speicher teuer und daher hat man sich auf die wesentlichen Zeichen A-Z, Zahlen und einige Sonderzeichen und Steuerzeichen beschränkt. Und das konnte man damals mit 7 Bits darstellen. Wer weiß heute noch, dass CTRL-G eigentlich "Bell" hieß und den PC zum Piepen gebracht hat ?. Viele Weitverkehrsstrecken waren ebenso "7-bittig". Warum sollte man auf den langsamen Leitungen Bandbreite verschenken, nur um ein achtes Bit zu senden, das damals eh immer "0" gewesen wäre ?. Die gleiche Sparsamkeit führte zum Jahr 2000 Problem.

Sei es drum, SMTP und Internet Mail gibt es seit dieser Zeit. Und da "Kompatibilität" das wichtigste ist, gibt es einen gemeinsamen Nenner, um Zeichen umzusetzen. Und damit war auch UUENCODE und UUDECODE geboren. Diese Logik setzt einen 8bit Datenstrom zu einem 7bit Datenstrom um. Basiszeichen war ASCII und damit konnten alle Systeme miteinander kommunizieren, egal welche Verbindung oder Zwischensystem dazwischen war.

Relay

Damals war es auch noch höflich, Mails an ein anderen System bei sich Zwischenzulagern, bis der andre wieder am Netz war. Diese Funktion des "Relay" wird heute kaum noch gemacht um Spam und Missbrauch zu verhindern. Aber auch heute dient mein Provider noch als Relay. wenn mein System "down" ist, dann nimmt er für mich stellvertretend die Mails an und puffert diese, bis ich wieder da bin. Umgekehrt kann ich meine Mails an meinen Provider senden, damit dieser sie für mich verteilt. Zur Sicherheit lässt mein Provider diese Funktion aber nur zu, wenn ich der Absender bin (er kenn meine IP-Adresse) oder wenn ich der Empfänger bin (das ist mein Domainname). Zum Thema Relay im Internet gibt es eine eigene Seite.

Damit sind wir aber schon bei der Frage: "Wie findet jemand im Internet mich, wir finde ich das Ziel ?".

Stationen einer Mail

Ehe wir der Sache nachgehen, gilt es zwei Kommunikationsformen zu unterscheiden. Mails im Internet durchlaufen immer mindestens vier Punkte:

  • Mailclient
    Ich schreibe die Mails auf meinem PC und sende sie dann an meinen Provider. Es wäre zwar möglich, die Mails direkt ans Ziel zu bringen, aber wir werfen ja auch unsere Postbriefe in den gelben Kasten und lassen die Post den Rest machen. Das ist die Kommunikation zwischen meinem PC und dem Mailserver meines Providers. Das Protokoll zu Senden heißt hier SMTP. Mein Programm heißt Outlook Express, Eudora, Netscape Mail, Pegasus Mail etc. Mein "Programm" kann auch ein Webbrowser sein, dann arbeite ich quasi auf einem PC des Providers, den ich per HTTP fernsteure.
  • Mailserver 1
    Nachdem der Mailserver die Nachricht erhalten hat, stellt er sie in einer Warteschlange und sendet sie dann an das Zielsystem. Auch hierbei nutzt er SMTP als Protokoll. Wie der die Gegenstelle findet, kommt gleich.
  • Mailserver 2
    Der andere Mailserver nimmt die Mail einfach an und wirft sie in mein Postfach ein. Das Postfach ist einfach ein Speicherplatz auf dem Mailserver.
    Beispiele für Mailserver sind natürlich Microsoft Exchange, aber auch Sendmail, QMail oder Postfix unter Unix, GroupWise oder Notes und viele mehr. Oft sagt man statt Mailserver auch "MTA" (Message Transfer Agent). Das ist nicht ganz richtig aber das können wir gelten lassen. Hier ist dieser Mailserver aber zugleich auch Mailboxserver, d.h. hält die Postfächer.
  • Empfänger
    Am Ende kommt der Empfänger und möchte seine Mail lesen. Dazu startet dieser wieder sein Programm (Dieses nennt man auch "UA" oder userAgent"). Das Programm muss nun die Mails aus dem Postfach abholen. Dazu bedient es sich dem Protokoll POP3 oder IMAP4. Damit wird die Mail abgeholt und dann auf dem Bildschirm angezeigt. Die Mail ist dann auf dem Mailserver gelöscht, d.h. ich muss die Mail auf meiner Festplatte speichern. Damit kann ich die Nachricht natürlich nur auf diesem PC wieder anzeigen lassen. Mit dem Exchange Server ist das nicht zwingend so. Da kann ich die Mails auf dem Server belassen und sogar anderen Leuten zugriff drauf geben und sogar Regel durch den Server ausführen lassen.

So aber mehr ist Mail im Internet eigentlich nicht.

Fehlersuche beim Versand

Hier ein paar Checkpunkte, wenn Exchange keine Mails versenden kann.

  • Der Server muss das Ziel auflösen können
    Damit ist gemeint, dass der Exchange Server entweder per DNS die IP-Adresse des Mailservers für die Empfängerdomäne auflösen kann oder bei der Nutzung eines Smarthost eben diesen finden kann. (Siehe SMTP und MX und Namensauflösung im LAN und Internet.
  • Der Server muss den Weg dort hin können
    SMTP nutzt das Protokoll TCP/IP und wenn das andere System nicht im gleichen Subnetz steht, müssen die Leitwege, besonders das Default Gateway und natürlich auch das IP-Routing stimmen, damit die Pakete überhaupt immer an die nächste Station versendet werden
  • Der Server muss das Ziel erreichen können
    Jeder nutzt heute eine Firewall. für SMTP muss der Port 25 /TCP durchgelassen werden. Das können Sie z.B: mit einem Telnet (Siehe SMTP-Telnet) prüfen.
  • Gegenseite empfangsbereit
    Natürlich muss auch die Gegenseite willens sein, ihre Verbindung anzunehmen.

Weitere Links