Dies Hamster gibt es hier ist der Hamster

Es ist übrigens erlaubt, diese Seite für den privaten Gebrauch zu speichern. Ein eventuelles Copyright liegt natürlich weiter bei mir. Diese Seite wurde schon Counter-Anbieter mal aufgerufen. Letzte Änderung dieser Seite am 20.10.2002


Zuerst einige Links zu anderen Hamster-Seiten

Sorry, die Sammlung ist noch stark rudimentär, wird ständig erweitert. Neueste Nachricht, die Hamster-Hierarchie wird auf immer mehr Servern geführt. Die neuesten Angaben findet man jetzt dort in den Gruppen, z.b. hamster.de.announce. Eine Liste der Server sowie sonstige Informationen steht auf dem Nethamster.

Download
Den jeweils aktuellen Hamster gibt es auf der Homepage von Thomas G. Liesner. Er hat die Erweiterung der "offiziellen" Version von Jürgen Haible übernommen. An dieser Stelle noch einmal meinen ausdrücklichen Dank an beide für dieses Programm.
Alternative
Mit leichter Verspätung erscheint der Hamster auch bei der FU Berlin und ist via FTP abzurufen.
Die Tools von Jürgen Haible
Auf Jürgens Homepage gibt es noch einige andere Tools. Privater Tip von mir: seht Euch einfach einmal Telekost32 an.
Super-Sammlung
Die Seite Hamster ist super von Michael Gebert. Mein persönlicher Favorit, da von da aus alles Wichtige erreicht werden kann. Danke schön für die Mühe.
Konfigurations-Anleitung
Verfaßt von Volker Gringmuth, zu haben unter www.volker-gringmuth.de/hamster
Archiv der Mailingliste
Heinrich Hallmann hat es übernommen, die Mailingliste zu archivieren. Alle Beiträge der Mailingliste bei EGroups stehen dort in monatlichen Dateien zur Verfügung. Vorher hatte sich Ulrich F. Heidenreich darum verdient gemacht. Auch an Ulrich meinen Dank, denn ich habe das Archiv schon ein paar mal genutzt.
Wer an der Mailing-Liste teilnehmen möchte, schreibt einfach eine Mail an den List-Server.
Die Hilfe-Seiten
Bei Christian Fritz gibt es eine ganze Menge Tips zur Konfiguration. Auch eine Übersetzung der Hilfe-Dateien.

Dann meine eigenen Beiträge

Meine Konfiguration zur Konvertierung einer Mailinglist in eine lokale Newsgroup hat sich natürlich mit der Zeit verändert. Hier findet sich gleich nebenan die ursprüngliche Anleitung.

Meine aktuelle Konfiguration benutzt die neuere Scriptsprache des Hamsters für den Abruf der Mails, sowie Korrnews für zusätzliche Schritte. Die Mails für die Liste werden zuerst einmal in einen speziellen lokalen Mail-Account namens "Liste" umgeleitet. Anschließend werden sie dort von Korrnews überarbeitet, wobei überflüssige Header gelöscht werden. Fehler von Egroups werden korrigiert, und die Werbung entsorgt. Diesen speziellen Tip habe ich natürlich irgendwo in hamster.de.* aufgeschnappt. Diese überarbeiteten Mails holt sich der Hamster wieder selber ab, wobei sie dann wirklich umgeleitet werden.
Aber nun geht es los:

  1. Lokalen Benutzer anlegen mit dem Namen Liste. Dieser Account darf von keinem Client gepollt werden.
     
  2. Folgende beiden Abschnitte in der "Mailfilt.hst" anlegen:
      [EGroups]
      # filter-rules for all mails fetched with identifier "EGroups"
      add(liste)                       Reply-To: "usehamsternet@"
      add(liste)                       Reply-To: "dafa-treff@"
    
      [EGListe]
      postto(hamster.de.usehamsternet) Reply-To: "usehamsternet@"
      postto(dafa.treff)               Reply-To: "dafa-treff@"
    Wie man sieht, beziehe ich aktuell zwei Listen. Hier ist ganz besonders zu bemerken, daß in beiden Abschnitten die Filterkriterien identisch sind. Hier ist es jeweils das "Reply-To:", das kann im konkreten Fall aber auch das Subject oder anderes sein. Natürlich empfiehlt es sich, einen Account nur für die Mailinglisten zu verwenden. Aber absolut notwendig ist das nicht.
     
  3. Für Korrnews eine spezielle Datei erstellen, und als "EGroupsHeader.def" speichern.
      Delete Header Received
      Delete Header Newsgroups
      Delete Header Return-Path
      Delete Header Delivered-To
      Delete Header X-eGroups-Return
      Delete Header X-Apparently-To
      Delete Header X-From_:
      Delete Header X-Hamster-To
      Delete Header Mailing-List
      Delete Header Precedence
      Delete Header List-Unsubscribe
    
      If not Header(X-eGroups-From) is Empty
        Set Header X-EG-From: %Header(From)%
        Set Header From: %Header(X-eGroups-From)%
        Delete Header X-eGroups-From
      endif
    
      If Header(References) is Empty and not Header(In-Reply-To) is Empty
        Set Header References: %Header(References)% %Header(In-Reply-To)%
      endif
    
      Delete between last "^-+ eGroups Sponsor -+~-~>$","^-+_->$",true
    Diese Angaben löschen eine Menge überflüssiger Header, zaubern wenn nötig den originalen From:-Header des Absenders wieder hervor, erzeugenen References aus einem vorhandenen In-Reply-To: und löschen abschließend die Werbung heraus.
    Dazu einen korrespondierenden Abschnitt "EGroups" in Korrnews erstellen, der diese Datei verwendet. Außerdem den Speicherort für den Account "Liste" eintragen.
      [EGroups]
      MessagePath=..\Mails\Liste
      Header.def=EGroupsHeader.def
  4. Im Script mittels HamFetchMail den externen Emailaccount abrufen, in dem die Beiträge der Mailingliste landen:
      'hamfetchmail ( "pop.serv.er", "pop3", "User", "Pass", "admin", "EGroups" )'
    Die Mails werden durch den obigen ersten Filter im Account "Liste" abgelegt.
     
  5. Nach allen weiteren Aktionen kann die Verbindung zum Provider getrennt werden, der Rest läuft lokal ab.
      hamwaitidle
      Execute ("KorrNews\KorrNews.EXE EGroups", HamPath,0,true)
    Dieser Abschnitt wartet, bis Hamster zur Ruhe gekommen ist. Dadurch sind garantiert alle interessanten Mails getrennt im Account Liste verfügbar. Die Verbesserungen werden vorgenommen, wie oben angegeben. Es fehlt nur noch der Import in die lokale NG.
     
  6. Der nächste Abschnitt erledigt das. Hamster ruft die Mails aus Liste vom Mailserver ab, der er selber ist. Das läuft inzwischen unter "autoerotisch" (er POPt sich selbst). Jetzt trifft das zweite Filterkriterium zu, so daß die Mails importiert werden.
      hamwaitidle
      hamfetchmail ( "localhost", "pop3", "liste", "liste", "admin", "EGListe" )
      hamwaitidle
    Hier ist noch etwas verbesserungswürdig: "postto(...)" beachtet die History nicht. Deshalb können Beiträge mehrfach erscheinen, wenn sie entsprechend oft abgerufen werden. Dort soll noch eine Anweisung hinein, die die einzelnen Dateien liest, und prüft, ob die MID schon in der History steht. Ist das der Fall, so soll die Datei gelöscht werden. Erst anschließend wird der Rest importiert.
    Vorteile: Falls wieder einmal ein allgemein zugänglicher Server so eine lokale Gruppe anbietet (z.B. der von Roland), so kann unbesorgt erst einmal von dort abgerufen werden. Die spezielle Maßnahme vermeidet dann Dubletten in der Gruppe. Es sei denn, die Mail wurde bei Egroups ohne MID eingeliefert. Aber das wird immer unwahrscheinlicher, je mehr Leser direkt mit dem Newsreader antworten.

Soweit das Einrichten der lokalen Gruppe für die Hamster-ML. Weiter unten die Beschreibung, um das bestehende Archiv zu importieren, sowie die schon im Mailreader vorliegenden Daten ebenfalls. In beiden Fällen fehlt einfach ein Newsgroup-Header.


Der Import von Daten geschieht mit dem Tool HAM.EXE von Jürgen Haible. Es gehört zum Lieferumfang des Hamsters. Dazu dient der Befehl "HAM import <files>"
Am besten ist es, wenn die Dateien bereits im MBox-Format vorliegen. Das ist z.B. der Fall im Archiv der Mailingliste. Leider scheitert der Import dieser Daten daran, daß es keine Postings aus einer NG sind. Dieses muß jetzt nachträglich simuliert werden. Dazu dient dann mein kleines Hilfsprogramm Mbox11. Es fügt am Anfang jedes Beitrags eine Zeile "Newsgroups: <NG>" ein, sowie direkt dahinter noch ein "FollowUp-To: poster". Die erste Zeile bewirkt, daß HAM den Beitrag in die gewünschte NG importieren kann. Durch die zweite Zeile soll der Newsreader eine Antwort per Mail senden, statt sie in die lokale Gruppe zu posten.

Wie bekommt man jetzt die Daten aus dem Mailreader in das MBox-Format? Das hängt natürlich vom verwendeten Reader ab. Der Forte Agent beispielsweise kann die Beiträge direkt in diesem Format exportieren. Die Nutzer von Netscape haben es hier noch einfacher, Netscape speichert die Ordner direkt in diesem Format. Also einfach einen neuen Ordner anlegen, der nur zu diesem Zweck dient, alle Beiträge dorthin verschieben, und Netscape beenden. Jetzt den Ordner (es ist die Datei ohne Extension) an einen passenden Ort kopieren, z.B. ein hierfür geschaffenes Arbeitsverzeichnis.

Natürlich haben die Verwender von Outlook Express wieder ein zusätzliches Problem. Aber auch dafür gibt es Abhilfe. Es sind mehrere Schritte nötig.

  1. Alle zu exportierenden Beiträge markieren.
  2. Dann auf Weiterleiten.
  3. Eine beliebige Zieladresse angeben. Am besten eine lokale im Hamster, aber auch eine ungültige kann verwendet werden.
  4. Noch einen sinnigen Betreff eintippen.
  5. Ganz wichtig, Format auf Nur-Text einstellen. Sonst würde so einiges in HTML kodiert, was weitere Schwierigkeiten bereitet.
  6. Die Mail abschicken, natürlich über den Hamster als SMTP-Server.
  7. Jetzt die Mail-Datei (nnnn.msg) wieder aus dem Hamster fischen. Entweder aus Hamster\Mails\Mail.Out, wenn eine externe Adresse verwendet wurde. Oder aus Hamster\Mails\UserXX, falls an diesen gesendet wurde.
  8. Die so erzeugte Datei enthält alle Beiträge in einer Datei, aber das Format ist nicht MBox, sondern Multipart/Mime. Dieses spezielle Format kann von MBox11 ebenfalls gelesen und angepaßt werden.

MBOX11 +s -v -OE -NG hamster.liste -output hamster.mbx <Dateien>
ist eine vollständige Befehlszeile für MBox11. Bis auf das <Dateien> sind alle Parameter optional.
+/-s    : Silent an (keine Meldungen) oder aus (sehr viele Meldungen)
-v      : Verbose an (entspricht Silent aus)
-OE     : Vorlaufende Dekodierung für OE-Output (default off)
-NG     : lokale Hamster-Gruppe für .MBX-Import (default hamster.list)
-output : .MBX-Datei für die fertige Konversion (default hamster.mbx)
Wem die Kommandozeile zu lang ist, der kann die Leerzeichen zwischen "NG" und dem Gruppennamen sowie zwischen "output" und dem Dateinamen einsparen. Die Ausgabe wird an eine bestehende Datei angefügt, diese muß im Zweifel nach dem Import in den Hamster manuell gelöscht werden. <Dateien> steht für eine Liste von Dateinamen, diese werden der Reihe nach abgearbeitet. Wildcards wie "*." sind erlaubt und werden ebenfalls der Reihe nach verarbeitet.
Der Schalter "-OE" schadet übrigens nicht. MBox11 untersucht jede Datei, ob sie auf dem beschriebenen Weg aus OE exportiert wurde. Überprüft wird die erste Zeile, diese muß den "Return-Path: " enthalten. Außerdem muß im Header das typische "X-Mailer: Microsoft Outlook Express " enthalten sein. Die Version ist unwichtig. Trifft eine der beiden Bedingungen nicht zu, wird die Datei normal verarbeitet. Anderenfalls wird eine Datei namens OE2Ham.m$$ erzeugt. Diese kann ebenfalls nach Durchlauf gelöscht werden.
Jetzt sollten die Meisten in der Lage sein, Beiträge importieren zu können. Wenn es noch Schwierigkeiten gibt, schlage ich vor, in der Newsgruppe de.comm.software.newsserver zu fragen. Ich lese dort regelmäßig die Beiträge, die mit "[Hamster]" im Subject versehen sind. Natürlich interessieren mich auch Anleitungen für andere Clients, die ich ebenfalls hier aufnehmen werde.

Was steht jetzt noch auf meiner Liste für MBox? Nun, das Programm ist erst einmal das berühmte Quick&Dirty Ergebnis. Geschrieben mit Borland Pascal für DOS, deshalb ist noch ein bißchen zu tun.

03.05.2000
Jetzt ist eine erste Umsetzung obigen Tools in die neue Scriptsprache des Hamsters fertig. Dazu ist natürlich vor allem der Hamster mindestens in der Version 1.3.17 nötig. Dieses Script erledigt im Wesentlichen die gleiche Aufgabe wie obiges Tool. Es soll allerdings noch um einen automatischen Import der Mails in die NG erweitert werden. Damit sind von obiger Liste bereits die ersten vier Punkte erledigt, ist das nicht schön? Jürgen hat mit den neuen Scripts wirklich gute Arbeit geleistet.


Das wesentliche Element meiner Skripte für den Datentransfer ist das Modul Activity. Dieses implemetiert die Routine Transmit ($Use_RAS), welche die angegebene Verbindung öffnet. Allerdings wird vorher geprüft, ob bereits eine Verbindung besteht. Diese wird nicht getrennt, sondern benutzt. Nach erledigter Arbeit kommt es darauf an, ob der Hamster die Verbindung selbst erstellt hatte. Falls ja, wird sofort aufgelegt. Falls nein, wird 5 Minuten gewartet. Wird in dieser Zeit die Verbindung manuell getrennt, wird auch das Skript beendet. Besteht die Verbindung immer noch, wird die Arbeit des Skripts automatisch noch einmal erledigt.
In der Summe wird also alle 5 Minuten Mail und News überprüft. Wenn der Reader Ähnliches tut, wird man relativ schnell über eingegangene Mails benachrichtigt, während man online ist.
Die Einwahl kann über ein einfaches Skript aufgerufen werden, daß nur Transmit() richtig ruft. Ein Beispiel für Telda.net ist hier verfügbar. Allerdings kann auch eine Auswahl der Verbindung nach Zeit genutzt werden. Ein Beispiel hierfür ist meine Automatik, auch wenn diese momentan immer die gleiche Verbindung benutzt.


zu meiner Homepage