Gerade fr kleine Gruppen ist Hamster als Mail-Server schnell eingerichtet. Zum Beispiel Familie Schmidt: Vater, Mutter und zwei Kinder, die jeder ber mindestens eine Mailadresse verfgen. Sohn Daniel wird zum Mail-Admin bestimmt und legt zuerst im Men `Einstellungen/Benutzerverwaltung und Passworte fr jedes Familienmitglied ein Benutzerprofil an. Dabei vergibt er einen Benutzernamen sowie ein Passwort und setzt die Haken bei `Benutzer hat POP3-Mailbox und `E-Mails senden erlaubt. Als `lokale E-Mail-Adresse trgt er jeweils die externen Adressen der anderen ein. Post an diese Adressen verschickt der Hamster nicht ins Internet, sondern stellt sie lokal zu. Mehrere Adressen eines lokalen Users werden hier durch Leerzeichen getrennt. 

Im Men `Einstellungen/lokale Server stellt der Verwalter auf der Registerkarte `IP-Access ein, ber welche IP-Adressen der Mail-Server zu erreichen sein soll. Da Familie Schmidt nur einen einzigen Rechner benutzt, whlt er hier die Adresse 127.0.0.1 aus, das Loop-Back-Interface, auf dem der Rechner mit sich selbst spricht. 

Die anderen Familienmitglieder ndern nun die Konfiguration ihres Mailprogrammes, damit es statt auf den Mail-Server ihres Providers auf den lokalen Mail-Server zugreift. Dazu tragen sie im entsprechenden Dialog statt des bisherigen POP3- und SMTP-Servers die lokale Adresse 127.0.0.1 ein. Benutzername und Passwort ersetzen sie durch die Angaben, die zum lokalen Hamster-Benutzerkonto gehren. Mit diesen Einstellungen steht der Hamster-Server bereit, um E-Mails innerhalb der Familie auszutauschen. 

uerlichkeiten 

Damit alle auch mit dem Rest des Internet kommunizieren knnen, konfiguriert man nun die externen Mailkonten. Zunchst muss Hamster dazu auf der Registerkarte `Passworte in der Benutzerverwaltung die Passwrter lernen. Das Programm legt sie verschlsselt in der Datei Password.!!! im Programmverzeichnis ab. Dazu benutzt es verschiedene Verfahren, von denen sich zwei auf Informationen aus dem Betriebssystem sttzen. Wenn Hamster von verschiedenen Betriebssystembenutzern aufgerufen wird, kann das zu Problemen fhren. Daher whlt Daniel unter `Verschlsselung die Option `Keine Nutzung von System-Infos. Erst dann trgt er in die leeren Slots auf der Registerkarte Benutzername und Passwort der externen Mailkonten ein. Als ersten Eintrag hat sich der Hamster schon die DF-Verbindung selbststndig vom Betriebssystem geholt. Wer sein eigenes Passwort nicht dem Hamster anvertrauen mchte, gibt ein Fragezeichen ein, damit das Programm bei jeder Mailabholung danach fragt. 
Skripte 

Ohne ausdrckliche Anweisung tut der Hamster nichts. Stattdessen steuern Skripte in einer auch fr Programmierunkundige leicht zu lernenden Sprache den Austausch mit anderen Servern. Unter `Skript/Skripte und Module verwalten ffnet Daniel ein neues Skript. Es ist nur ein einziges ntig, um die E-Mails der ganzen Familie auf einmal aus dem Netz zu fischen und sie lokal weiter zu verteilen: 

#!hs2 
#!load hamster.hsm 
HamFetchMail ("pop.schmidt.de", "pop3", 
    "$1", "", "nathalie") 
HamFetchMail ("pop.schmidt.de", "pop3", 
    "$2", "", "mama") 
HamFetchMail ("pop.gmx.net", "pop3",  
    "$3", "", "mama") 
HamFetchMail ("pop.schmidt.de", "pop3", 
    "$4", "", "") 
HamSendMail ("smtp.schmidt.de", "smtp") 
HamWaitIdle 
quit

Der Befehl HamFetchMail, der zum Abholen dient, erwartet als Parameter den Servernamen, den Servertyp, die Hamster-interne Schliefachnummer, hinter der sich die Zugangsdaten verbergen, das Passwort und das lokale Benutzerfach, in dem die Post landen soll. Das Passwort muss nicht als Klartext im Skript stehen, da es ja schon in der Passwort-bersicht gesetzt ist und der Hamster es aus der Passwort-Datei abruft. 

Die Mutter hat zwei E-Mail-Adressen und daher auch zwei Zeilen im Skript, in denen dieselbe lokale Zielmailbox steht. Wenn kein lokales Zielpostfach angegeben wird, stellt der Hamster die Mails automatisch dem Benutzer `admin zu. Daniel hat im Passwort-Schliefach $4 den Account `postmaster@schmidt.de eingetragen, damit die Mail an diesen Role-Account nicht verloren geht. Er muss also zustzlich zu seinen privaten Mails regelmig die im Admin-Verzeichnis gelandeten Nachrichten anschauen. 

Da die ganze Familie Absenderadressen aus der eigenen Domain benutzt, trifft sie das Relay-Problem (siehe Seite 122) nicht. Ein einziger HamSendMail-Befehl gengt zum Versenden der gesamten Post. Wenn allerdings die Mutter auch ihren GMX-Account zum Versenden benutzen will, sind zwei HamSendMail-Zeilen erforderlich: 

HamSendMail ("smtp.schmidt.de", "smtp", 
    "@schmidt\.de") 
HamSendMailAuth ("mail.gmx.net", "smtp", 
    "$3" "@gmx\.de")

Der zustzliche Parameter sorgt dafr, dass nur Mails mit passenden Absendern ber den Server abgewickelt werden. Der zweite Befehl benutzt authentisiertes SMTP mit den Benutzerdaten aus dem Passwort-Safe $3. 
Automatik 

Das neu erstellte Skript taucht nun im Men `Skript auf und jeder Benutzer kann es manuell starten. Viel komfortabler ist natrlich ein automatischer Abgleich mit den externen Mail-Servern. Das Zauberwort dafr heit AtAdd. Damit Hamster die Mails der Familie zweimal pro Stunde abfragt, ndert man das Skript etwas ab: 

AtAdd( Mails_holen, "00:00", "23:59", 
    "1111111", 30, true) 
AtExecute 
quit 
sub Mails_holen 
  ... 
endsub

Mails_holen entspricht dabei dem Namen der auszufhrenden Prozedur, darauf folgt der Zeitraum der Gltigkeit. Die sieben aufeinander folgenden Einsen im Beispiel stehen fr die sieben Tage der Woche, beginnend mit Montag. Jeder Tag kann entweder durch 0 (keine Mails abholen) oder 1 (Mails abholen) gekennzeichnet sein. Die folgende Zahl steht fr den Wiederholungszeitraum in Minuten, in diesem Falle also 30, da ja alle halbe Stunde abgeglichen werden soll. Zwischen `sub Mails_holen und `endsub trgt der Admin die HamFetchMail- und HamSendMail-Zeilen aus dem ursprnglichen Skript ein. 

Zum Abgleich mit den externen Servern braucht Hamster selbstverstndlich eine Internet-Verbindung, die er auf Wunsch auch selbst auf- und abbaut. Fr die Einwahl setzt Daniel vor die Austauschbefehle die Zeilen 

var( $verbunden, $try ) 
HamWaitIdle 
$verbunden = RasIsConnected 
If( ! $verbunden ) 
  $try = 1 
  while( HamRasDial( "DF-Einwahl" ) != 0) 
    if( $try >= 5 ) 
      error( "Einwahl fehlgeschlagen!" ) 
    endif 
    inc( $try ) 
    print( "Neuer Versuch in 5 Sekunden" ) 
  endwhile 
endif

Wer das nachmachen will, muss den Parameter zum Befehl HamRasDial durch den Namen einer existierenden DF-Verbindung ersetzen. Hinter den HamFetchMail- und HamSendMail-Zeilen sorgen wenige Befehle fr den kontrollierten Verbindungsabbruch: 

HamWaitIdle 
If( ! $Verbunden ) 
  HamRasHamngup 
endif

Zu Weihnachten leistet sich die Familie einen neuen Rechner pro Person und verstpselt den PC-Park sofort zu einem LAN. Jeder PC bekommt eine IP-Adresse aus dem Netzwerk 192.168.0.*, der Server erhlt 192.168.0.1. Fr den Hamster bedeutet das nur eine minimale Konfigurationsnderung: Unter `Einstellungen/lokale Server auf der Registerkarte IP-Access fr POP3 und SMTP die Serveradressen von 127.0.0.1 auf die IP-Adresse des Rechners (192.168.0.1). Diese Adresse ist auch die richtige fr POP3- und SMTP-Server auf allen Client-Rechnern der anderen. (je)