Volkers Homepage

<Mailserver: Einstellungen in deinem Mailprogramm    ^Startseite    >Newsserver: Lokale Newsgruppen einrichten

Mailverkehr mit dem Internet

Viele Wege führen zum Server

Es gibt verschiedene Möglichkeiten, deinen Hamster mit externen Mailservern in Kontakt zu bringen.

Ich habe mich hier gleich für die „professionellste“ und flexibelste entschlossen, weil sie dir hinterher vieles leichter macht, auch wenn’s am Anfang etwas schwierig zu verstehen ist. Dieser Weg besteht darin – jetzt nicht erschrecken –, dem Hamster eine entsprechende Befehlsfolge in Dateiform vorzulegen – man nennt so was ein Skript. Hamster lässt sich hervorragend über Skripte steuern – eleganter geht’s nicht mehr, und deshalb solltest du dich gleich daran gewöhnen.

Das ist nicht so schwer, wie es am Anfang klingt, aber trotzdem ist das jetzt einer der größten Brocken, die ich dir hier zumute. Aber ich bin mir sicher, dass wir da durchkommen.

Keine Angst, wir fangen ganz einfach an. Wir füttern den Hamster erstmal mit den Zugangsdaten für die externen Mailserver, damit die auch wissen, dass er in deinem Auftrag bei ihnen anklopft. Er tut einfach so, als wäre er du.

Skripte

Schritt 1: Zugangsdaten ablegen

Für Zugangsdaten hat dein Hamster einen eigenen Passwort-Safe. Den erreichst du im Menüpunkt Einstellungen unter Benutzerverwaltung & Passworte, wenn du den Reiter Passworte anwählst.

Ganz oben siehst du deine DFÜ-Verbindungen, wenn du welche eingerichtet hast – wenn du dafür hier deine Zugangsdaten einträgst, dann kann Hamster die Verbindungen später automatisch aufbauen.

Darunter siehst du die Passwort-Schließfächer. Es sind zunächst mal 30 Stück; rechts unten kannst du auch eine höhere Anzahl eintragen.

Die Passwörter werden verschlüsselt abgespeichert, und damit diese Verschlüsselung möglichst sicher ist, werden dafür auch „persönliche“ Daten deines Rechners und Betriebssystems herangezogen. Das kann Probleme machen, wenn du dich z.B. unter unterschiedlichen Namen am System anmeldest. Ganz unten kannst du festlegen, wie die Daten verschlüsselt werden sollen. Die Voreinstellung ist am sichersten.

Jedes dieser Schließfächer $1 bis $30 kann eine Kombination aus Benutzername und Passwort aufnehmen, die du nachher im Skript wieder abrufen kannst.

Gib also jetzt deine Zugangsdaten für die Mailserver, von denen Hamster Mails für dich abholen soll, hier in die Schließfächer ein. Nehmen wir an, du hast ein Postfach bei GMX, der Benutzername bei GMX ist „williwutz@gmx.de“ (bei GMX ist die Adresse der Benutzername), und das Passwort ist „grautvornix“.

  1. Markiere das Schließfach, das du belegen willst, durch Draufklicken.

  2. Wähle Bearbeiten.

  3. Gib „williwutz@gmx.de“ ein und bestätige mit OK.

  4. Gib „grautvornix“ ein und bestätige mit OK. Das Passwort muss daraufhin noch einmal eingegeben werden, zum Schutz gegen Tippfehler.

  5. Fertig. In der Liste steht jetzt $1, "williwutz@gmx.de", {Gesetzt}.

Wenn du dein Passwort nicht abspeichern möchtest, sondern bei jedem Zugriff gefragt werden willst, dann gib einfach ein Fragezeichen ein. Dann steht hinten nicht {Gesetzt}, sondern {Fragen}.

Passwort-Eingabe
Die Schließfachanlage für Zugangsdaten

Schritt 2: Skript-Editor aufrufen

  1. Wähle Skript – Skripte und Module verwalten....

  2. Wähle den Reiter Skripte verwalten und drück auf Neu.

  3. Gib den Namen für dein Skript ein, z.B. mails.

  4. Der Texteditor geht auf, und wir können loslegen. Drei Zeilen sind schon vorgegeben, die wir stehen lassen.

    #!hs2 sagt dem Hamster, welche Version der Skriptsprache verwendet wird,
    #!load hamster.hsm lädt ein „Modul“, das wir zwar nicht brauchen, das aber auch nicht schadet, und
    quit beendet die Ausführung eines Skripts.

Editor öffnen
Der Skript-Editor – drei Zeilen stehen schon drin

Schritt 3: Die einzelnen Skriptbefehle

Natürlich nicht alle, sondern nur die, die wir zum Mails abrufen brauchen.

Mit dem Schreiben beginnen wir sinnvollerweise in der Zeile über dem quit-Befehl. Du kannst nach Belieben Leerzeilen einfügen – die stören nicht und sorgen für Übersichtlichkeit. Nur innerhalb der Befehlszeilen darfst du keine Umbrüche machen; ein Befehl und alles, was dazu gehört, muss immer in einer einzigen Zeile stehen.

Wenn du das jetzt nicht alles einzeln tippen willst, kannst du dir hier ein Beispielskript herunterladen. Es heißt beispiel.hsc. Klick den Link mit rechts an, wähle „Speichern unter...“, leg es ins Hamsterverzeichnis (Achtung: der Internet Explorer ändert die Dateierweiterung in .txt, das musst du mit einem leisen Fluch in Richtung Redmond wieder reparieren!) und bearbeite es über Skripte verwalten, wie gehabt.

Mails abholen

Das Wichtigste ist zunächst der Befehl HamFetchMail. Damit werden Mails von einem externen POP3-Server abgefragt. Hinter den Befehl schreiben wir alle Daten, die noch dazugehören, in einer Klammer und einzeln in Anführungszeichen, mit Kommas getrennt. Genau sieht dieser Befehl so aus:

HamFetchMail ("server", "pop3", "$1", "", "volker")

Das bedeutet:

  1. Hole Mails ab,
  2. und zwar vom Server „server“
  3. auf dem Port „pop3“ (du kannst auch die Portnummer 110 dafür einsetzen),
  4. die Zugangsdaten findest du im Schließfach $1,
  5. das Passwort lasse ich hier weg (es steht ja schon im Schließfach),
  6. und die abgeholten Mails bekommt der Lokale Benutzer „volker“.
  • Statt server musst du den Namen des externen Servers einsetzen, bei dem Hamster die Mails abholen soll, also zum Beispiel pop.gmx.de.

  • Die Nummer des Passwort-Schließfachs (hier $1) muss die sein, die die Zugangsdaten zu diesem Server enthält – ist wohl klar.

    Die Anführungszeichen dahinter sind für das Passwort vorgesehen; sie sind hier leer, weil das Passwort ja auch schon im Schließfach drin ist und hier nicht mehr reingeschrieben werden muss. Aber die Anführungszeichen darfst du nicht weglassen, sonst kommt Hamster mit den Parametern durcheinander.

  • Statt volker trägst du den Namen des Lokalen Benutzers ein, in dessen Mailbox die Mails von diesem externen Server einsortiert werden sollen.

Und das machst du jetzt für alle Server, von denen du Mails abholen willst. Im Beispiel rechts lasse ich Hamster die Mails von drei externen Servern abholen und in meine lokale Mailbox einsortieren. Die Zugangsdaten für die externen Server sind in den Schließfächern $1, $6 und $14 gespeichert.

Wenn du kein lokales Ziel-Postfach (wie im Beispiel „volker“) angibst, stellt der Hamster die Mails an den admin zu.

Skript Fetchmail
Skript, das die Mails von drei externen Mailservern abholt

Mails verschicken

Dafür ist der HamSendMail-Befehl zuständig. Er sieht etwas einfacher aus:

HamSendMail ("server", "smtp")

Das verschickt alle Mails im Hamster-Ausgangskorb an diesen Server.

Wenn der externe Server „SMTP AUTH“ verlangt (was das ist, weißt du jetzt – da musst du dich vor dem Versenden ausweisen), dann nimmst du den Befehl HamSendMailAuth:

HamSendMailAuth ("server", "smtp", "$1", "")

... wobei du statt $1 natürlich wieder die richtige Schließfachnummer angeben musst.

Wenn der externe Server „SMTP-after-POP3“ verlangt, dann ist das auch kein Problem – direkt davor werden ja mit HamFetchMail Mails abgefragt, der Server müsste also freigeschaltet sein. Sicherheitshalber solltest du dann den Hamster etwas warten lassen vor dem Versenden, damit der externe Server reagieren kann. Der Befehl dafür lautet zum Beispiel Sleep(10000) für 10 Sekunden Pause (die Zeit wird in Millisekunden angegeben).

Wenn du die Mails von verschiedenen Absendern an verschiedene SMTP-Server schicken willst, dann setz ein Kriterium für den entsprechenden Absender als zusätzliche Angabe hinten dran. Beispiel: die Befehlsfolge

HamSendMailAuth("mail.gmx.de","smtp","$1","","@gmx\.de")
HamSendMail("smtp.puretec.de","smtp","@volker-gringmuth\.de")

verschickt alle Mails mit „@gmx.de“ im Absender an GMX (mit SMTP-AUTH) und alle Mails mit „@volker-gringmuth.de“ im Absender an Puretec (ohne AUTH). Wundere dich dabei nicht über das \ vor jedem Punkt – mach’s einfach.

Sendmail
Skript, das erst Mails von drei externen Servern abholt und zwei Sekunden später alle anstehenden Mails an den Server „mail.gmx.de“ verschickt.

Schritt 4: Skript starten

Direkt vor den quit-Befehl gehört noch unbedingt der Befehl HamWaitIdle. Der befiehlt dem Hamster, mit der Skriptausführung an dieser Stelle zu warten, bis alles, was gerade noch läuft, erledigt ist.

Dein Hamster arbeitet die Skriptzeilen nicht, wie man meinen könnte, nacheinander ab, sondern macht möglichst viel gleichzeitig (zum Beispiel nimmt er in unserem Skript zu allen externen POP3-Servern gleichzeitig Kontakt auf). Bremsen lässt er sich nur von einem sleep-Befehl, oder indem er auf eine Eingabe wartet, oder eben durch HamWaitIdle.

Dann speichere dein Skript ab. Damit müssten wir es eigentlich zum Laufen kriegen:

Bau eine Internet-Verbindung auf (das kann Hamster später auch allein) und wähle im Menü Skript den Namen deines Skripts. Wenn es dort noch nicht zu sehen ist, dann wähle im Menü Datei den Punkt Aktualisiere Menüeinträge – das müsste dein Skript eigentlich ans Tageslicht befördern.

Und während dein Skript arbeitet, müsste es im Protokollfenster des Hamsters ziemlich lebendig werden!

Die Zeile {script mails.hsc} Ende im Protokoll sagt dir, dass dein Hamster mit dem Skript fertig ist. Eine kleine Zusammenfassung gibt's auch dazu, und die Anzahl der geladenen Mails steht auch ganz unten im Hamster-Fenster in der Statuszeile hinter E-Mails=.... Wenn es Mails zum Herunterladen gab, dann müsstest du sie jetzt mit deinem Mailprogramm in deiner Hamster-Mailbox finden.

Dann liefere doch mal beim Hamster eine Testmail (an einen guten Freund) ein, starte das Skript noch einmal (damit die ausgehende Mail verschickt wird) und wart’s ab, ob er dir antwortet...

Wenn’s nicht klappt, dann betrachte dir mal aufmerksam die Fehlermeldungen. Meist sind Schreibfehler daran Schuld, oder die Zugangsdaten sind falsch eingetragen.

Fertig – mit den Nerven?

Das war jetzt ein dicker Brocken, ich weiß. Wenn du noch nicht alles kapiert hast, dann mach dir nichts draus – Hauptsache, dein Skript arbeitet erstmal. Jetzt gönn dir eine kleine Pause, hör ein bisschen Musik oder trink nen Kaffee, je nachdem.

Skripte

Erfolgsmeldung

Wenn Hamster dich etwas deutlicher davon informieren soll, dass er mit dem Skript fertig ist, dann bau hinter dem HamWaitIdle noch diese Zeile ein:

MsgBox ("Skript fertig!", "Hamsterskript", 0x40|0x0)

Das setzt ein Fenster auf den Bildschirm, das du mit OK bestätigen musst – eher macht Hamster im Skript nicht weiter.

Du kannst auch die Anzahl geladener E-Mails schon mal melden:

var ($neumails, $meldung)
$neumails = HamGetStatus ( 3,6 )
$meldung = "Skript fertig, "+$neumails+" neue Mails geladen!"
MsgBox ($meldung, "Hamsterskript", 0x40|0x0)

... womit wir schon mal dezent die Möglichkeit eingeführt hätten, mit Variablen zu arbeiten. Aber das ist nur was für Fortgeschrittene. Die könnten sich ja als Hausaufgabe mal überlegen, wie es zu schaffen wäre, dass bei einer neuen Mail nicht „1 neue Mails geladen!“ ausgegeben wird, sondern etwas grammatisch Richtigeres. Lösung...

Meldung

<Mailserver: Einstellungen in deinem Mailprogramm    ^Startseite    >Newsserver: Lokale Newsgruppen einrichten